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

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

文章目录

  • 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.mzph.cn/pingmian/37576.shtml

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

相关文章

MySQL学习(3):SQL语句之数据定义语言:DDL

1.SQL通用语法与分类 (1)通用语法 (2)分类 2.DDL 2.1数据库操作 show DATABASES; #查询所有数据库select DATABASE(); #查询当前数据库create DATABASE 数据库名称 [default charest 字符集] [collate 排列规则]; #default cha…

昇思25天学习打卡营第05天|sea_fish

打卡第5天,学习数据变换Transform,记录学习的内容。 数据变换 Transforms 通常情况下,直接加载的原始数据并不能直接送入神经网络进行训练,此时我们需要对其进行数据预处理。MindSpore提供不同种类的数据变换(Transf…

Perl 语言精髓:三元运算符的深度解析与应用

标题:Perl 语言精髓:三元运算符的深度解析与应用 摘要 Perl 是一种功能强大的脚本语言,以其灵活的语法和强大的文本处理能力而闻名。Perl 中的三元运算符是实现条件赋值和简洁表达式的强大工具。本文将深入探讨 Perl 中三元运算符的使用方法…

[NeurIPS2021] Deep Residual Learning in Spiking Neural Networks【文献精读、翻译】

深度残差学习在脉冲神经网络中的应用 Fang W, Yu Z, Chen Y, et al. Deep residual learning in spiking neural networks[J]. Advances in Neural Information Processing Systems, 2021, 34: 21056-21069. 摘要 深度脉冲神经网络 (SNNs) 因为使用离散的二进制激活和复杂的时…

讨论stl链表

讨论链表 list迭代器失效list的模拟实现创建结点类链表迭代器完成实现代码 list与vector 链表是一个序列容器,在任意位置都可以用常数时间插入或者删除,并且可以在两个方向进行迭代。 list迭代器失效 迭代器失效指迭代器所指向的结点无效,即该…

淘宝扭蛋机小程序开发:为消费者带来新的潮玩乐趣

在当下的消费市场,潮玩消费已经成为了年轻人的新宠,预计在近几年间潮玩市场的销售额将达到千亿元!其中扭蛋机市场更是吸引了各个阶段的消费群体,在市场巨大的发展前景下,同时也吸引了众多投资者入局,市场竞…

SuperMap iDesktop

SuperMap iDesktop 介绍 SuperMap iDesktop是一款由超图公司推出的企业级插件式桌面GIS软件,它通过SuperMap iObjects .NET、桌面核心库和.NET Framework 4.0构建,集成了地图制作、空间分析、数据编辑、三维分析等多种功能于一体,为用户提供…

el-date-picker限制开始时间不能大于结束时间,且结束不能小于开始时间

<div class"des-status-df">开始</div><div class"block"><el-date-picker:picker-options"startDatePicker"v-model"startTime"type"datetime"placeholder"选择日期时间"></el-date-…

标准版回收站的商品怎么删除?

管理后台/维护/数据维护/清除数据 里面就可以清空回收站的商品

深度解析:scikit-learn Pipeline记忆功能的秘密

标题&#xff1a;深度解析&#xff1a;scikit-learn Pipeline记忆功能的秘密 摘要 scikit-learn&#xff08;简称sklearn&#xff09;是Python中一个广泛使用的机器学习库&#xff0c;它提供了许多用于数据挖掘和数据分析的工具。Pipeline是sklearn中一个强大的功能&#xff…

Qt---xxx.pro: Missing closing brace(s).

丢失了关闭括号 出现这个问题&#xff0c;可以找一下pro文件中是不是少括号了。 CONFIG(debug, debug|release) {TARGET $$join(TARGET,,,d)ROUTDIR $$PWD/../build/debug } else {TARGET $$join(TARGET,,,)ROUTDIR $$PWD/../build/release 我本来是这么写的&#xff0c…

Postman自动化测试实战:使用脚本提升测试效率

在软件开发过程中&#xff0c;接口测试是确保后端服务稳定性和可靠性的关键步骤。Postman作为一个流行的API开发工具&#xff0c;提供了强大的脚本功能来实现自动化测试。通过在Postman中使用脚本&#xff0c;测试人员可以编写测试逻辑&#xff0c;实现测试用例的自动化执行&am…

Flink作业执行之 4.JobGraph

Flink作业执行之 4.JobGraph 1. 入口 前文了解了由Transformation到StreamGraph的过程&#xff0c;StreamGraph即作业的逻辑拓扑结构。 生成逻辑结构后&#xff0c;接下来的操作往往是对逻辑结构的优化。在很多组件中都是这样的处理&#xff0c;如hive、spark等都会执行“逻辑…

C++中main函数的参数、返回值分别什么意思?main函数返回值跟普通函数返回值一样吗?

在C中&#xff0c;main函数是程序的入口点&#xff0c;即程序开始执行的地方。main函数可以有两种形式的签名&#xff08;signature&#xff09;&#xff1a; 标准的main函数&#xff0c;不接受任何参数&#xff0c;也不返回任何值&#xff1a; int main() {// 代码... }带有参…

os实训课程模拟考试(选择题复习)

目录 一、操作系统的基本功能和设计目标 &#xff08;1&#xff09;基础知识 &#xff08;2&#xff09;题目与答案 1、操作系统是一组 B &#xff08;单选&#xff09; 2、以下哪项不是操作系统关心的主要问题&#xff1f;D &#xff08;单选&#xff09; 3、下列关于…

使用SpringBoot整合filter

SpringBoot整合filter&#xff0c;和整合servlet类似&#xff0c;也有两种玩儿法 1、创建一个SpringBoot工程&#xff0c;在工程中创建一个filter过滤器&#xff0c;然后用注解WebFilter配置拦截的映射 2、启动类还是使用ServletComponentScan注解来扫描拦截器注解WebFilter 另…

京品优送元宇宙

在科技飞速发展的今天&#xff0c;我们的生活方式正在发生深刻的变化。其中&#xff0c;京品优送元宇宙的崛起&#xff0c;为我们带来了全新的购物体验和生活方式。京品优送&#xff0c;作为一家领先的科技物流企业&#xff0c;不仅仅满足于现实世界的快递服务&#xff0c;更是…

Selenium 库

Selenium两大对象 WebDriver对象 页面跳转截图获取源码执行js最大化窗口切换窗口 WebElement对象 输入点击获取内容获取属性改变样式 鼠标和键盘操作 鼠标 左键单击右键单击左键双击右键双击中键单击、双击滚动长按拖动 按键&#xff1a; ASCII功能键编辑键快捷键 快…

Windows系统开启自带虚拟机功能Hyper-V

前言 最近有小伙伴咨询&#xff1a;Windows系统上有自带的虚拟机软件吗&#xff1f; 答案肯定是有的。它就是Hyper-V&#xff0c;但很多小伙伴都不知道怎么打开这个功能。 今天小白就带大家来看看如何正确打开这个Windows自带的虚拟机功能Hyper-V。 开始之前&#xff0c;你…