簡體   English   中英

將NFA轉換為DFA

[英]Converting NFA to DFA

NFA

我在理解如何轉換時遇到了麻煩。

如果2獲得輸入“ a”,由於空字符串,它將變成(1,4)或(1,2,4)?

謝謝!

如果狀態Q2得到“A”的下一個狀態可以是一個輸入Q1Q2 ,0R Q4

在您的NFA中,您將獲得最終狀態Q4

其等效的DFA如下:

                 a-  
                 ||
                 ▼|
--►(Q0)---a---►((Q1))---b----►((Qf))  
                 ▲-----a--------| 

其中Q1Q2是最終狀態。

它的正則表達式為: a (a + ba)* (b + ε )

其中ε為空符號(ε)

我們通過識別空輸入閉包集開始將NFA轉換為DFA(從這里開始,我將以L閉包表示空輸入閉包)。
L(1)=(1,2)我們可以從1到2輸入空。
L(2)=(2)從2沒有空輸入邊沿
L(3)=(3)從3沒有空輸入邊沿
L(4)=(1,2,4)我們可以從4訪問1並且從1訪問2

如果2獲得輸入“ a”,由於空字符串,它將變成(1,4)或(1,2,4)?

如果2獲得輸入“ a”,它將變為L(1)UL(4)=(1,2,4)。

由於我們的起始節點在NFA中為1,因此在DFA中將為L(1),即(1,2)。

T((1,2),a)=L(1)UL(3)UL(4)=(1,2,3,4)  
T((1,2),b)=F  
T((1,2,3,4),a)=L(1)UL(3)UL(4)=(1,2,3,4)  
T((1,2,3,4),b)=L(4)=(1,2,4)  
T((1,2,4),a)=L(1)UL(3)UL(4)=(1,2,3,4)  
T((1,2,4),b)=F  

由於4是NFA中的接受節點,因此在DFA中,包含4的節點將是(1,2,3,4)和(1,2,4)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM