[英]What is the language of this deterministic finite automata?
鑒於:
我不知道接受的語言是什么。
通過查看它,您可以獲得幾個最終結果:
1.) bb
2.) ab(a,b)
3.) bbab(a, b)
4.) bbaaa
在任何自動機中,狀態的目的就像記憶元素。 狀態自動存儲一些信息,如 ON-OFF 風扇開關。
確定性有限自動機 (DFA) 稱為有限自動機,因為以狀態形式存在的內存量是有限的。 對於任何正則語言 (RL),DFA 始終是可能的。
讓我們看看 DFA 中存儲了哪些信息(參考我的彩色圖)。
(注意:在我的解釋中,任何數字表示零次或多次, Λ
是空符號)
State-1:是START狀態,其中存儲的信息是偶數a
已經到來。 和零b
。
此狀態的正則表達式 (RE) 為= (aa)*
。
國家4:奇數a
已經來臨。 和零b
。
此狀態的正則表達式為= (aa)*a
。
圖:一個BLUE狀態=的偶數a
,和RED狀態=的ODD數a
已經到來。
注意:一旦第一個b來了,移動就不能回到狀態 1 和狀態 4。
狀態 5:在Yellow b
。 Yellow b
表示在b after odd numbers of a
。
一旦你得到b
的奇數后a
(在國家的5)每一件事情是可以接受的,因為有自我為(B,A)在國家的5環。
您可以為 state-5 編寫: Yellow-b 后跟 a, b 的任何字符串,即= Yellow-b
(a + b)*
狀態 6:只是為了區分是奇數a
還是偶數。
狀態 2:在a
之后,然后是b
然后是任意數量的b
。 = (aa)*
bb*
狀態 3:在狀態 2 之后,然后首先a
然后是通過狀態 6 的循環。 我們可以寫為 state-3 come = state-2
a
(aa)*
= (aa)*bb*
a
(aa)*
因為在我們的 DFA 中,我們有三個最終狀態,所以 DFA 接受的語言是三個 RL(或三個 RE)的並集(RE 中的+)。
所以DFA接受的語言對應三個接受狀態-2,3,5 ,我們可以這樣寫:
State-2 + state-3 + state-5
(aa)*bb*
+ (aa)*bb*
a
(aa)*
+ Yellow-b
(a + b)*
我忘了解釋how Yellow-b comes?
答案: Yellow-b
是狀態 4 或狀態 3 之后的b
。 我們可以這樣寫:
Yellow-b
= ( state-4 + state-3 )
b
= ( (aa)*a
+ (aa)*bb*
a
(aa)*
) b
[答案]
(aa)*bb*
+ (aa)*bb*
a
(aa)*
+ ( (aa)*a
+ (aa)*bb*
a
(aa)*
) b
(a + b)*
英語語言描述:DFA 接受三種語言的結合
a
,后跟一個或多個b
,a
,后跟一個或多個b
,后跟奇數個a
。a
和b
與奇數a
的,其次是b
,其次是任何字符串a
和b
與Λ
。英語描述很復雜,但這是描述語言的唯一方法。 您可以通過首先將給定的 DFA 轉換為最小化的 DFA 然后編寫 RE 和描述來改進它。
此外,還有一種派生方法可以使用Arden 定理從給定的轉換圖中找到 RE。 我在這里解釋了如何使用 Arden 定理為 DFA 編寫正則表達式。 轉換圖必須首先轉換為沒有空移動和單啟動狀態的標准形式。 但我更喜歡通過分析而不是使用數學推導方法來學習計算理論。
我想這個問題不再相關:) 指導你完成它然后只是陳述答案可能更好,但我想我有一個涵蓋它的基本表達(它可能可以最小化),所以我會寫它為未來的搜索者打下基礎
(aa)*b(b)* // for stoping at 2
U
(aa)*b(b)*a(aa)* // for stoping at 3
U
(aa)*b(b)*a(aa)*b((a)*(b)*)* // for stoping at 5 via 3
U
a(aa)*b((a)*(b)*)* // for stoping at 5 via 4
您在那里提供的示例 (1 - 4)不是DFA 接受的語言。 它們只是屬於DFA 接受的語言的字符串。 因此,它們都屬於同一種語言。
如果您想找出定義該 DFA 的正則表達式,您將需要執行稱為k 路徑歸納的操作,您可以在 此處閱讀。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.