0

これを確認できますか:https ://dl.dropbox.com/u/25439537/finite%20automata.png

これはチェックされた宿題ですので、心配しないでください。先生が間違っているとマークしているので、私の答えが正しいかどうかを明確にしたいだけです。

私の答えは((a + b)(a + b))* aです。最初の(a + b)は上の矢印を意味します。2番目(a + b)は、下の矢印を示します。最後の「a」は、常に「a」で終わる必要があることを示しています。

先生に渡すことができるように、たくさんの専門家からの証拠を記録したいだけです。

4

2 に答える 2

0

あなたの答えは正しいと思います。

プロセス全体を2つの部分と考えてみましょう。(1)で始まり、;startに戻ります。start(2)からstartに移動してend受け入れます。明らかに、(1)の部分はループです。

(1)の場合、で始まるstart、acceptbまたはa。のためbに、それb(a+b)は戻ることです。のためaに、それa(a+b)は戻ることです。したがって、(1)はb(a+b) + a(a+b)どちらです(a+b)(a+b)

(2)の場合はa'です。

したがって、最終結果は次の(loop in (1))* (2)ようになり( (a+b)(a+b) )* aます。

上記の説明に従ってください。2つの間の同等性の証明を思い付くことができます。証明部分(a)オートマトンによって受け入れられるすべてのシーケンスがセットに含まれてい((a+b)(a+b))*aます。パート(b)セット内のすべてのシーケンスは((a+b)(a+b))*a、オートマトンによって受け入れられます。

于 2012-11-23T06:49:33.433 に答える
0

bで始まる文字列が提供されていないため、答えは間違っています。

パス(開始)-> b-> a + b-> a->(終了)は有限オートマトンによって受け入れられますが、正規表現によっては受け入れられません。あなたの答えが正しいことに対する最も単純な反例は、文字列「baba」の正規表現の拒否です。

ちなみに、教師が2つの同心円を持つ「終了」状態のない正規表現をあなたに与えた場合(受け入れ状態であることを示すため)、それはおそらくトリックの質問でした。受け入れ状態がないということは、オートマトンがすべてを拒否することを意味します。それを説明する最良の方法は、{}(空のセット)を書き留めることです。

于 2012-11-24T19:27:00.463 に答える