Datenverarbeitende Systeme:
Kapitel 2: Endliche Automaten

2.1 Was sind Automaten

Der Begriff Automat soll im Folgenden verwendet werden, um ein (geschlossenes) System und dessen innere Abläufe zu beschreiben. Einem Automaten werden feste innere Zustände und Zustandsübergangsfunktionen einbeschrieben. Ein innerer Ablauf sieht wie folgt aus: Eine Eingabe von außen führt von einem Zustand aus über eine Zustandsübergangsfunktion in einen zweiten Zustand.

Von endlichen Automaten spricht man, wenn der Automat einen oder mehrere Zustände hat, die als Endzustand angesehen werden können.


2.2 Endliche deterministische Automaten

Endliche deterministische Auotmaten sind wie folgt definiert:

  • Es gibt genau einen Anfangszustand
  • Von jedem Zustand Sn aus wird jede Eingabe x aus der Sprache L akzeptiert
  • Eine Eingabe x führt von jedem Zustand Sn in genau einen Folgezustand Sn+1

Für Automaten zeichnet man gewöhnlich Graphen in folgender Form:

Identifier Automat

Dieser Automat erkennt Identifier für Variabeln, wie sie zum Beispiel Pascal verwendet. S0 markiert den Startzustand, S1 den Endzustand - erkennbar an der doppelten Umrahmung. Wird als erstes Zeichen eine Zahl eingegeben, dann wird in den Fehlerzustand verzweigt, der nichtmehr verlassen werden kann. Beliebige Buchstaben führen in den Endzustand, in dem beliebig viele weitere Zeichen eingegeben werden können. Der Identifier 16Zeiger wäre ungültig, Zeiger16 dagegen gültig. Versucht einmal zu erkennen, welches Wort der folgende Automat in einem beliebigen eingegebenen Text erkennen kann:

Automat 2

Fahrt mit dem Mauszeiger über das Bild, um die Lösung zu erfahren.


2.3 Endliche nichtdeterministische Automaten

Nichtdeterministische Automaten können bei einem Eingabesymbol x in mehrere Folgezustände übergehen. Sie können ebenso mehrere Ausgangszustände haben. Es muss nicht von jedem Eingabezustand aus auf jedes Eingabesymbol reagiert werden: Eingaben, die von einem Zustand nicht erkannt werden, führen zum Abbruch des entsprechenden Zustandes. Der Ausgangszustand wird nicht abgebrochen! Bricht der letzte Zustand ab, wird wieder beim Anfangszustand begonnen.

Es gibt verschiedene Möglichkeiten, wie ein Automat auf das Wechseln in verschiedene Folgezustände reagiert:

  • Es sind alle Folgezustände gleichzeitig aktiv und reagieren autark auf weitere Eingaben
  • Der Automat repliziert sich sooft, wie es Folgezustände gibt, und jedes Replikat nimmt einen der Möglichen Folgezustände ein
  • Der Automat wählt einen Zustand s' aus allen Möglichen Folgezuständen und geht in diesen über

Für den Graphen bedeutet das: Von einem Zustand können mehere Pfade abzweigen, die auf die selbe Eingabe x reagieren. Der Folgende Zustandsgraph hat die selbe Funktion wie der obige.

Automat 2

Ich will die Arbeitsweise kurz erläutern, indem wir den Automaten mit der Eingabe AOOTTOBO füttern (ich spreche im Folgenden von Instanzen und meine damit die verschiedenen Zustände S, die der Automat annehmen kann):

Der Automat befindet sich zu Beginn im Zustand S0. Das A bewirkt gar nichts, da der Startzustand nicht reagiert. Geben wir das erste O ein, so öffnet der Automat eine Instanz S1 und hält gleichzeitig eine Instanz S0 aufrecht (diese ist IMMER offen). Beim zweiten O bricht S1 ab (die Instanz akzeptiert nur T!), aber von S0 wird wieder in S1 gewechselt. Analog geht es weiter, bis das letzte O eingegeben wird. Dann ist Zustand 4 erreicht. Welche Zustände sind offen, wenn das letzte O eingegeben wurde?

Antwort: S
0, S1 und S4

Es lässt sich zeigen, dass man für jeden nichtdeterministischen Automaten auch einen deterministischen Konstruieren kann. Dazu fasst man jede Kombination von Folgezuständen des nichtdeterministischen Automaten zu einem Zustand des Deterministischen zusammen. Dadurch vergrößert sich jedoch der Automat. Meist kann man jedoch den entstandenen Graphen noch weiter optimieren, indem man ein wenig darüber nachdenkt, wo redundante Übergänge vorliegen.



© Gerhard Zapf
Grundlagen
Sitemap
www.tutorialpage.de
Reguläre Sprachen
Diese Seite wurde seit dem 12.07.01 genau 86 mal abgerufen.
Letzte Änderung: 11.09.2003