Inhaltsverzeichnis - Automaten und Formale Sprachen
Inhaltsverzeichnis - Automaten und Formale Sprachen
Inhaltsverzeichnis - Automaten und Formale Sprachen
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
(a) Tabellenform:<br />
Man hat die Mengen Q <strong>und</strong> Σ durch Auflistungen gegeben, ebenso F ; weiter ein Element<br />
q 0 ∈ Q. Die Übergangsfunktion δ ist als Tabelle (|Q| × |Σ|-Matrix) gegeben: Der Eintrag<br />
am Schnittpunkt der Zeile für q ∈ Q mit der Spalte für a ∈ Σ ist δ(q, a) ∈ Q.<br />
Diese Form ist besonders gut zur Ausführung der Berechnungen von DFA’s <strong>und</strong> zur Manipulation<br />
von DFA’s auf Rechnern geeignet. Die dazu benötigten Datenstrukturen möge<br />
man sich selbst zurechtlegen. (Arrays für Sigma <strong>und</strong> Q, ein Bitvektor für F , ein Index<br />
für q 0 , ein zweidimensionales Array mit Einträgen aus Q für δ.)<br />
(b) Graphenform:<br />
Man kann einen DFA M als einen gerichteten Graphen G M mit Knoten- <strong>und</strong> Kantenmarkierungen<br />
auffassen. Jedem Zustand q ∈ Q entspricht ein Knoten v q mit Markierung q.<br />
Die (gerichteten) Kanten in G M sind mit Buchstaben a ∈ Σ markiert. Dabei verläuft eine<br />
mit a markierte Kante von v q nach v q ′ genau dann wenn δ(q, a) = q ′ . Beachte, dass G M<br />
Mehrfachkanten (mit verschiedenen Markierungen) <strong>und</strong> Schleifen (Kanten mit demselben<br />
Anfangs- <strong>und</strong> Endpunkt) besitzen kann. Jeder Knoten in G M hat Ausgrad |Σ|.<br />
q<br />
a<br />
q’<br />
Einfachkante<br />
δ(q,a)=q’<br />
d<br />
b<br />
q<br />
a<br />
b<br />
d<br />
q’<br />
Mehrfachkante<br />
δ(q,a)=δ (q,b)=δ(q,d)=q’<br />
a<br />
q c<br />
Schleife<br />
δ(q,a)=δ (q,c)=q<br />
(Man überlege, wieso die Tabelle für δ aus (a) eine kompakte Beschreibung von G M<br />
darstellt.)<br />
Die Knoten v q0 <strong>und</strong> v q , q ∈ F , sind speziell markiert. Wenn wir G M zeichnen, stellen wir<br />
<strong>und</strong> die Knoten v q mit q ∈ F folgendermaßen dar:<br />
v q0<br />
Start<br />
q 0<br />
q<br />
Bei der graphischen Darstellung vermeiden wir Mehrfachkanten von v q nach v q ′ dadurch,<br />
dass wir nur eine Kante angeben <strong>und</strong> diese mit den Elementen der Menge {a ∈ Σ |<br />
δ(q, a) = q ′ } bzw. einer Abkürzung für diese Menge markieren.<br />
Der große Vorteil der Darstellung von endlichen <strong>Automaten</strong> als Graphen liegt neben<br />
der anschaulicheren Darstellung darin, dass DFA’s mit Graphenalgorithmen bearbeitet<br />
werden können. Wir werden die Graphensichtweise konsequent verwenden.<br />
12