✖

Minimierung von Automaten

Unter der Minimierung eines Automaten verstehen wir das Finden eines äquivalenten Automaten, der die kleinstmögliche Anzahl von Zuständen enthält. Auch ein Automat, der keinen überflüssigen Zustand enthält, lässt sich noch weiter vereinfachen.

Beispiel

Nehmen wir diesen Automaten:

Der Automat akzeptiert nur die Wörter 01 und 11. Dabei ist offensichtlich, dass es einen einfacheren Automaten mit drei Zuständen gibt, der dieselbe Sprache akzeptiert. Die Zustände q1 und q2 lassen sich zu einem neuen Zustand {q1, q2} zusammenfassen. Die Übergänge, die in die Zustände q1 oder q2 führten, führen dann in den neuen Zustand, und dasselbe gilt für die Übergänge, die von q1 und q2 ausgehen. Wir erhalten diesen Automaten:

Dieser Automat akzeptiert offensichtlich dieselbe Sprache wie der vorherige und hat zugleich weniger Zustände.

Äquivalenz von Zuständen

Gegeben sei ein Automat A = ⟨Q, Σ, δ, q0, F⟩. Wir definieren die Sprache eines Zustands q ∈ Q und bezeichnen sie mit L(q):

L(q)=L(⟨Q,Σ,δ,q,F⟩)

Das heißt: Wir ändern den Startzustand des Automaten A von q0 auf q und bestimmen die Sprache, die dieser Automat akzeptiert. Mit anderen Worten: Zur Sprache L(q) gehören alle Wörter w, für die man im Automaten A vom Zustand q aus mit dem Wort w in einen Endzustand des Automaten gelangt. Kehren wir zum vorherigen Automaten zurück, so gilt L(q1) = {1}.

Wir sagen, dass zwei verschiedene Zustände q1 und q2 äquivalent sind, wenn gilt

L(q1)=L(q2)

Was bedeutet das? Sind die Zustände q1, q2 äquivalent und machen wir sie zu Startzuständen des Automaten, dann erzeugen sie dieselbe Sprache. Mit anderen Worten: Gelangt der Automat in die Konfigurationen ⟨q1, w⟩ und ⟨q2, w⟩, dann muss er in beiden Fällen akzeptieren oder in beiden Fällen ablehnen.

Kehren wir zum vorherigen Automaten zurück: Die Zustände q1 und q2 sind äquivalent, denn wenn wir im Zustand q1 sind, können wir das Eingabewort nur dann noch akzeptieren, wenn der ungelesene Teil des Wortes gleich 1 ist. Dasselbe gilt, wenn wir im Zustand q2 sind.

Bei der Minimierung eines Automaten geht es also darum, äquivalente Zustände zu finden und diese Zustände zu entfernen, indem wir sie zu einem neuen Zustand zusammenfassen, genau wie im Beispiel oben.

So findet man äquivalente Zustände

Welche Zustände sind bestimmt nicht äquivalent? Nehmen wir einen Endzustand und einen Nicht-Endzustand, dann sind sie bestimmt nicht äquivalent, denn die Sprache des Endzustands unterscheidet sich von der Sprache des Nicht-Endzustands – ein Endzustand akzeptiert sicher das Wort ε, ein Nicht-Endzustand nicht. Das Vorgehen zeigen wir gleich an einem Beispiel. Gegeben sei dieser Automat:

Wir beginnen damit, dass wir zwei Zustandsmengen bilden

S1=F={q3,q6},S2=Q∖F={q0,q1,q2,q4,q5}.

Nun erstellen wir die Übergangstabelle und behalten die Information über die Gruppen S1 und S2 bei:

GruppeZustand01S1q3q5q4q6——S2q0q1q2q1—q3q2—q3q4q6—q5q6—

Jetzt ändern wir die Tabelle so, dass wir nicht mehr direkt hinschreiben, in welche Zustände man für das jeweilige Symbol gelangt, sondern nur die Gruppe vermerken, in die wir übergehen. Zum Beispiel gelangen wir vom Zustand q3 für 0 in den Zustand q5, der in der Gruppe S2 liegt. Statt q5 schreiben wir also S2 in die Tabelle:

GruppeZustand01S1q3S2S2q6——S2q0S2S2q1—S1q2—S1q4S1—q5S1—

Nun teilen wir beide Gruppen weiter auf. In dieselbe Gruppe kommen jeweils Zustände, die für alle Symbole in dieselben Gruppen übergehen. Zum Beispiel liegen die Zustände q3 und q6 nicht in derselben Gruppe, denn weder für 0 noch für 1 gehen sie in dieselbe Gruppe. Dagegen liegen die Zustände q1 und q2 in derselben Gruppe, denn beide Zustände haben keinen Übergang für 0 und beide gehen für 1 in die Gruppe S1. So bilden wir neue Gruppen:

GruppeZustand01q3S2S2q6——q0S2S2q1—S1q2—S1q4S1—q5S1—

In jeder Gruppe haben wir dieselben Übergänge. Die neu entstandenen Gruppen benennen wir und stellen wieder fest, in welche dieser neuen Gruppen die Zustände führen:

GruppeZustand01S1q3S5S5S2q6——S3q0S4S4S4q1—S1q2—S1S5q4S2—q5S2—

Jetzt würden wir die Gruppen weiter aufteilen. Wir sehen aber, dass wir keine weitere Aufteilung mehr vornehmen können, wir würden dieselben Gruppen erhalten – denn die Zustände q1 und q2 haben zwar innerhalb der Gruppen dieselben Übergänge, liegen aber bereits in derselben Gruppe, und in der Gruppe S4 gibt es keinen weiteren Zustand. Der Algorithmus zum Finden äquivalenter Zustände ist damit beendet. Aus jeder Gruppe genügt es, einen Zustand auszuwählen, die übrigen löschen wir, und alle Übergänge, die in gelöschte Zustände führten, führen dann in den einen Zustand, den wir ausgewählt haben.

Wir können uns also entscheiden, dass unser neuer Automat die Zustände q3, q6, q0, q1, q4 hat und die Zustände q2 und q5 entfernt werden. Alle Übergänge, die nach q2 führten, führen nun nach q1, und alle Übergänge, die nach q5 führten, führen nach q4:

Vorgehen bei der Minimierung eines Automaten

  1. Wir entfernen die unerreichbaren Zustände,
  2. wir entfernen die überflüssigen Zustände,
  3. wir entfernen die äquivalenten Zustände.

Quellen

Kapitel: Unerreichbare Zustände, Überflüssige Zustände, Minimierung von Automaten