計算クラスの理論について宿題をしているのですが、2つのDFAを組み合わせる方法が少し混乱しています。その本はそうするためにそれが「交差点構造」を使うと言います、しかし私はそれが何であるかわかりません。以下に2つの例を示します。
混乱はどこにあるのかはわかりますが、アイデアはかなり単純です。直交プロダクトマシンの構造を介して交差(和、差)マシンを作成するプロセスをテキスト/記号で説明します(あなたが話しているのと同じことです)約)。
DFAは5タプル(E、Q、q0、A、f)です。
2つのマシンM '=(E'、Q '、q0'、A '、f')とM '' =(E ''、Q ''、q0 ''、A ''、f '')があるとします。 。議論を簡単にするために、E '= E' 'と仮定します。ここで、L(M '' ')= L(M')がL(M '')と交差(または和集合または差)するようにM '' 'を作成します。
よし! 2つのマシンを考えてみましょう。1つはa ^ 2nを受け入れ、もう1つはa ^ 3nを受け入れます(交点はa ^ 6nを受け入れるマシンでなければなりません...正しいですか?)。
M 'には...
M ''には、...
M '' 'には、...
これで完了です。説明が必要な場合はお知らせください。
これらは次のとおりです。{s∈{a、b、c} ∗:sのすべてのaの直後にabが続く} {s∈{a、b、c} ∗:sのすべてのaの直後にab}と{s ∈{a、b、c} *:sのすべてのcの直前にab}
前と別のオートマトンでは、状態「0」と「2」を結合できます。
そして、あなたはそれを保持する必要があります...
言語の交差のためにオートマトンを実行するための正確な方法があります。 AAとBBを入力オートマトンとします。新しいオートマトンのケースは、AAとBBの状態のすべてのペアになります。つまり、SA∩B= SA×SBSA∩B= SA×SBであり、初期状態はiA∩B=⟨iA、iB⟩iA∩B=になります。 ⟨iA、iB⟩、ここでiAiAとiBiBはAAとBBの初期状態、FA∩B= FA×FBFA∩B= FA×FBここで、FXFXはXXの受け入れ状態のセットを示します。最後に、遷移関数δA∩BδA∩Bは、任意の文字α∈Σα∈Σに対して次のように定義され、p1、p2∈SAp1、p2∈SA、q1、q2∈SBq1、q2∈SBを示します。
⟨p1、q1⟩−→−−A∩Bα⟨p2、q2⟩iff p1−→Aαp2andq1−→Bαq2⟨p1、q1⟩→A∩Bα⟨p2、q2⟩iff p1→Aα p2andq1→Bαq2このようなオートマトンは通常最小限ではないことに注意してください(たとえば、交差部分は単なる空の言語かもしれません)。また、出力のサイズは2次であるため、入力オートマトンを最小限にすると便利です(ただし、必須ではありません)。 //リファレンス:math.stackexchange.com Happy Coding ...