Hat jemand eine einfache Beschreibung des Algorithmus zur Konstruktion der Vereinigung von zwei gegebenen DFA? Zum Beispiel, sagen wir zwei DFA über haben {0,1}, woWie konstruieren Sie die Vereinigung von zwei DFAs?
{w|w has an odd number of characters}
w has states A and B
delta | 0 | 1
----------------
A | B | B
----------------
B | A | A
{x|x has an even number of 1s}
x has states a and b
delta | 0 | 1
----------------
a | a | b
----------------
b | b | a
Ich habe eine resultierende Übergangstabelle zeigt die Vereinigung als:
delta | 0 | 1
----------------
Aa | Ba | Bb
----------------
Ab | Bb | Ba
----------------
Ba | Aa | Ab
----------------
Bb | Ab | Aa
ich eine bildliche Lösung in meinem Skriptum haben, aber würde gerne sehen, wie andere es beschreiben würden. Daraus kann ich sehen, dass wir diese beiden ursprünglichen Tabellen im Wesentlichen "multiplizieren", indem wir ihre Statuswerte verwenden, um eine größere Übergangstabelle zu erhalten. Der DFA kann somit aus der resultierenden Tabelle gezogen werden. Klingt das richtig und sollte das für alle DFA-Fälle funktionieren, oder fehlt mir etwas?
Was ist, wenn Sie einen Übergang erhalten, der in einem der Automaten unmöglich ist? –
Sie würden den E (Fehler) -Zustand für den Automaten hinzufügen, der den Übergang unmöglich macht. Dieser Automat würde für den Rest der Eingabesequenz in diesem Status bleiben. Sagen wir es ist der erste. Sie würden dann Aa Ab, Ba, Bb, Ea, Eb im neuen Automaten haben. – Nenad
Ich denke, es wäre ähnlich, wenn ein Automat nur {0,1} als Eingabesymbole hat und das andere {1,2} als Eingabesymbole hat. Wir müssten dann beide Automaten mit Fehlerzuständen (E für den ersten und e für den zweiten) erweitern, wobei 1 zu E gehen würde, wenn 2 der Eingang ist, und 2 zu dem Zustand e gehen würde, wenn 0 der Eingang ist. – Nenad