[英]Can any finite state automata be translated into a regular expression?
假设我们有如下的fsa:
fsa = {0:{'a': 1, else: 2},1:{'b': 1, else: 2},2:{else: 2}}
这意味着:在状态0,如果输入为'a',则进入状态1,否则进入状态2;否则,进入状态2。 在状态1,如果输入为'b',则进入状态1,否则进入状态2; 在状态2,对于任何输入,它都会进入状态2。
假设状态0是开始状态,状态1是接受状态,状态2是失败状态。 然后,可以将此fsa转换为正则表达式“ ab *”。 实际上,有几种算法可以将fsa转换为正则表达式,例如Brzozowski代数方法。
我的问题:以上形式中定义的任何fsa都可以翻译成正则表达式吗? 有什么限制吗?
是的,它们在数学上是等效的。 正则表达式和有限自动机的等价性称为Kleene定理。 “
没有限制-所有有限状态自动机都等效于某些正则表达式,并且所有正则表达式都等效于某些有限状态自动机。
是的,它们是等效的。 从Wikipedia页面上的常规语言来看,这些都是常规语言的等效定义。
是。 每个有限的自动机都会有一个对应的正则表达式。 克莱因定理证明了这一结果。 通过将有限自动机划分为多个较小的有限自动机的并集,使用数学归纳原理证明了该定理。 证明可以在这里找到。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.