Zwei-Wege-Finite-Automaton: Wie erinnert sich der Automaton an den Staat?
-
29-09-2020 - |
Frage
Ich bin durch eine Theorie von zweiwege endlichen Automaten gegangen, und ich habe das gegebene Beispiel nicht verstanden, als es ein
l= {# u # | uu ∈ L (a)} .
In dem folgenden Absatz beschreibe ich, wie es funktioniert, wenn wir ein Wort lesen, das zur Sprache gehört.
Prozedur Automaton B folgt den Staaten von Automaton A, wenn es rechts reicht "#", stoppt, erinnert sich an den akzeptierenden Zustand und beginnt sich durch die kopierten Zustände von Automaton A: q | solange es nach rechts kommt '#'. Anschließend beginnt es mit den kopierten Zuständen Q || von Automaton A, und sobald es die richtigen Überprüfungen reicht, wenn es der gespeicherte Annahmezustand ist. Bild unten zeigt die Bewegungen, in denen QN ein fehlerhafter / nicht akzeptierender Zustand ist, und +1 Bewegung von Kopf nach rechts und -1 und -1 Bewegung des Kopfes nach links.
Frage
Wie erinnert sich die 2-DFA daran, dass er während des ersten Spaziergangs durch die Staaten von Automaton ein den akzeptierenden Zustand für den zweiten Spaziergang auszurechnen?
Lösung
Hier ist ein einfacheres Beispiel für NFAS.
Wir zeigen, dass, wenn $ l_1, l_2 $ regelmäßige Sprachen über disjunkte Alphabete $ \ Sigma_1, \ Sigma_2 $ sind , dann ist also die folgende Sprache über $ \ Sigma=sigma_1 \ cup \ sigma_2 $ :
Hier sind die Details, die zeigt, wie wir den Zustand des Zustands der $ A_1 $ $ implementieren.
let $ A_1=Langle q_1, \ Sigma_1, q_ {01}, \ delta_1, f_1 \ Rangle $ und lass $ A_2=Langle q_2, \ sigma_2, q_ {02}, \ delta_2, f_2 \ rangle $ . Wir erstellen einen neuen DFA-
-
Der Statussatz ist $ q= (q_1 \ times \ {1 \ \}) \ cup (q_1 \ times q_2) \ cup (q_1 \ times \ { 2 \}) \ cup \ {q_f \} $ . Die Zustände des ersten Teils werden zum Simulieren von $ A_1 $ vor einem Symbol aus $ \ Sigma_2 $ jemals aufgetreten Die Zustände des zweiten Teils werden zum Simulieren von $ A_2 $ verwendet, während sich erinnert den Status der
$ A_1 $ . Die Zustände im dritten Teil werden zum Simulieren von $ A_1 $ nach dem Lesen des $ y $ teil. Der endgültige Zustand verarbeitet verschiedene Fehlermodi. -
Der Anfangszustand ist $ (q_ {01}, 1) $ .
-
Die Übergangsfunktion ist wie folgt definiert:
- wenn $ \ Sigma \ in \ sigma_1 $ dann $ \ Delta ((Q, 1), \ Sigma)= (\ \ delta_1 (q, \ Sigma), 1) $ : Wir erstrecken sich nur $ A_1 $ .
- Wenn $ \ Sigma \ in \ sigma_2 $ dann $ \ Delta ((Q, 1), \ Sigma)= (q, \ delta_2 (q_ {02}, \ Sigma)) $ : wir merken sich an den Status $ A_1 $ , und voraus $ A_2 $ .
- Wenn $ \ Sigma \ in \ sigma_2 $ dann $ \ Delta ((Q_1, Q_2), \ Sigma)= (Q_1, \ DELTA_2 (Q_2, \ SIGMA)) $ : Wir empfehlen $ A_2 $ , während der Status der
$ a_1 $ intakt. - Wenn $ \ Sigma \ in \ Sigma_1 $ und $ q_2 \ NOTIN F_2 $ dann $ \ DELTA ((Q_1, Q_2), \ Sigma)= q_f $ : der $ y $ Teil ist nicht In $ l_2 $ , so wählen wir den Ausfall aus.
- wenn $ \ Sigma \ in \ Sigma_1 $ und $ q_2 \ in f_2 $ dann $ \ Delta ((Q_1, Q_2), \ Sigma)= (\ DELTA_1 (Q_1, \ SIGMA), 2) $ : Wir gehen zurück zur Simulation $ A_1 $ .
- Wenn $ \ Sigma \ in \ sigma_1 $ dann $ \ Delta ((Q_1,2), \ Sigma)= (\ DELTA_1 (Q_1, \ SIGMA), 2) $ : Wir fahren nur $ A_1 $ .
- Wenn $ \ Sigma \ in \ sigma_2 $ dann $ \ Delta ((Q_1,2), \ Sigma)= q_f $ : Der Eingang ist fehlerhaft, also signalisieren wir den Fehler.
- für alle $ \ Sigma $ , $ \ DELTA (Q_F, \ Sigma)= q_f $ .
Hoffentlich erklärt dies, wie ein DFA ein Informationsbild zum Erinnerung begangen kann.Da ein DFA nur endlich viele Zustände hat, kann er nur eine konstante Menge an Informationen speichern.