簡體   English   中英

兩個確定性有限自動機的並集?

[英]The union of two determinstic finite automata?

我正在嘗試解決一個必須為兩種語言的結合創建DFA的問題。

這些是:{s是{a,b,c} * | s中的每個“ a”后面緊跟一個“ b”},然后

{s是{a,b,c} * | s中的每個“ c”都以“ b”開頭

我認為我走在正確的道路上,但不確定是否完全正確。 有人可以看看嗎?

這是一篇類似的文章 ,介紹了如何查找兩個DFA的聯合。

要理解的關鍵是,您必須同時運行兩個DFA,或者通常必須在聯合DFA中維護兩個DFA的狀態。


編輯:

您得到錯誤結果的原因是因為您的DFA不確定,並且它們實際上並不能決定您描述的語言。 我認為您對聯盟的計算是正確的,但是您應該先修復DFA,然后再繼續進行。

兩種語言的交集由L1 ∩ L2 = not(not(L1) ∪ not(L2)) (根據de Morgans法則)。

DFA的補碼( "not" )是通過將所有接受狀態都更改為不接受而來的,反之亦然。 這將為您提供不確定的有限自動機(NFA)。

通過將您的兩個DFA或NFA合並到一個同時接受兩種語言的新NFA中來創建聯合。 這是通過引入一個起始狀態完成的,您可以從中進入兩個NFA的起始狀態,而無需消耗任何東西(僅消耗ε)。

完成所有這些操作后,您便擁有了NFA。 您可以使用常用方法將其簡化為DFA。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM