非确定性有限自动机的原理与应用
1. 非确定性有限自动机简介
确定性有限自动机是完成诸如识别有效电子邮件地址等任务的便捷工具。然而,有时为解决特定问题开发合适的确定性自动机配置相当困难。而非确定性有限自动机(NFA)虽不能解决更复杂的问题,但能显著简化寻找解决方案的过程。
NFA 与确定性有限自动机类似,但允许存在相互矛盾的规则。例如,可能同时存在规则:5, A → 3;5, A → 7;5, A → 1。为理解 NFA 的工作方式,可借助物理学家休·埃弗雷特的多世界理论。在 NFA 中,当面临多个规则要求向不同状态转移的情况时,就如同世界分裂,每个新“世界”做出不同决策。
判断 NFA 是否接受输入字符串的规则为:若在至少一个“世界”中能以有利状态完成工作,则接受该字符串;若在所有“世界”中都以不利状态结束工作,则拒绝该字符串。
1.1 实际示例
考虑创建一个接受所有包含子串 ABC 的字符串的确定性有限自动机,输入字母表由符号 A、B 和 C 组成。该自动机应接受如 ABAABCAA 或 AABCCC 这样的字符串,拒绝 AABBCC 或 ABBBACC 这样的字符串。
使用 NFA 解决此问题时,以字符串 AABBCC 和 AABCCC 为例。在识别 AABBCC 时,自动机在第一步面临选择:是转移到第二个状态(规则 1, A → 2)还是留在第一个状态(1, A → 1)。按照“多世界”规则,需分析这两种选项。对于 AABCCC,选择规则 1, A → 1 在第一步和规则 1, A → 2 在第二步可使自动机成功接受该字符串。
通常,若目标是证明给定字符串可被自动机接受,通过直觉找到导致转
超级会员免费看
订阅专栏 解锁全文
3708

被折叠的 条评论
为什么被折叠?



