L und L' (L' = komplementäre Sprache zu L)
- DEA, der die Sprache L akzeptiert bilden.
- DEA zu totalem DEA umwandeln.
- Komplementären DEA L' bilden, wie folgt:
- Endzustände werden normale Zustände
- Normalzustände werden Endzustände
Ausgangssituation: DEA vorhanden
- Toten Zustand (X), der das komplette Alphabet auf sich selbst abbildet
- Von jedem gegebenen Zustand die nicht verwendeten Zeichen auf den toten Zustand verweisen lassen.
- Man beginnt mit der Menge aller Startzustände.
- Von dort aus geht man mit jedem Zeichen alle Zustände der Menge ab. Alle Zustände in die man so gelangt werden als ein Zustand zusammengefasst.
- Wiederhole 2. bis keine neuen Zustände mehr entstehen.
- Jeder Zustand der einen ehemaligen Endzustand enthält wird selbst zum Endzustand.
- Den DEA zu einem totalen DEA umwandeln.
- Tabelle erstellen anhand der Zustände.
- Jedes Zustandspaar das aus einem Endzustand und einem nicht Endzustand besteht wird angekreuzt.
- Für jedes noch nicht angekreuzte Zustandspaar:
- man geht die Übergangsfunktionen mit jedem Zeichen des Alphabets von diesem Zustandspaar aus durch.
- daraus entsteht ein neues Zustandspaar, ist dieses bereits angekreuzt wird auch das Ausgangspaar ein Kreuz.
- Die nicht angekreuzten Zustandspaare können miteinander verschmolzen werden werden.
// Per Hand zeichnen (Tabelle)
M(ZUSTÄNDE, ALPHABET, KELLERALPHABET, ÜBERGANGSFUNKTION DELTA, STARTZUSTAND, UNTERSTES KELLERZEICHEN)
- Kelleralphabet = alle Terminale + alle Variablen
- Zustände = Zustand z (gibt nur einen)
- Alphabet = Terminale
- Übergangsfunktion:
- Regeln als spontane Übergange übernommen
- Regeln um Terminale zu eliminieren
- Wort aus der Grammatik ableiten (nur wenn Grammatik gegeben, macht's einfacher)
DELATA(z, WORT, KELLERZEICHEN) -> DELATA(z, WORT, KELLERZEICHEN) -> …