構建正則語言L = b + ba* 的 ∈-NFA
非確定有限自動機 (NFA) 中的 ε 轉移用於在沒有來自輸入集 Σ 的任何符號的情況下從一個狀態移動到另一個狀態。
ε-NFA 以 5 元組表示定義
{Q, q0, Σ, δ, F}其中,
δ − Q × (Σ∪ε)→2Q
Q − 有限狀態集
∑ − 有限輸入符號集
q0 − 初始狀態
F − 終結狀態
δ − 轉移函式
無 ε 轉移的 NFA
NFA 以 5 元組表示定義
{Q, q0, Σ, δ, F}其中,
δ − Q X Σ→ 2Q
Q − 有限狀態集
∑ − 有限輸入符號集
q0 − 初始狀態
F − 終結狀態
δ − 轉移函式
NFA 和帶有 epsilon 的 NFA 幾乎相同;唯一的區別在於它們的轉移函式。
讓我們考慮給定的語言 L = b+ba*
構建 ε-NFA 的步驟
步驟 1 − 下面給出了 a+ 的帶 epsilon 的 NFA −

這裡 a+ 表示表示式中必須至少有一個 'a',它前面是 epsilon,後面是 epsilon。它只不過是表示式中可以有多個 'a'。
步驟 2 − 下面給出了 a* 的帶 epsilon 的 NFA −

a* 表示表示式中可以有任意數量的 'a',甚至 0(如果輸入符號為空,則它也有效)。
步驟 3 − 下面給出了 (a+b) 的帶 epsilon 的 NFA −

它接受 a 或 b 作為輸入,兩者都進入終結狀態。
步驟 4 − 下面給出了 ab 的帶 epsilon 的 NFA −

用 epsilon 連線 a 和 b,並且 a 必須後跟 b,然後它才能到達終結狀態。
步驟 5 − 給定語言的最終帶 epsilon 的 NFA 如下所示 −
L =b + ba* 分為兩部分。
第一部分僅僅是 'b',很容易構建。由於這兩個術語都是用 '+' 號連線的,因此將有兩個路徑從第一個節點出來。第二部分需要藉助構建的第二步來繪製,a* 僅僅由 b 前置。

廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP