Theoretische Informatik

Nichtdeterministischer endlicher Automat

 aufwärts

Mit einem regulären Ausdruck lässt sich eine reguläre Sprache erzeugen. Neben dem Konzept der Erzeugung einer Sprache gibt es das umgekehrte Konzept der Erkennung einer Sprache. Die Erkennung von Sprachen wird mit Automaten durchgeführt.

Die einfachste Art von Automat ist der endliche Automat. Er kann Zeichen auf einem Eingabeband lesen und mithilfe seines Steuerwerks verarbeiten (Bild 1).

Prinzip eines endlichen Automaten
Bild 1:  Prinzip eines endlichen Automaten

Zu Beginn der Verarbeitung steht ein Wort w Element A* am Anfang des Eingabebandes. Ausgehend von einem Startzustand, arbeitet der Automat das Wort w = w0 ... wn-1 zeichenweise ab und vollführt bei jedem Zeichen einen Zustandsübergang. Endet er in einem besonders gekenn­zeichneten Endzustand, so erkennt er das Wort w, d.h. akzeptiert es als Wort der Sprache, anderenfalls weist er es zurück.

Auf diese Weise lässt sich also ein Automat verwenden, um eine Sprache zu definieren. Die Sprache ist die Menge der Wörter, die der Automat erkennt.

 

Nichtdeterministischer endlicher Automat

Es folgt die formale Definition des endlichen Automaten, zunächst in der nicht­deterministischen und dann in deterministischen Version.

Definition:  Ein nicht­deterministischer endlicher Automat ist ein 5-Tupel

N  =  (Z, A, d, q, F).

Hierbei ist

Z eine endliche, nichtleere Menge von Zuständen,
A das Eingabe­alphabet,
d die Übergangs­relation   d  enthalten  ZkreuzAkreuzZ,
q Element Z    der Startzustand,
F enthalten Z die Menge der Endzustände.

Ein deterministischer endlicher Automat ist ein Spezialfall des nicht­deterministischen endlichen Automaten, bei dem die Übergangsrelation eine Übergangsfunktion ist:

d : ZkreuzA Pfeil Z

Ein Element (s, a, s') der Übergangs­relation d gibt für das Paar bestehend aus Zustand s und Eingabezeichen a den Zustand s' als möglichen Folgezustand an. D.h. befindet sich der Automat im Zustand s und liest er das Zeichen a als nächstes Eingabezeichen, so kann er den Zustand s' als Folgezustand annehmen.

Beim deterministischen endlichen Automaten ist der Folgezustand für alle (s, aElement ZkreuzA eindeutig bestimmt. Beim nicht­deterministischen endlichen Automaten kann es zu einem (s, aElement ZkreuzA mehrere mögliche Folgezustände geben, oder auch gar keinen.

Eine andere Darstellung der Übergangs­relation d eines nicht­deterministischen endlichen Automaten ist die einer Übergangs­funktion f in die Potenzmenge der Zustandsmenge. Dabei ordnet die Übergangs­funktion f jedem Paar aus Zustand und Eingabezeichen eine Menge von möglichen Folgezuständen zu:

f : ZkreuzA Pfeil Potenzmenge(Z)    wobei   f(s, a)  =  { s'  |  (s, a, s'Element d }

 

Die Tatsache, dass es beim nicht­deterministischen Automaten im allgemeinen keinen eindeutig bestimmten Folgezustand, sondern mehrere mögliche Folgezustände gibt, ist eine gedanklich schwierige (und erst recht technisch schwer umsetzbare) Konstruktion. Eine Möglichkeit der Vorstellung ist, dass der Automat wählt, welchen von den möglichen Folgezuständen er annimmt. Eine andere Vorstellung ist, dass der Automat entsprechend viele Kopien von sich herstellt, die jeweils in einem der möglichen Folgezustände weiterarbeiten. Eine weitere Vorstellung ist, dass der Automat mehrere Folgezustände gleichzeitig annimmt.

Anschaulich lässt sich das Verhalten eines nicht­deterministischen endlichen Automaten durch seinen Zustands­graphen darstellen.

Definition:  Der Zustands­graph eines nicht­deterministischen endlichen Automaten (Z, A, d, q, F) ist ein Graph G = (V, E, h). Hierbei ist V = Z, d.h. die Knoten des Graphen sind die Zustände des Automaten; Startzustand und Endzustände werden geeignet gekenn­zeichnet.

Ein Zustand s ist mit einem Zustand s' durch eine Kante (s, s') verbunden, wenn s' Folgezustand von s unter einem Zeichen a Element A ist, d.h. wenn (s, a, s'Element d gilt.

Die Abbildung h : E Pfeil Potenzmenge(A) ist eine Kanten­beschriftung; jede Kante (s, s') ist mit der Menge aller Zeichen beschriftet, unter denen Zustand s nach Zustand s' übergeht.

Beispiel:  In Bild 2a ist der Zustands­graph eines nicht­deterministischen endlichen Automaten abgebildet, hierbei sind die Mengenklammern um die Beschriftungen der Kanten weggelassen.

Die Zustandsmenge ist Z = {0, ..., 3}, der Startzustand ist q = 0, die Menge der Endzustände ist F = {2, 3}, und das Eingabe­alphabet ist A = {a, b}. Die Übergangs­relation d enthält folgende Zustands­übergänge:

Definition:  Sei e0 ... en-1 mit ei Element E, n Element natürliche Zahlen0 ein Pfad, also eine endliche Folge von aufeinander­folgenden Kanten, im Zustands­graphen G eines nicht­deterministischen endlichen Automaten.

Wir fassen die Kanten­beschriftungen als Elementarsprachen auf. Dann ergibt sich die Beschriftung des Pfades als Verkettung der Beschriftungen seiner Kanten:

h(e0 ... en-1)  =  h(e0)·... ·h(en-1).

Die Beschriftung eines Pfades ist also eine Sprache.

Definition:  Ein nicht­deterministischer endlicher Automat N erkennt (akzeptiert) das Wort w, wenn es in seinem Zustands­graphen einen Pfad vom Startzustand zu einem Endzustand gibt, dessen Beschriftung das Wort w enthält. Die Menge aller Wörter, die N erkennt, ist die von N erkannte Sprache L(N).

Formal ist die vom Automaten N erkannte Sprache

L(N)   =   { w = w0 ... wn-1   |   (si, wi, si+1Element di Element {0, ..., n-1},  si Element Zs0 = q Startzustand,  sn Element F }

d.h. es gibt eine Kette von Zustands­übergängen mit den Zeichen von w vom Startzustand q zu einem Endzustand.

Beispiel:  Im Zustands­graphen des nicht­deterministischen endlichen Automaten ist in Bild 2b ein Pfad vom Startzustand zu einem Endzustand hervorgehoben. Die Beschriftung des Pfades ergibt sich als {aaa, aba}, sie enthält das Wort w = aba. Das Wort aba wird also von dem Automaten erkannt. Die Kette der Zustands­übergänge für aba ist (0, a, 1), (1, b, 1), (1, a, 3).

Zustandsgraph eines nichtdeterministischen endlichen Automaten (a), Pfad vom Startzustand zu einem Endzustand (b)
Bild 2:  Zustands­graph eines nicht­deterministischen endlichen Automaten (a), Pfad vom Startzustand zu einem Endzustand (b)

In unserer Vorstellung von der Arbeitsweise eines nicht­deterministischen endlichen Automaten ergibt sich der in diesem Beispiel hervorgehobene Pfad dadurch, dass der Automat ausgehend vom Startzustand immer die richtigen Zustands­übergänge wählt, die mit dem Eingabewort w zu einem Endzustand führen – wie ein Schlafwandler, der auch seine Schritte immer richtig setzt, ohne zu wissen wo er ist und wohin er will.

 

Simulation eines nicht­deterministischen endlichen Automaten

Es ist im allgemeinen nicht offensichtlich, ob ein gegebener nicht­deterministischer endlicher Automat ein bestimmtes Wort w erkennt, d.h. ob es in seinem Zustands­graphen einen Pfad gibt, dessen Beschriftung das Wort w enthält. Dies lässt sich jedoch herausfinden, indem eine Breitensuche im Zustands­graphen des Automaten durchgeführt wird. Dieses Verfahren wird als Simulation des Automaten bezeichnet.

Die Simulation eines nicht­determistischen endlichen Automaten kann man sich als eine Art "Mensch-ärgere-dich-nicht"-Spiel vorstellen. Der Zustands­graph des Automaten ist das Spielbrett. Zustände werden markiert, indem nach bestimmten Regeln Spielsteine auf die Felder gesetzt werden. Es gibt nur einen Spieler; dieser liest die Zeichen des zu untersuchenden Wortes w.

Zu Beginn der Simulation wird ein Spielstein auf den Startzustand gesetzt. Für jedes Zeichen des Eingabewortes w wird dann folgender Zug ausgeführt:

Das Spiel ist "gewonnen", wenn nach Einlesen aller Zeichen des Wortes w ein Spielstein auf einem Endzustand steht. Der Automat hat dann das Wort w erkannt.

Zustandsübergang bei gelesenem Zeichen a
Bild 3:  Zustandsübergang bei gelesenem Zeichen a
Zustandsübergang bei gelesenem Zeichen a
Bild 4:  Zustandsübergang bei gelesenem Zeichen a

 

Es folgt die formale Beschreibung des Verfahrens zur Simulation eines nicht­deterministischen endlichen Automaten.

Ist am Ende ein Endzustand markiert, so hat der Automat das Eingabewort erkannt.

 

Die Simulation des nicht­deterministischen endlichen Automaten entspricht unserer Vorstellung, dass der Automat sich in mehreren Zuständen gleichzeitig befinden kann, nämlich den markierten Zuständen.

 

Simulation

 

(Java-Applet zur Simulation eines nicht­deterministischen endlichen Automaten)

 

 

 

Weiter:  [Nichtdeterministischer endlicher Automat mit Epsilon-Übergängen]  oder   up del.icio.us digg.com Google Ma.gnolia Mister Wong StumbleUpon YahooMyWeb LinkARENA

 

homeH.W. Lang   FH Flensburg   lang@fh-flensburg.de   Impressum   ©   Created: 26.01.2003   Updated: 29.01.2010
Valid HTML 4.01 Transitional