最小化 DFA

最小状态DFA的含义

1.没有无关状态(多余状态、死状态)

什么是无关状态?

死状态:从这个状态没有通路到达终态;S1
多余状态:从开始状态出发,任何输入串也不能到达的那个状态。S2

如何消除无关状态?

  • 删除

2.没有两个状态是互相等价(不可区别)

两个状态 s 和 t 等价的条件:

  • 兼容性(一致性)条件——同是终态或同是非终态
  • 传播性(蔓延性)条件——对于所有输入符号,状态s和状态t必须转换到等价的状态里

DFA的最小化—例子,第一步都是固定的。分成终态和非终态

1.将M的状态分为两个子集一个由终态k1={C,D,E,F}组成,一个由非终态k2={S,A,B}组成,

2.考察{S,A,B}是否可分.

如果后继不在原来的状态中,那么就是可区分的。
如果后继在原来的状态中,那么就是等价的。
因为A经过a到达C属于k1.而S经过a到达A属于k2.B经过a到达A属于k2,所以K2继续划分为{S,B},{A},

3.考察{S,B}是否可再分:

B经过b到达D属于k1.S经过b到达B属于k2,所以S,B可以划分。划分为{S},{B}

4.考察{C,D,E,F}是否可再分:
因为C,D,E,F经过a和b到达的状态都属于{C,D,E,F}=k1所以相同,所以不可再分:

5.{C,D,E,F}以{D}来代替则,因为CDEF相同,你也可以用C来代替。无所谓的最小化的DFA如图,:

【编译原理】最小化 DFA相关推荐

  1. 编译原理: 最小化 DFA(划分) 验证 DFA(Kleene 闭包)

    编译原理: 最小化 DFA(划分) & 验证 DFA(Kleene 闭包) 文章目录 编译原理: 最小化 DFA(划分) & 验证 DFA(Kleene 闭包) 简介 参考 正文 示例 ...

  2. 【编译原理】— 求最小化DFA

    (编译原理) 求最小化DFA(写出所有过程) 解题过程如下: 1.根据状态转换图写出状态转换表 2.写出DFA表 I Ia Ib A B C B B D C B C D B E E B C 3.画出D ...

  3. 编译原理学习笔记(十五)~最小化DFA

    概念 最小化:优化DFA,使其状态数最少. 那么什么时候状态数是最少的呢?这里我们需要介绍两个新的名词:可区分和不可区分. 官方定义:         可区分:对于任何两个状态t和s,若从一状态出发接 ...

  4. 正则表达式转NFA,DFA,最小化DFA

    Exp 2:正则表达式转NFA,DFA,最小化DFA (1)正则表达式应该支持单个字符,运算符号有: 连接 选择(|) 闭包(*) 正闭包(+) 可选(?) 括号 (2)要提供一个源程序编辑界面,让用 ...

  5. 编译原理Java实现——DFA最小化

    DFA的最小化 也称为 确定的有穷状态机的化简. DFA的最小化 = 消除无用状态 + 合并等价状态 消除无用状态这里是指删掉那些达到不了的状态.这不是我们的重点,DFS+HashSet不难实现. 其 ...

  6. 正规式到最小化DFA

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

  7. 【编译原理】构造DFA例题

    1.构造一个DFA,它接受Σ = {0,1}上能被5整除的二进制数 列出状态转换表: 状态 添0 添1 0 0 1 1 2 3 2 4 0 3 1 2 4 3 4 绘制DFA: 2.画出一个最简的DF ...

  8. 初学编译原理——构造一个DFA,它接受字母表∑={0,1}上能被能5整除的二进制数

    题目:构造一个DFA,它接受字母表∑={0,1}上能被能5整除的二进制数 解析如下: 注意,我们要明白DFA是一个一个数字扫描的,比如二进制数字101,其先扫描的字符是1,接下来是0,最后是1. 要求 ...

  9. 编译原理: Subset Construction 子集构造法(幂集构造)(NFA转DFA)

    编译原理: Subset Construction 子集构造法(幂集构造)(NFA转DFA) 文章目录 编译原理: Subset Construction 子集构造法(幂集构造)(NFA转DFA) 简 ...

最新文章

  1. SpringBoot-web开发(四): SpringMVC的拓展、接管(源码分析)
  2. 计算机主板风扇安装,5个装机注意事项 让你装电脑少走弯路
  3. java 大数据处理类 BigDecimal 解析
  4. Android系统从驱动到上层服务再到应用的两种服务架构方式
  5. mysql技术大会2020_2020年数据库技术大会助力技术提升
  6. 企业为什么要开通银企直联_企业为什么要做网站推广
  7. oracle表回退语句,5 Oracle笔试题
  8. 时序数据库连载系列: 时序数据库一哥InfluxDB之存储机制解析 1
  9. 【2017年第3期】专题:面向社会治理和服务的大数据
  10. BlockChain:区块链入门课程 -- 区块链应用于能源 POWER LEDGER案例
  11. 疑似小米11系列旗舰跑分曝光:骁龙875性能突破天际
  12. 那年学过的Oracle笔记
  13. linux查看tomcat安装路径
  14. 金蝶K3批量出库语句与执行方法
  15. 云原生 -- contour + envoy部署
  16. 在苹果mac设备上office2021安装包安装教程图文
  17. 面试秘籍 | 测试工程师的简历该怎么写?(带样例)
  18. 【语音隐藏】基于matlab小波变换DWT结合离散余弦变换DCT音频数字水印嵌入提取【含Matlab源码 2131期】
  19. 汇编语言的应用(用途)
  20. MySQL内部搜索引擎

热门文章

  1. 操作系统中pv操作用c语言,操作系统-pv操作.doc
  2. MySQL的计算时间差
  3. Java获取访问者真实的IP地址
  4. 序列1 - 以太坊的诞生,史上最大ICO之一
  5. 测试opencv的仿射函数getAffineTransform以及稀疏矩阵变换transform函数(单点仿射)
  6. 水下动作捕捉的两种实现方式
  7. MYSQL天花板函数和地板函数_2020-08-04常用函数
  8. C++实现RSA加密解密
  9. boonton 功率测试软件,教你使用功率计及功率分析仪测试
  10. Linux基本防护措施案例\使用sudo分配管理权限案例\提高SSH服务安全案例\SELinux安全防护\Linux基本防护措施