[英]How to convert regular expressions to grammar and DFA
嗨,我正在尝试找出将正则表达式 L = (a+ab)* 表示为 DFA 并生成 L 的正则语法。
因此,如果您从 DFA 获得常规语法,
A-> aB | BC | e
B-> aB | 巴| e
C-> 交流电 | 公元前
但问题是,当你用这个语法得到正则表达式时,你会得到一个更复杂的表达式,而不是 (a+b)*。
C = aC + bC = (a+b)*
B = aB + bA + e = a*(bA+e)
A = aB + bC + e = aa* bA + aa* + b(a+b) + e = (aa* b)* (aa* +b(a+b)*+e)
我想知道我的解决方案是否有问题。
实际上 X = (aa*b)*(aa*+b(a+b)*+e) 可以简化为 (a+b)*。 在这里,我试图解释我将 X 简化为 (a+b)* 的步骤:
a) empty string
, b) every possible string starting with b
, c) every possible string starting with a
。 如果我们能得到这些,就意味着 X=(a+b)*。a) empty string
和b) every possible string starting with b
。 我们只需要获得c) every possible string starting with a
。尽管它很复杂(并且可能没有必要),但这是 X=(a+b)* 的证明。 结果,您的解决方案是正确的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.