Minimalautomat

endlicher Automat From Wikipedia, the free encyclopedia

Ein Minimalautomat oder minimierter Automat (englisch minimal finite automaton oder minimal deterministic finite automaton, DFA) ist in der theoretischen Informatik ein endlicher Automat mit minimaler Zustandsanzahl der eine gegebene reguläre Sprache akzeptiert.

Diese reguläre Sprache ist typischerweise als DFA gegeben. Man erhält den Minimalautomat dann durch Minimierung des gegebenen DFA, also durch das Zusammenfassen äquivalenter Zustände.

Definition

Um einen Minimalautomat für eine reguläre Sprache mit Alphabet zu definieren, nutzt man eine Äquivalenzrelation, die Nerode-Relation, die Wörter der Sprache in Äquivalenzklassen einteilt. Zwei Wörter werden in der Sprache als äquivalent betrachtet, notiert als , wenn für jedes Suffix gilt, dass entweder (a) sowohl als auch in der Sprache sind oder (b) weder noch in der Sprache ist.

Die Äquivalenzklasse eines Wortes notieren wir als .

Diese Äquivalenzklassen bilden die Zustände des Minimalautomaten, man spricht auch vom Äquivalenzklassenautomaten. Der Startzustand ist die Äquivalenzklasse des leeren Worts und die Endzustände sind die Äquivalenzklassen der Wörter der Sprache . Die Übergangsfunktion ergibt sich als für .

Formale Definition

Sei ein deterministischer endlicher Automat und die reguläre Sprache von . Dann ist mit

der Äquivalenzklassenautomat zu bzw. .

Herstellung

Die Minimierung eines deterministischen Automaten kann algorithmisch durch fortwährende Verfeinerung der Äquivalenzklassen gelöst werden. Man beginnt mit den Zustandsmengen und . Für jeden Buchstaben aus dem Alphabet wird nun jede Zustandsmenge dahingehend aufgeteilt, dass die Überführungsfunktion die Zustände jeder neuen Menge den Buchstaben in eine jeweils eindeutige Menge abbildet. Dies wird so oft wiederholt, bis sich keine Änderung mehr ergibt.

Es besteht außerdem die Möglichkeit, minimale deterministische endliche Automaten inkrementell aufzubauen. Inkrementell bedeutet hier, dass die zu akzeptierenden Worte einzeln dem Automaten hinzugefügt werden. Nach jedem Einfügen eines solchen Wortes ist der deterministische endliche Automat minimal. Dieses Verfahren ist vor allem dann erfolgversprechend, wenn die Worte häufig gemeinsame Prä- und Suffixe teilen, dies ist z. B. bei Worten aus natürlichen Sprachen der Fall.

Algorithmus zur Minimierung eines DEA

Gegeben: DEA

Berechne: Minimalautomat

  • Entferne Zustände aus die nicht vom Startzustand erreichbar sind.
  • Betrachte alle Zustandspaare mit auf.
  • Markiere alle Paare die genau einen Endzustand enthalten, d. h. oder , als nicht äquivalent.
  • Durchlaufe alle unmarkierten Paare und alle Eingaben : Wenn das Paar schon markiert ist, dann markiere als nicht äquivalent.
  • Falls es im letzten Schritt Änderungen gab: Wiederhole den letzten Schritt.
  • Für alle unmarkierten Paare gilt, dass diese zwei Zustände äquivalent sind. Wir notieren die Äquivalenzklasse eines Zustands als .
  • Verschmelze äquivalente Zustände zu einem einzelnen Zustand, d. h.:
  • Neue Übergangsfunktion:
  • Neuer Startzustand:
  • Neue Endzustände:

Dieser Algorithmus kann so implementiert werden das die Laufzeit in liegt[1].

Siehe auch

Literatur

  • Uwe Schöning: Theoretische Informatik - kurz gefasst. 5. Auflage. Spektrum, München 2008, ISBN 978-3-8274-1824-1, 1.2.5. Äquivalenzrelationen und Minimalautomaten.
  • Ingo Wegener: Theoretische Informatik. Eine algorithmenorientierte Einführung. B.G. Teubner, Stuttgart, ISBN 3-519-02123-4, 4.2. Die Minimierung endlicher Automaten.

Einzelnachweise

Related Articles

Wikiwand AI