![](/img/trans.png)
[英](T/F and explain) An NFA accepts the empty string if and only if its start state is a final state
[英]A NFA accepting ;anguages whose final digit didn't appear before
給出一個非確定性有限自動機 ( NFA ),它接受以下語言:字母表 {0,1,...,9} 上的字符串集,使得最后一位之前沒有出現過。 我在introduction to automata theory languages and computation page 67 Exercise 2.3.4 遇到過這個問題
當字母表是 {0,1} 時,這是最簡單的非平凡情況,我們可以得到這樣一個最簡單的 NFA: The simplest non-trivial situation所以進一步你可以得到這樣的 NFA:
為此獲得 NFA 的一種簡單方法是分別考慮 10 個案例中的每一個。 考慮語言中最后一位數字為 0 的所有字符串的情況。這樣的字符串不包含其他 0; 它們的正則表達式是 (1+2+3+4+5+6+7+8+9)*0。 他們的 NFA 看起來有點像
1,2,3,4,5,6,8,9
/--\
| /
V /
o----->A0--0-->[B0]
我們可以想象其他 9 個狀態為 Ax、Bx,其中 Bx 正在接受每個 x,並且 Ax 在 x 之外的每個符號上循環到自身,並在符號 x 上循環到 Bx。
然后我們可以通過引入一個新的初始 state S 將所有這些粘合在一起,它具有到 Ax 狀態的空/lambda 轉換。 最終的 NFA 將具有:
事實上,為什么不復制/粘貼上面的內容並將整個內容寫下來呢?
1,2,3,4,5,6,7,8,9
/--\
| /
V /
/----->A0--0-->[B0]
/
| 0,2,3,4,5,6,7,8,9
| /--\
| | /
| V /
| /----->A1--1-->[B1]
|/
| 0,1,3,4,5,6,7,8,9
| /--\
| | /
| V /
| /----->A2--2-->[B2]
|/
| 0,1,2,4,5,6,7,8,9
| /--\
| | /
| V /
| /----->A3--3-->[B3]
|/
| 0,1,2,3,5,6,7,8,9
| /--\
| | /
| V /
| /----->A4--4-->[B4]
|/
/ 0,1,2,3,4,6,7,8,9
S-< /--\
\ | /
|\ V /
| \----->A5--5-->[B5]
|
| 0,1,2,3,4,5,7,8,9
| /--\
| | /
|\ V /
| \----->A6--6-->[B6]
|
| 0,1,2,3,4,5,6,8,9
| /--\
| | /
|\ V /
| \----->A7--7-->[B7]
|
| 0,1,2,3,4,5,6,7,9
| /--\
| | /
|\ V /
| \----->A8--8-->[B8]
|
| 0,1,2,3,4,5,6,7,8
| /--\
| | /
\ V /
\----->A9--9-->[B9]
這是該語言最簡單的 NFA 還是 DFA? 幾乎可以肯定不是。 但它應該工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.