1. 编译原理-确定有穷自动机(DFA)化简(最小化)

预备

最简化的DFA:这个DFA没有多余状态、也没有两个相互等价的状态。一个DFA可以通过消除无用状态、合并等价状态而转换成一个与之等价的最小状态的有穷自动机。
无用状态:从自动机开始状态出发,任何输入串也发到达的那个状态,或者这个状态没有通路可达终态。
等价转态:两个状态,识别相同的串,结果都同为正确或错误,这两个状态就是等价的。
区别状态:不是等价状态。

化简DFA

分割法:

把一个DFA(不含多余状态)的状态分割成一些不相交的子集,并且任意两个子集之间的状态都是可区别状态,同一子集内部的状态都是等价状态。

步骤(按分割法)

  • I0 = 非状态元素构成的集合,I1 = 终态元素构成的集合
  • 经过多次划分后,要保证,任意一个Ik中的元素通过move(Ik,某个字符)的结果都同属于一个Iz,这时候划分完成。否则把状态不同的单独划分出去。
  • 重复上一步,直至没有新的I子集增加。
  • 从子集中任选一个代替整体,画出最简DFA。

例1. 将下图DFA M最小化

分割成I0,I1

I0 = {1,2,3,4} ; 非终态I1 = {5,6,7} ; 终态

检验I0中元素的等价性,不等价就分割

move(1,a) = 6 ∈I1move(1,b) = 3 ∈I0move(2,a) = 7 ∈I1move(2,b) = 3 ∈I0move(3,a) = 1 ∈I0move(3,b) = 5 ∈I1move(4,a) = 4 ∈I0move(4,b) = 6 ∈I1可以发现,{1,2}是等价的,{3,4}是等价的

所以现在分割成了:I2 = {1,2}, I1 = {5,6,7}, I3 = {3,4}

检测I2中元素的等价性,不等价就分割

move(1,a) = 6 ∈I1move(1,b) = 3 ∈I3move(2,a) = 7 ∈I1move(2,b) = 3 ∈I3可以发现,是等价的,不用分割

检测I3中元素的等价性,不等价就分割

move(3,a) = 1 ∈I2move(3,b) = 5 ∈I1move(4,a) = 4 ∈I3move(4,b) = 6 ∈I1
可以发现,不是等价的,分割成{3},{4}

所以现在分割成了:I2 = {1,2}, I1 = {5,6,7}, I4 = {3}, I5 = {4}

检测I1中元素的等价性,不等价就分割

move(5,a)  = 7 ∈ I1
move(5,b)  = 3 ∈ I4move(6,a)  = 4 ∈ I5
move(6,b)  = 1 ∈ I2move(7,a)  = 4 ∈ I5
move(7,b)  = 2 ∈ I2可以发现,不是等价的,分割成{6,7}, {5}

所以现在分割成了:I2 = {1,2}, I4 = {3}, I5 = {4}, I6 = {5},I7 = {6,7}

检测后发现,不可再分割,所以最终分割结果就是:I2 = {1,2}, I4 = {3}, I5 = {4}, I6 = {5},I7 = {6,7}

画转态转换图:从集合中选取一个代表就可以

例题2 编译原理作业题

构造一个DFA,它接受Σ = {0,1}上能被5整除的二进制数。另老师还要求写出能被5整除的二进制串的正规式。

解析:

首先分析题目可知,一个数除以5,其余数(十进制)只能是0,1,2,3,4五种,因此我们以0,1,2,3,4分别表示这五种状态。因为要求得能被5整除的数,0 mod 5=0满足要求,故状态0既为初始状态,又为终结状态。

接着,考虑二进制数在其串后增添0或1时,状态的转化情况。在二进制串后添1位,即可理解为将先前的串值乘以二再加上所添的数值。那么,串尾添数后新的数值模5的余数便可以计算出来。即可以得到添0或1后的新的状态。

下面根据分析列出状态转换表:

状态 添0 添1
0 0 1
1 2 3
2 4 0
3 1 2
4 3 4

根据状态转换表,可以绘制出DFA如下图所示:

再根据上面的DFA可以得出正规式如下:

{1 [ ((00|1)(01)*01*0)* (0|11) (01)* ] 1}* 0*

编译原理 正则表达式_确定有穷自动机(DFA)_化简(最小化)相关推荐

  1. 【最新合集】编译原理习题(含答案)_答案全集_MOOC慕课 哈工大陈鄞

    [最新合集]编译原理习题(含答案)_1 绪论_MOOC慕课 哈工大陈鄞 [最新合集]编译原理习题(含答案)_2程序设计语言及其文法_MOOC慕课 哈工大陈鄞 [最新合集]编译原理习题(含答案)_3词法 ...

  2. 编译原理——java 词法分析【有穷自动机实现】

    编译原理--实验1 实验要求 1) 基于词法规则设计词法分析器(20分) 画出确定的有穷自动机(确定化),并提供必要的文字说明.提交状态转换图.doc 2) 词法分析程序的编程实现(80分) (1) ...

  3. 【编译原理】:NFA转变为DFA的子集构造法

    整体的步骤是三步:  一,先把正规式转换为NFA(非确定有穷自动机),  二,在把NFA通过"子集构造法"转化为DFA,  三,在把DFA通过"分割法"进行最小 ...

  4. 【编译原理】 NFA转变为DFA的子集构造法

    整体的步骤是三步:  一,先把正规式转换为NFA(非确定有穷自动机),  二,在把NFA通过"子集构造法"转化为DFA,  三,在把DFA通过"分割法"进行最小 ...

  5. DFA确定化和最小化

    从正规式开始 一.先将正规式转换成NFA 通过下面的对应法则将正规式转换成NFA 例如: 二.再将NFA转成DFA(子集法) 运用子集法的3个概念: (1 )状态集的ε-闭包: 状态集I中的任何状态s ...

  6. [编译原理]词法分析实验之基于 DFA 的单词识别

    Spring-_-Bear 的 CSDN 博客导航 问题描述: 基于 DFA 的单词识别问题的一种描述是:编写一个程序,输入一个确定的有穷自动机(DFA),使用该 DFA 识别单词. 基本要求: 设置 ...

  7. [系列][编译原理]正则表达式

    关于正则表达式,作为软件工程师应该比较熟悉了.所谓正则表达式,就是表示字符串的格式.正则表达式r完全由它所匹配的串集来定义.这个集合称为由正则表达式生成的语言,写作L(r).此处的语言只是表示&quo ...

  8. 差分隐私 机器学习_满足差分隐私的经验误差最小化方法

    手上的东西有点进行不下去,滚过来写专栏作下回顾.上次聊了聊差分隐私的定义,那么现在我们要在差分隐私的框架上实现机器学习任务. 关于差分隐私机器学习这个方向,Kamalika Chaudhuri 在ni ...

  9. python 窗口最小化_有没有办法通过Python 3最小化Windows 7中的窗口?

    我正在运行一个内置Python解释器的程序.我希望该程序能够"全屏"或最小化. 这将在Windows 7上运行. 我想知道是否有办法在Python中执行此操作(以便我可以从我的程序 ...

  10. 两个分数化简比怎么化_两个分数的比化简怎么化急用

    1.先找出中主分线,确定分子部分和分母部分,然后这两部分分别进行计算,每部分的计算结果能约分的要约分,最后改成"分子部分/分母部分"的形式,再求出结果. 2.根据分数的基本性质,经 ...

最新文章

  1. portlet 与 servlet 的关系
  2. UA MATH571A QE练习 R语言 单因子试验的回归分析
  3. 微信支付 php编程,PHP编程:微信支付开发交易通知实例
  4. 拥抱.NET Core,如何开发一个跨平台类库
  5. 蓝桥杯基础模块4_3:矩阵按键
  6. STL 源代码剖析 算法 stl_algo.h -- search
  7. 2016项目经验总结
  8. pc临时调起QQ临时会话
  9. 51单片机8位数码管计时器(汇编语言)
  10. AlertDialog点击确定必定会dismiss问题
  11. 中国半导体工业测试设备市场深度研究分析报告
  12. 【解决方案】Error response from daemon: Conflict. The container name /mongo is already in use by contain
  13. 学成在线项目(HTML+CSS)
  14. 2018年哪些畅销书和新书值得关注?答案就在这里
  15. UDS之浅谈10服务
  16. Pure-ftpd + Mysql + Pureftpd php manager架设FTP 傻子的执著
  17. 印度人撮合办公室恋情
  18. Android 银联控件支付开发流程
  19. 高一计算机专业班主任工作总结,计算机班主任工作总结
  20. ACME_Pan-specific_peptide-MHC_class_I_binding_pred

热门文章

  1. 墨者mysql注入_墨者靶场:SQL注入漏洞测试(参数加密) 使用sqlmap进行注入
  2. 各大IT公司往届校招笔试面试题汇总
  3. 感性负载,容性负载,阻性负载
  4. 如何应对硬盘无法识别通电异响等那些七七八八的物理故障
  5. HTTP 412状态码
  6. 记账小程序 微信小程序 源码 uniapp vue3
  7. Obsidian流程图
  8. MoleBox PRO build 2.3.054,, Latest , Private Member Build Edition
  9. 春晚红包互动:中国云计算的成长史
  10. 冲激脉冲抽样定理matlab,信号抽样及抽样定理分析.doc