Wir wollten beweisen, daß die regulären Sprachen den dfa-Sprachen entsprechen.
Dazu haben wir gezeigt, daß jede reguläre Sprache auch dfa-Sprache ist (Satz 1.9 der Vorlesung), d.h für jede reguläre Sprache gibt es einen endlichen Automaten, der sie erkennt.
Nun bleibt noch die andere Richtung zu zeigen: Jede dfa-Sprache ist regulär (Satz 1.15 der Vorlesung), d. h. jeder endliche Automat M erkennt eine reguläre Sprache.
Gegeben sei also ein endlicher Automat M. Dann ist ein regulärer Ausdruck zu konstruieren, der die von M erkannte Sprache darstellt.
Die Beweisidee:
Erzeugen eines regulären Ausdrucks durch dynamische Programmierung.
Dazu werden die in der Vorlesung definierten Teilsprachen Lr,i,t verwendet:
Lr,i,t sind alle Teilworte, die entstehen, wenn man vom Zustand qr zum Zustand qt in der Maschine läuft, wobei man auf dem Weg von qr nach qt nur
Zwischenzustände aus {q1,q2,...,qi} benutzen darf. Diese können auch mehrfach verwendet werden. qr und qt zählen nicht zu den Zwischenzuständen (es sei
denn, r=i oder t=i).
Lr,0,t sind alle Teilworte, die entstehen, wenn man vom Zustand qr zum Zustand qt in der Maschine läuft, wobei man auf dem von qr nach qt keinen Zwischenzustand benutzen darf.
Lr,0,t ist nach Definition regulär.
Ls,n,f = L(M) wird durch folgende Rekursionsformel aufgebaut:
Lr,i+1,t = Lr,i,t v Lr,i,i+1 . (Li+1,i,i+1)* . Li+1,i,t
Für Lr,i+1,t werden nur Operationen verwendet, die reguläre Ausdrücke erzeugen. Also ist Ls,n,f = L(M) für n Zustände, Startzustand s und Endzustand f regulär.
Gegeben ein dfa A. Gesucht ist der zu A äquivalente Äquivalensklassenautomat, der minimale Zustandszahl hat.
Zwei Zustände heißen äquivalent <=> ( für alle Wörter w gilt: delta(p,w) aus F gdw delta(q,w) aus F )
Idee: Alle äquivalenten Zustände zusammenfassen, denn von dort aus gelangt man zu demselben Ergebnis (akzeptiert bzw. nicht akzeptiert).