Müssen Übergänge für jedes mögliche Alphabet in deterministischen endlichen Automaten definiert werden?

13

Morgen ist meine Präsentation und ich möchte meine Konzepte klären ...

Ich habe gelesen, dass in DFA "Für jeden Zustand sollte der Übergang für alle möglichen Symbole (Alphabet) definiert werden."

Ist für jeden Status die Definition des Übergangs für alle möglichen Symbole in DFA obligatorisch? Wenn nicht, geben Sie bitte Beispiele an.

HQuser
quelle
1
Willkommen bei CS.SE! Wir bevorzugen, dass Sie nur eine Frage pro Post stellen. Dies sieht aus wie zwei getrennte Fragen. Es wäre besser, die zweite (über NFAs) separat zu posten. Haben Sie diese Site gründlich durchsucht und die formale Definition in Ihrem Lehrbuch überprüft? Wenn nicht, sollten Sie das tun, bevor Sie fragen; und Sie sollten uns in der Frage zeigen, was Sie gefunden haben, als Sie das taten.
DW
Vielen Dank für den herzlichen Empfang, ich habe tatsächlich auf dieser Website und auf Google gesucht, aber ich
bekomme
Die zweite Frage wurde entfernt. Sie finden sie jedoch im Bearbeitungsverlauf und können sie über die Schaltfläche "Frage stellen" oben rechts separat als separate Frage veröffentlichen. Bevor Sie jedoch fragen, vergewissern Sie sich, dass Sie die vorgeschlagene Recherche durchgeführt haben, und teilen Sie uns in der Frage, welche Recherche Sie durchgeführt haben, mit, welche Lehrbücher Sie gelesen haben. Was diese Frage betrifft, können Sie diese Frage noch bearbeiten, um das Feedback zu beantworten, das ich hier gegeben habe, indem Sie die formale Definition in Ihrem Lehrbuch nachschlagen, einschließlich der Frage, und Ihre Interpretation dieser Definition anzeigen.
DW
9
Wie auch immer, dies scheint von cs.stackexchange.com/q/12587/755 abgedeckt zu werden . Bitte Gemeinschaftsstimmen: Ist das ein Duplikat?
DW
1
Ich verstehe deine Frage nicht wirklich. Es scheint zu sein "Ich habe gelesen, dass die Definition X ist. Ist die Definition X?"
David Richerby

Antworten:

12

Ein DFA wird durch die folgenden Daten angegeben:

  • Ein Alphabet .Σ
  • Eine Reihe von Staaten .Q
  • Ein Anfangszustand .q0Q
  • Eine Menge von Endzuständen .FQ
  • Eine Übergangsfunktion δ:Q×ΣQ .

Wie Sie an der Signatur von , gibt es für jedes Symbol einen Übergang in jedem Zustand an.δ

Yuval Filmus
quelle
7
Mit der Ausnahme, dass DFAs manchmal mit einer partiellen Übergangsfunktion definiert werden.
Gilles 'SO- hör auf böse zu sein'
6
Sie haben Recht, es gibt keine "offizielle" Definition eines DFA. Die Lesart des OP verrät jedoch den Einfluss dieser speziellen Definition.
Yuval Filmus
Sollte ausdrücklich sagen, dass die Übergangsfunktion total ist.
Ryan
24

Angenommen, ein DFA darf fehlende Übergänge aufweisen. Was passiert, wenn Sie auf ein Symbol stoßen, für das keine Transtion definiert ist? Das Ergebnis ist undefiniert. Dies scheint das "deterministische" Merkmal eines DFA zu verletzen.

Es ist jedoch trivial, einen solchen unvollständigen DFA in einen vollständigen DFA umzuwandeln . Fügen Sie einfach einen neuen Status hinzu illegalund ordnen Sie alle nicht definierten Übergänge dem illegalStatus zu. Fügen Sie schließlich für jedes Symbol Übergänge vom illegalStatus zurück zu sich selbst hinzu. Dieser illegalZustand wird oft als Senkenzustand bezeichnet , da es keine Möglichkeit gibt, herauszukommen, sobald Daten in die Senke gelangen.

Aus praktischer Sicht ist es also eine Art Streit, solange Sie einen genau definierten Weg haben, um mit fehlenden Übergängen umzugehen.

Nathan Davis
quelle
10
Achtung: Ein nicht definierter Übergang macht den Automaten nicht deterministisch, sondern nur unvollständig. Es gibt einige Definitionen von DFA, die solche undefinierten Übergänge gerade deshalb zulassen, weil es trivial ist, sie systematisch abzuschließen.
Darkhogg
1
@Darkhogg, ich bin nicht unbedingt anderer Meinung, aber würde der Determinismus eines unvollständigen DFA nicht davon abhängen, wie eine bestimmte Implementierung mit diesen undefinierten / fehlenden Übergängen umgeht? Und würde eine solche Implementierung den DFA nicht implizit vervollständigen?
Nathan Davis
1
Nein, es hängt nicht von der Implementierung ab, es hängt von der Definition ab. Wenn Sie definieren, dass DFAs eine Gesamtübergangsfunktion haben, und dann eine Teilfunktion verwenden, haben Sie undefiniertes Verhalten und werden möglicherweise nicht determiniert, aber das ist nicht selbstverständlich. DFAs werden jedoch manchmal explizit für die Verwendung einer Teilfunktion definiert, und wenn ein undefinierter Übergang auftritt, ist das Verhalten "nicht akzeptieren" (Punkt). Kein Nicht-Determinismus oder irgendetwas Ungewöhnliches für irgendeine Implementierung, da das Ergebnis definiert ist, selbst wenn der Übergang nicht ist.
Darkhogg
Übrigens: Sie können auch die umgekehrte Transformation durchführen. Nehmen Sie einen "totalen Automaten" und entfernen Sie einen sinkenden Zustand, um einen "unvollständigen Automaten" zu erhalten. Am Ende besteht der einzige Unterschied darin, dass ein Gesamtautomat immer ein Wort bis zum Ende lesen kann und danach entscheidet, ob er das Wort akzeptiert oder nicht, während ein Teilautomat einige Wörter ablehnen kann, bevor er alle ihre Wörter liest Zeichen.
Bakuriu
5

ΣQρQ×Σ×Qδ:(Q×Σ)2Q|δ(q,σ)|1qQσΣδ(q,σ)qQσΣ

Ein Wort wird von einer NFA akzeptiert, wenn es einen akzeptierenden Lauf hat. Ein deterministischer Automat hat höchstens einen Lauf. Ein vollständiger Automat hat mindestens einen Lauf.

Einige Autoren definieren trim Automaten als solche , in denen jeder Zustand auf irgendeinem Pfad von einem Anfangszustand zu einem Endzustand ist. Für bestimmte Sprachen können keine beschnittenen und vollständigen Automaten vorhanden sein. In diesen Fällen ist es zweckmäßig, die Vollständigkeitsanforderung aus der Definition des deterministischen Automaten herauszuhalten.

Fabio Somenzi
quelle