Endliche Automaten Jörg Roth 80 Beispiel: A d zum Automaten, der TT im Text erkennt. Zur Erinnerung: der nichtdeterministische Automat sieht so aus: T T S 1 S 2 S 3 S 4 immer immer δ d (es sind nur S mit S aufgeführt): T T { } {,S 1 } { } { } {,S 2,S 3 } {,S 1,S 4 }{,S 3 } { } {,S 1 } {,S 1 } {,S 2 } { } {,S 2,S 4 } {,S 1,S 4 }{,S 3,S 4 } {,S 4 } {,S 2 } {,S 1 } {,S 3 } { } {,S 3,S 4 } {,S 1,S 4 }{,S 4 } {,S 4 } {,S 3 } {,S 1,S 4 }{ } { } {,S 1,S 2,S 3 } {,S 1,S 4 }{,S 2,S 3 } { } {,S 4 } {,S 1,S 4 }{,S 4 } {,S 4 }{,S 1,S 2,S 4 } {,S 1,S 4 }{,S 2,S 3,S 4 }{,S 4 } {,S 1,S 2 }{,S 1 } {,S 2 } { } {,S 1,S 3,S 4 } {,S 1,S 4 }{,S 2,S 4 } {,S 4 } {,S 1,S 3 }{,S 1,S 4 }{,S 2 } { } {,S 2,S 3,S 4 } {,S 1,S 4 }{,S 3,S 4 } {,S 4 } {,S 1,S 4 }{,S 1,S 4 }{,S 2,S 4 }{,S 4 }{,S 1,S 2,S 3,S 4 }{,S 1,S 4 }{,S 3,S 4 } {,S 4 }
Endliche Automaten Jörg Roth 81 Der entsprechende Zustandsübergangsgraph (es sind nur Zustände dargestellt, die vom Startzustand erreichbar sind):,s 1 T T,S 2,S 3,S 1, S 4 T,S 4,S 2, S 4 T,S 3, S 4 Bemerkung. Alle Zustände die S 4 enthalten können zu einem Zustand zusammengefasst werden. Der resultierende Automat entspricht dann dem vorne eingeführten deterministischen Automaten.
Endliche Automaten Jörg Roth 83 Vorgehen beim Beweis. Eigentliches Ziel: wir wollen zeigen: x L( A d ) x L( A) Dazu benötigen wir den Hilfssatz: ( ) * ( Qx, ) = δ * ( qx, ) δ d q Q Dazu wiederrum: δ d ( Q Q', x) = δ d ( Qx, ) δ d ( Q', x)
Endliche Automaten Jörg Roth 84 δ d Beweis. Aus der Definition von folgt unmittelbar der Hilfssatz δ d ( Q Q', x) = δ d ( Qx, ) δ d ( Q', x) für QQ', P( S) und x X Wir zeigen zunächst ( δ d ) * ( Qx, ) = δ * ( qx, ) für Q S d und x X * q Q Der Beweis erfolgt durch vollständige Induktion nach x. Sei x = 0. Dann sind beide Seiten der obigen Gleichung gleich Q. Der Induktionsanfang ist also richtig.
Endliche Automaten Jörg Roth 85 Sei x = x 1 x n + 1, x i X bewiesen ( n n+ 1) und die Behauptung für Wörter der Länge n ( δ d ) * ( Qx, 1 x n + 1 ) = δ d (( δ d ) * ( Qx, 1 x n ), x n + 1 ) (Def. 2.3, δ * ) δ d δ * = ( qx, 1 x n ), x n + 1 (Ind.-Annahme) q Q = δ d ( δ * ( qx, 1 x n ), x n + 1 ) (Hilfssatz oben) q Q = δ( px, n + 1 ) (Def. 2.8, A d ) q Q p δ * ( qx, 1 x n ) = δ * ( qx, 1 x n + 1 ) (Def. 2.6, δ * ) q Q
Endliche Automaten Jörg Roth 86 D.h.: Wenn man auf einen Zustand Q das Wort x 1...x n+1 mit dem deterministischen Automaten anwendet, landet man in denselben Zuständen, wenn man den zugrunde liegenden nichtdeterministischen Automaten verwendet. Mit Hilfe dieser bewiesenen Formel folgt die Behauptung: x L( A d ) ( δ d ) * d d ( s 0, x) F (Def. 2.4, L( A)) ( δ d ) * (, x) F d (Def. 2.8, A d ) ( ) * (, x) F (Def. 2.8, A d ) δ d q δ * qx, ( ) F (Herleitung oben) Es gibt ein q mit δ * ( qx, ) F (Def. 2.7, A d ) x L( A) (Def. 2.7, A d )
Endliche Automaten Jörg Roth 88 Zusammenfassung zu endlichen nichtdeterministischen Automaten: Ein zugeordneter deterministischer Automat ist nicht optimal. Aber: Das ist aber auch nicht in erster Linie wichtig, denn es geht hier um die prinzipielle Ausdruckskraft der verschiedenen Automatentypen. Was haben wir jetzt erreicht? Wir können zu einem nichtdeterministischen Automaten einen deterministischen Automaten konstruieren, der dieselbe Sprache akzeptiert. Umgekehrt können wir jeden deterministischen Automaten auch als nichtdeterministischen Automaten ansehen. Als Konsequenz ist die Ausdrucksfähigkeit beider Automatentypen identisch. Sie akzeptieren beide gerade die regulären Sprachen. Nichtdeterministische Automaten sind häufig die bequemeren Ausdrucksmittel (weniger Zustände, weniger Übergänge).
Endliche Automaten Jörg Roth 90 Einige Vorüberlegungen. Einge Worte von L(A): aaa, acaba, acccaa Gesucht: das längste Wort, das jeden Zustand nur einmal besucht: acaba Frage: gibt es ein längeres Wort, das jeden Zustand nur einmal besucht? Nein, denn bei 6 Zuständen schöpfen 5 Zeichen alle Zustände schon aus Was ist bei Worten der Sprache mit mehr als 5 Zeichen, z.b. acbcaa? Dann müssen auch Worte dazugehören ohne oder mit beliebiger Anzahl der Wiederholung, z.b. aaa, acbccbcaa b, c b, c s 0 s 2 s 4 a, b, c c a b a c s 1 s 3 s 5 a, b a, c a, b
Endliche Automaten Jörg Roth 92 Einfach ausgedrückt: ein x ab einer gewissen Länge n kann man in drei Teile so zerlegen, dass man den mittleren Teil beliebig oft duplizieren kann und das Resultat immer noch zur Sprache gehört. Ein informelles Beispiel: Sei L eine reguläre Sprache. Also muss es ein n geben mit den oben dargestellten Eigenschaften. Sei n =5 Sei x = abdefg, x L. Es gilt: x n Dann könnte es eine Zerlegung u=ab, v=de und w=fg geben, so dass abfg, abdedefg, abdededefg, abdedededefg... auch zu L gehören. Achtung: man kann sich die Zerlegung nicht aussuchen. Das Pumping- Lemma besagt nur, dass es irgendeine entsprechende Zerlegung geben muss. Eine Zerlegung könnte auch so lauten: u=a, v=b und w=defg und damit die Worte adefg, abbdefg, abbbdefg, abbbbdefg... auch zu L gehören.
Endliche Automaten Jörg Roth 94 Dazu eine Illustration: u v w x 1 x 2 x j x j+1 x k x k+1 S i0 S i1 S S.................. x m-1 S im-1 x m S im max. n Zeichen Das Teilwort v darf hier beliebig häufig vorkommen und man gelangt immer noch in einen Endezustand. Damit gehören uw, uvw, uvvw, uvvvw etc. zur vom Automaten akzeptierten Sprache.
Endliche Automaten Jörg Roth 95 Beispiel. Gegeben folgender Automat 0 0 S 1 S 2 S 3 1 0 Jedes Wort x L(A) hat die Form x = 0(01) n 00, n 0. Damit ergibt sich u =0, v =01, w =00, so dass uv i w L für alle i 0.
Endliche Automaten Jörg Roth 97 Anders ausgedrückt: gibt es ein Wort in der Sprache, das mindestens so viele Zeichen hat, wie der akzeptierende Automat Zustände hat, dann gibt es unendlich viele akzeptierte Worte. Motivation hierzu: Wird ein Wort akzeptiert, das eine Schleife im Automaten abläuft, kann man durch das Pumping-Lemma unendliche viele Wörter konstruieren, die ebenfalls akzeptiert werden müssen (indem man diese Schleife beliebig häufig durchläuft). Warum reichen Worte der Sprache aus, die genauso viele Zeichen haben, wie der Automat Zustände hat? 0 S 1 1 In diesem Beispiel hat der Automat zwei Zustände. Es reicht aus, ein akzeptiertes Wort mit zwei Zeichen zu finden (z.b. 01), um sicherzustellen, dass es unendlich viele Worte in der Sprache gibt (hier 01 n ).
Endliche Automaten Jörg Roth 99 Beweis für ist nicht regulär (ausführliche Variante): Angenommen L ist regulär. Dann muss es laut Pumping-Lemma ein n geben, das die im Lemma geforderten Eigenschaften besitzt. In unserer betrachteten Sprache a j b j gibt es keine Begrenzung für j, d.h. es gibt auch Worte a j b j mit j>n in der Sprache. Laut Pumping-Lemma muss es für Worte dieser Länge eine Zerlegung a j b j = uvw geben mit uv n und v 1. Als Konsequenz besteht für j>n das v nur aus den Zeichen a. Es ergibt sich damit eine Zerlegung a j b j = a u a v a j- u - v b j. Damit müssen aber auch a u a i v a j- u - v b j zur Sprache gehören, was aber im allgemeinen Fall nicht stimmt. Also Widerspruch zur Annahme. L:= { a j b j j }
Endliche Automaten Jörg Roth 100 Motivation zum Pumping-Lemma: Endliche Automaten haben keinen unbegrenzten Speicher, um beispielsweise Zeichen zu zählen. Sie speichern die Erfüllung von Bedingungen, die ein akzeptiertes Wort erbringen muss, dadurch, dass ein bestimmter Zustand erreicht wird. Es gibt nur endlich viele Zustände. Ein Automat, der beispielsweise in der Sprache a j b j die Zeichen a zählen soll, scheitert. Mit endlich vielen Zuständen kann man die beliebig hohe Zahl der Zeichen a nicht zählen. Bei einer Sprache mit unendlich vielen Worten, gibt es immer Worte, die länger als ein vorbestimmtes n sind. Bei unendlichen regulären Sprachen gibt es damit grundsätzlich die im Pumping-Lemma darstellten Wiederholungen. Endliche Sprachen (diese sind immer regulär) enthalten diese Wiederholungen nicht, da die Worte nicht die geforderte Länge n haben.