3つのDFAがあるとします。私たちはそれらをOR、AND、またはNOTする方法を知っています。しかし、それらをどのようにXORするのでしょうか。これについては、オンラインでの言及は1つだけではありません。
。これは、描画するには複雑すぎて時間がかかります。別の方法はありませんか?
お時間をいただきありがとうございます!
3つのDFAがあるとします。私たちはそれらをOR、AND、またはNOTする方法を知っています。しかし、それらをどのようにXORするのでしょうか。これについては、オンラインでの言及は1つだけではありません。
。これは、描画するには複雑すぎて時間がかかります。別の方法はありませんか?
お時間をいただきありがとうございます!
回答:
2つのオートマトンの共通部分と結合部分( "and"と "or")の構成は、どの状態が受け入れられるかの定義を除いて、まったく同じであることに注意してください。同じ原則が、有限の言語セットのブール値の組み合わせにも適用されます。製品の構造と、どの状態を受け入れるかについての適切な定義を使用してください。
3つのマシンはすべて確定的であるため、組み合わせた操作はまったく複雑ではありません。マシンを並行して実行し、交差にも使用されるような直接的な製品構成を使用し、各トリプルステートXORで最終状態の存在を確認して、XOR製品の新しい状態を受け入れるかどうかを確認します。
DFAのみを使用しているため、2つのオートマトンのクロス積を作成し、1つの状態が受け入れ状態であるが、両方ではない状態のペアを受け入れ状態として受け入れることにより、2つのオートマトンをXORできます。
この構成は、各状態がアルファベット記号ごとに1つの後続状態を持つDFAに対してのみ機能することに注意してください。これにより、オートマトンのシミュレーション時に常に状態に到達することが保証され、単語の受け入れは、この状態が終了状態であるかどうかにのみ依存します。時々、DFAは、各状態が各アルファベット記号に対して多くても1つの後続状態を持つように定義されます。この場合、単語が受け入れられない2番目の理由があるため、上記の構文は機能しなくなります。いくつかの単語では、状態にまったく到達しません。