文章目录

  • 一、正则表达式转为非确定性有限自动机 NFA 要点
  • 二、正则表达式转为非确定性有限自动机 NFA 示例 1
  • 三、正则表达式转为非确定性有限自动机 NFA 示例 2
  • 四、正则表达式转为非确定性有限自动机 NFA 示例 3

一、正则表达式转为非确定性有限自动机 NFA 要点


正则表达式转为非确定性有限自动机 NFA 流程 :

① 原子自动机 : 首先要构造 原子自动机 , 从 非接受状态 指向 接受状态 ;

② 基本拼装 : 将原子自动机进行 基本的拼装 , 并运算 , 交运算 ;

③ 复杂拼装 : 将 基本拼装的自动机 进行 进一步拼装 ;

拼装原则 : 使用 ε\varepsilonε 箭头 进行拼装 ;

① 串联 : 前者的接受状态 使用 ε\varepsilonε 箭头 指向 后者的开始状态 , 前者接受状态取消 ; 如果有两个接受状态 , 那么就需要引出两个箭头

② 并联 : 在二者之前 , 重新添加一个非接受状态的开始状态 , 使用两个 ε\varepsilonε 箭头 分别指向二者的开始状态 ;

③ 星运算 : 重新添加一个接受状态的开始状态 , 使用 ε\varepsilonε 箭头从 接受状态 指向 开始状态 ; 注意所有的接受状态 , 都要使用 ε\varepsilonε 箭头指向开始状态 ;

二、正则表达式转为非确定性有限自动机 NFA 示例 1


将正则表达式 (0∪1)∗000(0∪1)∗\rm (0 \cup 1)^*000 ( 0 \cup 1 )^*(0∪1)∗000(0∪1)∗ 转为 NFA ;

构造原子自动机 : 注意从 非接受状态 →\to→ 接受状态 ;

(0∪1)\rm (0 \cup 1)(0∪1) 并联拼装 : 在二者前面添加 非接受状态 起始状态 ;

(0∪1)∗\rm (0 \cup 1)^*(0∪1)∗ 星运算 : 使 接受状态 →\to→ 起始状态 , 并添加一个 接受状态 起始状态 , 指向原来的起始状态 ;

000000000 串联 : 前者的接受状态 必须转为 非接受状态 , 前者的接受状态 必须转为 非接受状态 , 后者的状态是不变的 ;

总拼装 :

串联注意事项 : (0∪1)∗\rm (0 \cup 1)^*(0∪1)∗ 有 333 个接受状态 , 需要引出 333 个 ε\varepsilonε 箭头 指向 000000000 代表的自动机 的 开始状态 ;

串联时的状态改变 : 使用 ε\varepsilonε 箭头 连接 前者的接受状态 →\to→ 后者的起始状态;

串联时 前者的接受状态 必须转为 非接受状态 ,

后者的状态是不变的 , 如果是接受状态 , 那么就保持接受状态不变 , 同理如果是非接受状态 , 那么保持非接受状态不变 ;

化简后结果 :

三、正则表达式转为非确定性有限自动机 NFA 示例 2


将正则表达式 (((00)∗(11))∪01)∗\rm ( ( (00) ^* (11) ) \cup 01 )^*(((00)∗(11))∪01)∗ 转为 NFA ;

构造原子自动机 : 注意从 非接受状态 →\to→ 接受状态 ;

000000 串联 : 前者的接受状态 必须转为 非接受状态 , 前者的接受状态 必须转为 非接受状态 , 后者的状态是不变的 ;

(00)∗(00)^*(00)∗星运算 : 使 接受状态 →\to→ 起始状态 , 并添加一个 接受状态 起始状态 , 指向原来的起始状态 ;

111111 串联 : 前者的接受状态 必须转为 非接受状态 , 前者的接受状态 必须转为 非接受状态 , 后者的状态是不变的 ;

((00)∗(11))((00)^* (11))((00)∗(11)) 串联 : 前者的接受状态 必须转为 非接受状态 , 前者的接受状态 必须转为 非接受状态 , 后者的状态是不变的 ;

((00)∗(11))∪01((00)^* (11)) \cup 01((00)∗(11))∪01 并联 : 在二者前面添加 非接受状态 起始状态 ;

(((00)∗(11))∪01)∗(((00)^* (11)) \cup 01)^*(((00)∗(11))∪01)∗ 星运算 : 使 接受状态 →\to→ 起始状态 , 并添加一个 接受状态 起始状态 , 指向原来的起始状态 ;

化简后结果 :

四、正则表达式转为非确定性有限自动机 NFA 示例 3


将正则表达式 ∅∗\varnothing ^*∅∗ 转为 NFA ;

∅∗\varnothing ^*∅∗ ={ε}=\{ \varepsilon \}={ε}

构造原子自动机 : 注意从 非接受状态 →\to→ 接受状态 ;

【计算理论】计算理论总结 ( 正则表达式转为非确定性有限自动机 NFA | 示例 ) ★★相关推荐

  1. 【计算理论】计算理论总结 ( 正则表达式转为非确定性有限自动机 NFA ) ★★

    文章目录 一.正则表达式 二.正则语言运算示例 ★ 三.根据正则表达式构造自动机 一.正则表达式 1 . 正则表达式原子定义 : 如果 RRR 是 字符集 Σ\SigmaΣ 中的 111 个字符 , ...

  2. 【计算理论】正则语言 ( 推广型的非确定性有限自动机 GNFA | 删除状态 | 确定性有限自动机 转为 正则表达式 )

    文章目录 一.推广型的非确定性有限自动机 ( GNFA ) 引入 二.推广型的非确定性有限自动机 ( GNFA ) 删除状态 三.确定性有限自动机 ( DFA ) 转为 正则表达式 四.确定性有限自动 ...

  3. 【计算理论】计算理论总结 ( 非确定性有限自动机 NFA 转为确定性有限自动机 DFA | 示例 ) ★★

    文章目录 一.NFA 转 DFA 示例 1 二.NFA 转 DFA 示例 2 三.NFA 转 DFA 示例 3 一.NFA 转 DFA 示例 1 将下图的 非确定性有限自动机 NFA 转为确定性有限自 ...

  4. 【计算理论】非确定性有限自动机 ( 计算过程 | 计算树 | 确定可接受字符串 | 设计非确定性有限自动机 | 空字符 )

    文章目录 一.非确定性自动机 计算过程 ( 计算树 ) 二.判定 非确定性自动机 接受的字符串 三.自动机 设计要求 四.非确定性有限自动机设计 五.非确定性有限自动机 与 确定性 有限自动机 比较 ...

  5. 【计算理论】可判定性 ( 非确定性有限自动机的接受问题 | 证明 “非确定性有限自动机的接受问题“ 的可判定性 )

    文章目录 一.非确定性有限自动机的接受问题 二.证明 "非确定性有限自动机的接受问题" 可判定性 一.非确定性有限自动机的接受问题 非确定性有限自动机 的 接受问题 , 首先将 计 ...

  6. 确定性有穷自动机(DFA算法) 非确定性有穷自动机(NFA算法)

    确定性有穷自动机(DFA算法)& 非确定性有穷自动机(NFA算法) 非确定有限状态自动机的构建(一)--NFA的定义和实现_园荐_博客园 编译原理:有穷自动机(DFA与NFA)_Machine ...

  7. 【计算理论】图灵机 ( 非确定性图灵机 与 计算树 | 非确定性 | 非确定性图灵机 与 确定性图灵机 相互模仿 | 非确定性图灵机 -> 确定性图灵机 )

    文章目录 一.非确定性图灵机 与 计算树 二.非确定性 三.非确定性图灵机 与 确定性图灵机 相互模仿 四.非确定性图灵机 -> 确定性图灵机 一.非确定性图灵机 与 计算树 非确定性图灵机体现 ...

  8. 【计算理论】图灵机 ( 非确定性图灵机 | 非确定性图灵机指令分析 | 计算过程 | 非确定性指令出现多个分支 | 非确定性图灵机转为计算树 | 计算树 )

    文章目录 一.非确定性图灵机 二.非确定性图灵机 指令 三.非确定性图灵机 计算示例 初始状态 四.计算步骤 1 五.计算步骤 2 六.计算步骤 3 ( 出现非确定性分支 ) 七.计算步骤 3-1 ( ...

  9. 【计算理论】计算理论总结 ( 下推自动机计算过程 | 上下文无关文法 CFG 转为下推自动机 PDA ) ★★

    文章目录 一.下推自动机计算过程 二.上下文无关文法 CFG 转为下推自动机 PDA 流程 参考博客 : [计算理论]上下文无关语法 ( 语法组成 | 规则 | 语法 | 语法示例 | 约定的简写形式 ...

最新文章

  1. mysql使用DISTINCT进行去重
  2. angular div 滚动条事件_DOM事件
  3. 经典面试题(32):以下代码将输出的结果是什么?
  4. Linux学习 命令部分
  5. PDF拆分页面,免费拆分为多个PDF
  6. 各个国家/地区以及对应的手机区号
  7. 文档管理系统 Mayan EDMS安装
  8. JAVA 超详细 将文件夹目录打包为 ZIP 压缩包并下载
  9. Cocos2D-HTML5开源2D游戏引擎
  10. KVM切换器和VGA切换器的区别
  11. C# Winform平台下实现自由拖拽控件
  12. win10开机桌面壁纸位置
  13. python pi表示_python 算pi
  14. 如何赢得消费者信任?
  15. 2023年转行IT互联网:盘点高薪职业岗位!
  16. Caffe Examples
  17. 除甲醛产品哪个好?除甲醛产品十大品牌第一名
  18. RabbitMQ客户端说明
  19. 基于Java毕业设计采购物料质量检验系统源码+系统+mysql+lw文档+部署软件
  20. python3小游戏代码教程_Python3制作仿“经典90坦克大战”小游戏|python3教程|python入门|python教程...

热门文章

  1. WinForm创建系统托盘以及操作注册表
  2. DbHelper数据操作类,DbProviderFactories
  3. 买房猛于虎《功夫熊猫无家可归》
  4. 分享几篇VMP研究和分析的文章
  5. 关于js里的document.compatmode
  6. Java其他API介绍
  7. 四人团-江南行-乌镇东栅旅游
  8. 常见排序算法及其java实现
  9. 关于js私钥加密公钥解密的问题
  10. 文件流下载到本地 - 待完成