Endliche Zustandsautomaten: Endzustände


8

In unserem Kurs über Programmiersprachenkonzepte behauptete unser Kursleiter, dass es in Ordnung ist, wenn ein Endzustand in einem Diagramm mit endlichen Zuständen zu einem anderen Zustand führt.

Dies scheint jedoch ein grundsätzlich widersprüchliches Konzept zu sein. Da ein Endzustand per Definition Übergänge beendet, dh, sobald Sie ihn erreicht haben, bleibt nichts anderes zu tun.

Und doch präsentierte er eine Folie wie diese, auf der Endzustände durch zwei Kreise dargestellt werden ... Wie ist es möglich, dass B, D, E und H Endzustände sind, wenn sie so eindeutig nicht sind?

Geben Sie hier die Bildbeschreibung ein


"Sobald Sie es erreicht haben, gibt es nichts mehr zu tun." Nur wenn Sie alle Eingaben verbraucht und einen Epsilon-Übergang in Betracht gezogen haben.
Andrea Lazzarotto

Antworten:


17

Sie scheinen ein Missverständnis zwischen generativen Modellen und dem "Erkennen" von Modellen zu haben.

Die Grammatik auf der rechten Seite generiert Wörter, indem Regeln angewendet werden, beginnend mit der Anfangsvariablen und angehalten, nachdem keine Variablen mehr vorhanden sind.

Automaten erkennen eine Sprache jedoch wie folgt: Sie geben dem Automaten ein Wort, Buchstabe für Buchstabe, und der Automat nimmt Übergänge basierend auf den ihm zugewiesenen Buchstaben vor.

Wenn der Automat nach dem Lesen aller Buchstaben in einem akzeptierenden (auch als Endzustand bezeichneten) Zustand endet, sagen wir, dass der Automat das Wort akzeptiert.

Es ist daher besser, sich diese als "akzeptierende" Zustände vorzustellen, als als "endgültige" Zustände, obwohl beide Begriffe häufig verwendet werden.


Ich stimme sehr zu. Mein Lehrbuch nannte sie auch "endgültige" Zustände und es verwirrte mich, bis ich mich zwang, sie "akzeptierende Zustände" zu nennen, haha.
Seankala

Komisch, ich habe den Begriff „Endzustand“ noch nie bewusst gesehen, ich habe immer gesehen, dass sie „Akzeptanzzustand“ nennen - und wie diese Antwort erklärt, ist „Endzustand“ wohl falsch.
Konrad Rudolph

7

Ein Endzustand ist per Definition ein Zustand, der Übergänge beendet, dh, sobald Sie ihn erreicht haben, gibt es nichts mehr zu tun.

Die Quelle Ihrer Verwirrung ist, dass dies nicht die Definition ist. "Endzustand" ist eine schlechte Namenswahl, und die meisten Autoren scheinen "Akzeptanzzustand" zu bevorzugen. Die Definition ist, dass der Automat akzeptiert, wenn sein Lauf in einem endgültigen / akzeptierenden Zustand endet und anderweitig ablehnt.


7

In der Tat ist es verwirrend! Um Ihr Problem zu lösen, nennen Sie sie "Akzeptieren" anstelle von "Endzuständen". Denn genau das sind sie, nur ein Marker, der uns sagt, dass die verarbeitete Zeichenfolge in diesem Moment zur Sprache gehört.


3

"Ein Endzustand ist per Definition ein Zustand, der Übergänge beendet, dh, sobald Sie ihn erreicht haben, gibt es nichts mehr zu tun."

In der traditionellen Konvention der Arbeit mit Akzeptoren (dh Automaten mit endlichen Zuständen, die Ihnen sagen, ob eine bestimmte Zeichenfolge zu einer Sprache gehört oder nicht), ist ein Endzustand ein Zustand, der bei Erreichen mit einer leeren Zeichenfolge (die Eingabe war vollständig verbraucht) bedeutet, dass die ursprüngliche Zeichenfolge akzeptiert wird, dh Teil der Sprache des Automaten ist.


3

Wie du siehst. Die angegebene Grammatik lautet A -> a. Daher akzeptiert der Automat, mit der Zeichenfolge "a" zu enden. Es erlaubt aber auch A -> aB -> abD -> abc, so dass auch die Zeichenfolge "abc" akzeptiert wird. Wenn wir die Zeichenfolge an diesem Punkt beenden, befinden wir uns in einem Endzustand und daher wurde die Zeichenfolge akzeptiert. Möglicherweise möchten wir jedoch weiterhin, dass die Zeichenfolge "ab" akzeptiert wird. Wir müssen also sicherstellen, dass {"a", "ab", "abc"} alle vom Automaten akzeptiert werden. Sehen Sie die Endzustände nicht als einen Zustand an, bei dem wir ihn möglicherweise nie verlassen. Sehen Sie ihn als einen Zustand, der uns mitteilt, ob unsere aktuelle Zeichenfolge akzeptiert wird oder nicht.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.