19.11.2014 Aufrufe

Inhaltsverzeichnis - Automaten und Formale Sprachen

Inhaltsverzeichnis - Automaten und Formale Sprachen

Inhaltsverzeichnis - Automaten und Formale Sprachen

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!