簡體   English   中英

從NFA到DFA,一個州只有一個epsilon轉換

[英]NFA to DFA where a state only has an epsilon transition

如果在將NFA表轉換為DFA表時,存在僅作為epsilon轉換的狀態,則如何將其轉換為DFA表。

例如,如果狀態1在ε列中僅接受2,那么它在DFA轉換中的外觀如何?

轉換表:

     a     b     c    ε
1   {}    {}    {}   {2}
2   {3}   {}    {}   {}
3   {4}   {3,4} {}   {}
4   {4}   {}    {}   {}

我認為最好先消除epsilon過渡以獲得NFA(不進行epsilon過渡)。 從NFA中獲得等效的DFA應該更容易。

如何消除ε過渡?

首先,我們有一個狀態的ECLOSE ECLOSE(q)定義為通過跟隨epsilon轉換可以到達的所有狀態(包括狀態q本身)的集合。 在您的情況下:

ECLOSE(1) = {1,2}

要消除ε過渡,請按照以下步驟操作:

  1. 如果ECLOSE(1)包含最終狀態,則將state 1設置為最終狀態
  2. 當且僅當存在從ECLOSE(1)某些狀態到state q的轉換時,才添加從state 1state q轉換(帶有相應的標簽)
  3. 現在,您可以刪除所有epsilon過渡。

經過上述步驟(您沒有指定哪些狀態是開始狀態和/或最終狀態),您應該獲得:

    a     b     c    
1   {3}   {}    {}   
2   {3}   {}    {}   
3   {4}   {3,4} {}   
4   {4}   {}    {}   

暫無
暫無

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

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