構造正則語言L = 0(0+1)*1 的 ∈-NFA


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

∈-NFA 用五元組表示法定義。

{Q, q0, Σ, δ, F}

其中:

  • δ − Q × (Σ∪∈) -> 2Q

  • Q − 有限狀態集

  • Σ − 有限輸入符號集

  • q0 − 初始狀態

  • F − 終結狀態

  • δ: 轉移函式

無 ε 轉移的 NFA

NFA 與 DFA 具有相同的五個狀態,但轉移函式不同,如下所示:

$$\delta\colon\:Q\times\:\sum\longrightarrow\:2^{Q}$$

其中:

  • Q − 有限狀態集

  • Σ − 有限輸入符號集

  • q0 − 初始狀態

  • F − 終結狀態

  • δ − 轉移函式

示例

考慮如下具有 ε 的 NFA:

這裡 q0 是一個起始狀態,輸入 0,可以處於狀態 q0 或狀態 q1。

如果我們得到起始符號 1,則透過 epsilon 轉移,我們可以將狀態從 q0 更改為 q1,然後輸入 1 可以處於狀態 q1。

另一方面,從狀態 q0 輸入 1,我們可以到達狀態 q2。

因此,輸入 1 後是否會處於狀態 q1 或 q2 尚不確定。

因此,它被稱為非確定性有限自動機,並且由於有一些 epsilon 移動,我們可以簡單地將狀態從一個狀態更改為另一個狀態。

因此,它被稱為帶有 epsilon 的 NFA。

讓我們考慮給定的語言 L = 0(0+1)*1。

構造 ε-NFA

構造 ε-NFA 的步驟如下:

步驟 1 - 0+ 的帶有 epsilon 的 NFA 如下:

步驟 2 - 0* 的帶有 epsilon 的 NFA 如下:

步驟 3 - (0+1) 的帶有 epsilon 的 NFA 如下:

上述狀態轉換圖接受 0 或 1 作為輸入。這兩條路徑都通向最終狀態。

步驟 4 - 01 的帶有 epsilon 的 NFA 如下:

對於串聯,0 必須後跟 1。

步驟 5 - L = 0(0+1)*1 的 ε-NFA 如下:

L = 0(0+1)*1 分為三部分:0、(0+1)* 和 1。第二部分 (0+1)* 如上所述構造,只需與 0 和 1 串聯,然後遵循第二個規則 0*。

最終帶有 epsilon 移動的 NFA 如下:

更新於:2021年6月14日

8K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.