構建一個用於語言 L = (a* + b*) 的 ∈-NFA。


非確定性有限自動機 (NFA) 中的 ε 轉移用於在沒有來自輸入集 Σ 的任何符號的情況下從一個狀態移動到另一個狀態。

ε-NFA 以五元組表示法定義。

{Q, q0, Σ, δ, F}

其中,

  • δ − Q × (Σ∪ε)→2Q

  • Q − 有限狀態集

  • Σ − 有限的輸入符號集

  • q0 − 初始狀態

  • F − 終結狀態

  • δ − 轉移函式

沒有 ε 轉移的 NFA

NFA 以五元組表示法定義。

{Q, q0, Σ, δ, F}

其中,

  • δ − Q X Σ→ 2Q

  • Q − 有限狀態集

  • Σ − 有限的輸入符號集

  • q0 − 初始狀態

  • F − 終結狀態

  • δ − 轉移函式

NFA 和帶有 epsilon 的 NFA 幾乎相同;唯一的區別在於它們的轉移函式。

讓我們考慮給定的語言 L = (a*+b*)

構建 ε-NFA 的步驟

步驟 1 − a* 的帶 epsilon 的 NFA 如下所示 −

a* 表示表示式中可以有任意數量的“a”,甚至 0(如果輸入符號為空,則它也有效)。

步驟 2 − b* 的帶 epsilon 的 NFA 如下所示 −

b* 表示表示式中可以有任意數量的 b,甚至 0(如果輸入符號為空,則它也有效)。

步驟 3 − 現在使用第一步和第二步構建 a*+b*。

給定的語言被分成兩部分,如 a* 和 b*,並使用“+”符號新增兩個步驟以獲得結果。

更新於: 2021年6月14日

4K+ 閱讀量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告