编译原理必考大题:子集法将NFA转换为DFA【详细讲解,真题实战】

news2024/12/24 10:28:18

写在最前,本文为实战向,解决问题的求法,理论基础见我的上一篇博客,当然了,只做题的话,看这个就够用了

文章目录

  • NFA转换为DFA
    • 如何求ε-闭包?
    • 如何求状态转换弧集?
    • NFA转换为DFA的方法论
    • 真题实战
      • 例题一
      • 例题二

NFA转换为DFA

前置知识,首先得会求ε闭包和状态转换弧集
先看一道例题
在这里插入图片描述

如何求ε-闭包?

求ε闭包需要我们,遍历集合的每一个元素,将每一个可由ε到达当元素,加入到新的闭包集合中,再继续探索新加入的点,是否还有可由ε到达当另一个新元素,直到不重不漏的将原集合的每个元素遍历完并且新加入的元素也找完。
注意的是:原先集合元素本身,也要加入到ε-闭包中,也就是意味着ε-闭包最起码还是它本身。

如何求状态转换弧集?

理解状态转换弧集是什么?
假设状态集P是一个集合,那么Pa,pb可以理解为,p输入a,b,之后会变成什么?将这个新变成的一个或多个元素,加入到一个新集合中。ε-闭包(新集合)就是状态转换弧集
注意点是:状态转换弧集不包含原先的弧集的,除非它可以指向自身循环
状态转换弧集没有pε这种情况,不要瞎求

看例题:

NFA转换为DFA的方法论

子集法NFA转换为DFA
解题步骤

  1. 通过ε-闭包(开始状态)得到初始状态q0
  2. 对于每个状态,求它的状态转换弧集,如Pa,pb这种,若产生新状态标记q1 ,依此类推,重复步骤2,直到都完事,跳转步骤3
  3. 确定结束状态,q集合中带有原先结束状态的集合,作为DFA的结束状态,要画两个圈
  4. 根据前面得到的表格画图即可

真题实战

为了方便书写和查看,转换过程我们一般才用画表格的形式,更加直观,内部实现过程就是之前的一步一步,只不过在脑海中体现。

在做题的过程中,在熟练之后,要自然而然的在求出新集合后,直接加上它的ε-闭包。

例题一

例题二

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1878143.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

认识100种电路之稳压电路

在电子电路中,稳压电路扮演着至关重要的角色。那么,为什么电路需要稳压?稳压的原理又是什么?以及稳压需要用到哪些元器件,数量又有多少呢?今天,就让我们一同揭开稳压电路的神秘面纱。 【电路为什…

版本控制系统:Git 纯应用(持续更新)

基本操作 ctrl上行键:上次代码 本地仓库:Git init 新建文件:touch xxxx.xxx 查看状态:Git status 文件从工作区——暂存区:Git add ./文件名(.是通配符代表所有) 暂存区——仓库:Git commit -m &…

【接口自动化测试】第三节.实现项目核心业务接口自动化

文章目录 前言一、实现登录接口对象封装和调用 1.0 登录接口的接口测试文档 1.1 接口对象层(封装) 1.2 测试脚本层(调用)二、课程新增接口对象封装和调用 2.0 课程新增接口的接口测试文档 2.1 接口对象层…

软考高项备考经验分享

高项备考经验分享 在备考被论文卡两次后,这次终于通过了高项,分不是很高,比较幸运,对这次考试做个总结与分享,希望对同学们有所帮助。 1、备考时间 首先备考时间上不建议拉的太长,每天坚持看书3~6个月时…

Ubuntu22.04 源码安装 PCL13+VTK-9.3+Qt6,踩坑记录

Ubuntu 22.04LTS;cmake-3.25.0;VTK-9.3;PCL-1.13;Qt6.6 PCL可以通过 apt 命令直接安装(sudo apt install libpcl-dev),apt 命令安装的 VTK 是简略版,没有对 Qt 支持的包,所以笔者使用源码安装 PCL 和 VTK。 1. 安装 VTK 1) 安装 ccmake 和 VTK 依赖项: sudo apt-g…

食品行业怎么用JSON群发短信

食品作为日常生活不可缺少的元素,市场需求是很稳定的,但是份额就那么多,商家都要来抢占的话,就需要运营推广各凭本事,市场运营中选择合适的推广方式,可以增加店铺销售额,很多实体店或商城都会建…

几个常见的FPGA问题之序列发生器、编码器、D触发器

几个常见的FPGA问题之序列发生器、编码器、D触发器 语言 :Verilg HDL 、VHDL EDA工具: Vivado 几个常见的FPGA问题之序列发生器、编码器、D触发器一、引言二、背景1、序列发生器(Sequence Generator)2、编码器(Encoder)3、D触发器(D Flip-Flop)二、问题及解决方案1. 序…

PKG打包sqlite3项目,如何添加node_sqlite3.node依赖

项目地址:https://github.com/helson-lin/pkg_sqlite 在ffandown项目内,由于项目使用了sqlite3,在跨平台打包的时候,除了本机外其他平台打包之后运行缺少node_sqlite3.node依赖。 为了解决问题,百度了很久&#xff0c…

后端之路第三站(Mybatis)——结合案例讲Mybatis怎么操作sql

先讲一下准备工作整体流程要做什么 我们要基于一个员工管理系统作为案例,进行员工信息的【增、删、改、查】 原理就是用Mybatis通过java语言来执行sql语句,来达到【增、删、改、查】 一、准备工作 1、引入数据库数据 首先我们把一个员工、部门表的数…

Transformers是SSMs:通过结构化状态空间对偶性的广义模型和高效算法(二)

文章目录 6、针对SSD模型的硬件高效算法6.1、对角块6.2、低秩块6.3、计算成本 7、Mamba-2 架构7.1、块设计7.2、序列变换的多头模式7.3、线性注意力驱动的SSD扩展8、系统优化对于SSMs8.1、张量并行8.2、序列并行性8.3、可变长度 9、实证验证9.1、合成任务:联想记忆9…

Springcloud-消息总线-Bus

1.消息总线在微服务中的应用 BUS- 消息总线-将消息变更发送给所有的服务节点。 在微服务架构的系统中,通常我们会使用消息代理来构建一个Topic,让所有 服务节点监听这个主题,当生产者向topic中发送变更时,这个主题产生的消息会被…

【产品经理】订单处理9-台账库存管理

在订单处理过程中,台账库存的具体设计怎么做? 在订单处理过程中,分配仓库成功后要扣除仓库库存并计算商品缺货情况,仓库库存就是台账库存。 1,台账库存是针对某个仓库的库存,且台账库存只计算此商品SKU的库…

随州职业技术学院2024年成人高等继续教育招生简章

随州职业技术学院,这所历史悠久、声誉卓著的学府,如今正以其独特的魅力与实力,向广大成人学习者敞开怀抱,宣布启动2024年成人高等继续教育的招生工作。 在这片知识的沃土上,学院以其严谨的教学态度,为无数…

动手学深度学习(Pytorch版)代码实践 -卷积神经网络-20填充与步幅

20填充与步幅 import torch from torch import nn# 此函数初始化卷积层权重,并对输入和输出提高和缩减相应的维数 def comp_conv2d(conv2d, X):# 这里的(1,1)表示批量大小和通道数都是1#将输入张量 X 的形状调整为 (1, 1, height,…

最佳学习率和Batch Size缩放中的激增现象

前言 《Surge Phenomenon in Optimal Learning Rate and Batch Size Scaling》原文地址GitHub项目地址Some-Paper-CN。本项目是译者在学习长时间序列预测、CV、NLP和机器学习过程中精读的一些论文,并对其进行了中文翻译。还有部分最佳示例教程。如果有帮助到大家&a…

llm学习-1(包含如何使用github的codespace):

本文学习参考:datawhalechina/llm-universe: 本项目是一个面向小白开发者的大模型应用开发教程,在线阅读地址:https://datawhalechina.github.io/llm-universe/ 一些可使用的大模型地址: Claude 使用地址 PaLM 官方地址 Gemini…

24年hvv前夕,微步也要收费了,情报共享会在今年结束么?

一个人走的很快,但一群人才能走的更远。吉祥同学学安全https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247483727&idx1&sndb05d8c1115a4539716eddd9fde4e5c9&scene21#wechat_redirect这个星球🔗里面已经沉淀了: 《Ja…

机械拆装-基于Unity-总体设计

前言 在工业设计和制造领域,零部件的拆装技术是一个重要的应用场景,比如我们在工程训练课程中经历的摩托车发动机拆装课程,是机械类学生的必修课程。虚拟拆装系统模拟和仿真了模型的拆装过程,虽然SolidWorks等机械设计软件能够解决…

apipost的安装和测试添加接口能否正常使用

1.进入官网,点击免费使用(我是windows 64位,选合适自己的配置) 2.开始安装 选仅为我安装——下一步 选择自己的安装目录——点安装 等待 运行——完成 3.apipost一些基本操作——实现添加内容 (1)新建接口…

【05】从0到1构建AI生成思维导图应用 -- 前端交互实现

【05】从0到1构建AI生成思维导图应用 – 前端交互实现 大家好!最近自己做了一个完全免费的AI生成思维导图的网站,支持下载,编辑和对接微信公众号,可以在这里体验:https://lt2mind.zeabur.app/ 上一章:http…