[英]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.