2. Automaten über unendlichen Wörtern (Das ergänzt Kap. 2 aus dem Skript von A. Kiehn) 2.1 Nichtdeterministische Automaten Motivation: Spezifikation und Verifikation reaktiver Systeme (nebenläufiger Prozesse, die theoretisch ewig ablaufen). Man will z.B. folgende Aussagen formalisieren: (1) „Im Prozessablauf kommt nach jedem Ereignis a irgendwann auch ein Ereignis b“ (2) „Im Prozessablauf tritt zwischen je zwei Vorkommen der Situation a die Situation b geradzahlig oft ein“ . (3) „Das Ereignis a tritt in jedem Ablauf nur endlich oft auf“ Gegeben: Endliches Alphabet A (für Ereignisse oder Aktionen). Zusätzlich zu A* wird betrachtet: Aω := Menge aller (einseitig unendlichen) Folgen α0α1α2 . . . αk . . . von Zeichen αi aus A. Die Elemente von Aω heißen auch ω-Wörter. A∞ := A* ∪ Aω Für w = w0w1 ... wn aus A* und α aus Aω ist das α definiert durch Produkt wα α := w0w1 ... wnα0α1α2 ... αk ... wα α | u∈ ∈U, α∈W} für U⊆ ⊆A* und W⊆ ⊆ Aω . sowie UW := {uα Sei B = (Q, A , t, q0 , F) ein endlicher buchstabierender ×A× ×Q ) nichtdeterministischer Automat mit ( d.h. t ⊆ Q× einem Anfangszustand q0 über A. B läßt sich auch zur Akzeptierung von ω-Wörtern verwenden – mit folgender Akzeptierungsbedingung (sog. BüchiAkzeptierung – B heißt dann Büchi-Automat): α = α0α1α2 . . . αk . . . wird akzeptiert, wenn die von α in B erzeugte Zustandsfolge σ(1)σ σ(2). . . mit σ(0) = q0 und σα = σ(0)σ σ(i), αi , σ(i+1)) ∈ t für i= 0, 1, 2,... (σ mindestens einen Endzustand qf aus F unendlich oft enthält. L(B) ⊆ Aω sei die Menge aller von B akzeptierbaren ω-Wörter. L ⊆ Aω heißt Büchi-erkennbar, wenn ein BüchiAutomat B über A existiert mit L = L(B). Beispiel zu Aussage (1): B1 = ( {1,2}, {a,b,c}, {(1,a,2), (1,b,1), (1,c,1), (2,a,2), (2,b,1), (2,c,2), 1, {1} ) Auch das Komplement Aω - L(B1) ist Büchi-erkennbar: durch den Automaten B1‘ = ( {1,2}, {a,b,c}, {(1,a,2), (1,a,1), (1,b,1), (1,c,1), (2,a,2), (2,c,2)}, 1, {2} ) Beispiel zu Aussage (2): B2 = ( {1,2,3}, {a,b,c}, {(1,a,2), (1,b,1), (1,c,1), (2,a,2), (2,b,3), (2,c,2), (3,b,2), (3,c,3)}, 1, {1, 2} ). Beispiel zu Aussage (3): B3 = ( {1,2}, {a,b}, {(1,a,1), (1,b,1), (1,b,2), (2,b,2)}, 1, {2} ) ⊆Aω ist BüchiSatz 1 (Büchi 1962): Eine ω-Sprache L⊆ erkennbar gdw L ist endliche Vereinigung von ω-Sprachen der Form U Vω mit U, V ∈ REC(A*), wobei Vω = { α∈ Aω | α = v0v1 . . . mit vi ∈ V für i ≥ 0 } (Man kann auch noch V V ⊆ V verlangen). (Das ist Prop. 2.1.2 in Skript Kiehn.) Def. Die Darstellung einer ω-Sprache L in der im Satz angegeben Form mit regulären Ausdrücken für die Mengen U und V heißt ω-regulärer Ausdruck für L. Beweis des Satzes: ⇒ : Für Zustände q, p von B sei W(q,p) = { w ∈ A* | (q,w,p) ∈ t* . Dann ist : W(q,p) ∈ REC(A*) und ∈ F}. L(B) = ∪{ W(q0,p) W(p,p)ω | p∈ Offenbar ist W(p,p) W(p,p) ⊆ W(p,p) ⇐ : Alles folgt aus den Abschlußeigenschaften im Hilfssatz: (1) Ist V ∈ REC(A*), so ist Vω Büchi-erkennbar. (2) Ist U ∈ REC(A*) und L ⊆ Aω Büchi-erkennbar, so ist UL Büchi-erkennbar. ⊆ Aω Büchi-erkennbar, so sind auch (3) Sind L, L‘⊆ L ∪ L‘ und L ∩ L‘ Büchi-erkennbar. (vgl. Prop.2.1.7 im Skript Kiehn) Bew.: (1) Wegen Vω = (V-{εε})ω können wir annehmen, dass ε ∉ V . Ferner kann man voraussetzen, dass zum Startzustand des Büchi-Automaten B für V keine Transition führt. Dann erhält man aus B den Büchi-Aut. B‘ für Vω , indem man zu t für jede Transition (q,a,q‘) mit q‘ ∈ F die Transition (q,a,q0) hinzufügt und {q0} statt F als Endzustandsmenge wählt. (2) wie bei traditionellen endl. Aut. in Analogie zu (1). (3) ebenfalls analog zum traditionellen Fall mithilfe des kartesischen Produkts: Beweis für Abschluss unter ∩ : B und B‘ seien die B.-Aut. für L und L‘. ∩ L‘ ist Der B.-Aut. für L∩ ×Q‘× ×{0,1,2} , (q0,q0‘,0) , t∩ , Q× ×Q‘× ×{2} }, B∩ = ( Q× wobei t∩ in den ersten beiden Komponenten t bzw. t‘ kopiert und die dritte Komponente wie folgt behandelt wird: Normalerweise ist die dritte Komponente 0 . Sobald eine Transition in der ersten Komponente einen Zustand f aus F erzeugt, wird die dritte Komponente von 0 auf 1 gesetzt: ((q,q‘,0), a, (f,q1‘,1)). ((q,q‘,1), a, (q1,f‘,i)) mit i=2 falls f‘ in F‘, andernfalls i=1. (q,q‘,2), a, (q1,q1‘,0) stets. So erscheint 2 in der dritten Komponente unendlich oft in einem Ablauf gdw in diesem Ablauf sowohl ein Zustand aus F als auch ein Zustand aus F‘ unendlich oft erscheint. Satz 2: (i) Jede nichtleere Büchi-erkennbare ω-Sprache enthält ein schließlich periodisches ω-Wort, d.h. ein ω-Wort der Form uvvv... (ii) Das Leerheitsproblem für Büchi-Automaten ist entscheidbar. (vgl. Prop. 2.1.8 im Skript Kiehn) Bew.: B akzeptiert ein ω-Wort α gdw ein Anfangsstück u von α ( mit |u| ≤ |Q|-1 ) von q0 zu einem Endzustand qf führt und von qf eine Schleife mit einem Wort v ( mit |v| ≤ |Q|-1 ) immer wieder zu qf führt. Schwerer zu beweisen ist (siehe dazu den folgenden Abschnitt 2.2 oder Absch. 2.1.1 im Skript Kiehn): Satz 3: Zu jedem Büchi-Automaten B läßt sich effektiv ein Büchi-Aut. konstruieren, der Aω - L(B) akzeptiert. Dies gilt nicht, wenn man sich dabei auf (nicht notwendig vollständige) deterministische Automaten beschränkt. Gegenbeispiel: L(B3) ist nicht von einem determ. Büchi.-Aut. akzeptierbar (Beweis dafür folgt in 2.2), aber Aω - L(B3) wird von folgendem det. B.-Aut. akzeptiert: B3‘ = ( {1, 2}, {a, b}, {(1,a,2), (1,b,1), (2,a,2), (2,b,1)}, 1, {2} ) Folgerung: Die Familien der von allgemeinen BüchiAut. bzw. von deterministischen Büchi-Aut. akzeptierbaren Mengen sind verschieden. (vgl. Prop2.1.4 im Skript Kiehn) 2.2 Deterministische Automaten Sei B ein nicht notwendig vollständiger, aber deterministischer endlicher Automat, der die Menge ⊆A* akzeptiert. W⊆ Wenn man ihn als Büchi-Automat interpretiert, ist die von ihm akzetierte ω-Sprache L(B) die Menge ∈N mit lim (W) := { α ∈ Aω | Es ex. unendlich viele n∈ α0α1α2 . . . αn ∈ W, wobei α = α0α1α2 . . . }. Feststellung: L ⊆ Aω wird von einem deterministischen Büchi-Automaten akzeptiert gdw L = lim(W) für ein W ∈ REC (A*). Bemerkung: Um zu zeigen, dass L(B3) nicht von einem determ. Büchi.-Aut. akzeptierbar ist, müssen wir nur zeigen, dass L(B3) nicht die Form ∈REC(A*) mit A = {a, b} hat. lim(V) mit V∈ Bew.: Ann. L(B3) = lim(V). Da bω∈ lim(V) (d.h. a tritt 0-mal auf), existiert ein n(1) ∈ N mit bn(1) ∈ V. Da bn(1)abω∈ lim(V), ex. ein n(2) ∈ N mit bn(1)abn(2) ∈ V. Macht man so weiter, so erhält man eine unendliche Folge n(1), n(2), ....n(i),... natürlicher Zahlen so, dass jedes der Wörter bn(1)abn(2)abn(3). . . abn(i) in V, also das ω-Wort bn(1)abn(2)abn(3). . . abn(i) . . . in lim(V) liegt. Dies Wort gehört aber nicht zu L(B3) – Widerspruch! Um alle Büchi-erkennbaren ω-Sprachen von deterministischen Automaten akzeptierbar zu machen, wird die Akzeptierungsbedingung geändert. Def.: Ein sog. Muller-Automat M = (Q,A,q0, δ, F) ist ein vollständiger endlicher deterministischer Automat ×A nach Q und ( δ sei die Transitionsabbildung von Q× Q sei endlich)), wobei jedoch F nicht eine Teilmenge von Q sondern eine Teilmenge der Potenzmenge ℘(Q) von Q ist. M akzeptiert ein ω-Wort α ∈ Aω gdw σα) aller der Zustände von M, die Menge In(σ die M unendlich oft beim Lesen von α durchläuft (die in σα unendlich oft vorkommen), eine Menge aus F ist. L(M) sei die Menge aller von M akzeptierten ω-Wörter. Eine ω-Sprache heißt Muller-erkennbar, wenn es einen Muller-Automaten M mit L = L(M) gibt. Beisp.: Muller-Automat für L(B3): B3‘ mit { {1} } als Endzustandsmengenfamilie F der Zustand 2 darf nicht unendlich oft durchlaufen werden! Feststellung: Zu jedem vollständigen, deterministischen Büchi-Aut. B = (Q,A,q0, δ, F) erhält man einen äquivalenten Muller-Aut. , indem man F ersetzt durch F = { T ⊆ Q | T ∩ F ≠ ∅ }. Satz 4: Die Familie der Muller-erkennbaren ω-Sprachen ist abgeschlossen unter den mengentheoretischen Operationen. Bew.: 1. Wenn M = (Q,A,q0, δ, F) die ω-Sprache L akzeptiert, dann akzeptiert M‘ = (Q,A,q0, δ, ℘(Q) - F) die ω-Sprache Aω - L. 2. Wenn M die ω-Sprache L und M‘ die ω-Sprache L‘ akzeptiert, dann akzeptiert der folgende Produkt-Automat M× die ω-Sprache L ∪ L‘ : ×Q‘, A, δ× , (q0,q0‘), F× ) mit M× = ( Q× δ× = { ((q,q‘), a, (p,p‘) | (q,a,p)∈ ∈δ, (q‘,a,p‘)∈ ∈δ‘ } und { (q1, q1‘), . . . (qn,qn‘) } ∈ F× gdw { q1, . . . qn } ∈ F oder { q1‘, . . . qn‘ } ∈ F ‘ . Folgerung: Eine ω-Sprache L ⊆ Aω ist Mullererkennbar gdw L mithilfe endlich vieler Anwendungen der Operationen Vereinigung, Durchschnitt und Komplement über Aω aus ω-Sprachen der Form lim(W) mit W ∈ REC(A*) erzeugt werden kann. ⇐“ folgt aus Satz 4 und der Feststellung . Bew.: „⇐ ⇒ : Sei M ein Muller-Aut. für L. Für jedes q aus Q sei Wq ⊆ A* die von dem endlichen Automaten (Q, A, δ, q0, {q}) akzeptierte Wortmenge. M akzeptiert ein ω-Wort α gdw ein F ∈ F exist. so, dass α ∈ lim(Wq) für jedes q aus F und α ∉ lim(Wq) für jedes q aus Q-F. Das liefert die gesuchte Darstellung: L = ∈F}) ∩ ( ∩{ Aω- lim(Wq)|q∈ ∈Q-F})|F∈ ∈F } ∪ { ( ∩{ lim(Wq)|q∈ Folgerung: Eine ω-Sprache L ⊆ Aω ist Mullererkennbar gdw L aus Aω erhalten werden kann durch endlich viele Anwendungen der Operationen Vereinigung, Durchschnitt, " Komplement über Aω " sowie " Multiplikation von links mit einer regulären Teilmenge von A* " Bew.: Wir brauchen aufgrund der letzten Folgerung nur zu zeigen, daß sich lim(W) für reguläres W ∈ Aω so wie in der Behauptung darstellen läßt. Offenbar ist lim(W) = Aω - L , wobei L die Menge aller der ω-Wörter ist, die höchstens endlich viele Präfixe (also entweder keins oder ein längstesPräfix) aus W besitzen. Sei α ∈ L sowie w = α0α1α2 . . . αm das längste in W liegende Präfix von α . Sei nun B = (Q,A,q0, δ, F) ein det. endl. Automat, der W akzeptiert. Daß w das längste in W liegende Präfix von α ist, bedeutet dann: Es gibt einen Zustand p in F mit δ(q0,w) = p , aber es gibt kein n > m und kein q ∈ F mit αm+1αm+2 . . . αn) = q. δ(q0,wα Daraus folgt die gesuchte Darstellung von L (Übung). Der wesentliche Satz (aus dem auch Satz 3 folgt) ist Satz 5 (McNaughton, 1966): Eine ω-Sprache ist Mullererkennbar gdw sie Büchi-erkennbar ist. ⇒“ ergibt sich aus der letzten Folgerung, der Bew.: „⇒ Feststellung zur Def. der Büchi-erkennb. ω-Sprachen und der Abgeschlossenheit der Büchi-erkennb. ω-Sprachen unter den mengentheoret. Operationen. ⇐“ ergibt sich aus der letzten Folgerung und „⇐ folgendem (schwerer zu beweisenden) Satz 6: Jede Büchi-erkennbare ω-Sprache ist eine endliche Vereinigung von ω-Sprachen der Form lim(W) ∩ (Aω - lim(V)) mit W, V ∈ REC(A*) ∈ REC(A*) ). ( oder auch der Form Ulim(V) mit U, V∈ Lit.: W. Thomas. „Automata on infinite objects“. In J. van Leeuwen (Ed.) Handbook of Theoretical Computer Science., Vol. B, 1990. 2.3 Büchis Sequenzenkalkül Zur Formulierung von Aussagen über ω-Wörter (ein monadischer Kalkül 2. Stufe) Gegeben: Endliches Alphabet A. Gewisse ω-Wörter über A sollen durch Aussagen dargestellt werden, die angeben, an welchen Stellen (bezeichnet durch natürliche Zahlen) bestimmte Buchstaben aus A stehen sollen. Wie üblich in der Logik, gibt man zunächst die Terme an, die hier zur Beschreibung der Positionen verwendet werden können: Terme (die natürliche Zahlen darstellen) werden gebildet mit Konstanten: 0, 1 ∈ N , Variablen: x,y (für natürliche Zahlen) und dem Operator: +1 (die Nachfolgeropreation auf N). Zur Bildung von Prädikaten gibt es noch: Variable: X, Y (für Mengen natürlicher Zahlen) Prädikatsymbole: Qa für jedes a ∈ A, wobei in einer ∈ Qa wahr Aussage über ein ω-Wort die Aussage x∈ ist, wenn an der Position x der Buchstabe a steht. Atomare Prädikate: Seien t, t‘ Terme, dann sind Prädikate ∈ X, t = t‘ , t < t‘ , t∈ ∈ Qa (bedeutet: an der Position t steht a). t∈ Zur Bildung von Aussagen können folgende logische Zeichen verwendet werden: ∧, ∨, ¬, ⇒, ⇔ sowie die Quantoren ∀ und ∃ , die auf Individuen- (x,y, ...) und auf Mengen-Variablen (X, Y, ...) (deshalb Kalkül 2. Stufe) angewendet werden dürfen. Beispiele: ∈Qa ⇒ ∃ y (x<y ∧ y ∈ Qb)) (1) ∀x (x∈ „Zu jeder Position x, an der ein a steht, gibt es eine spätere Position y, an der ein b steht“. (2) ∀x∀ ∀y (x ∈ Qa ∧ y ∈ Qa ∧ x<y ∧ ¬∃z(x<z ∧ z<y ∧ z ∈ Qa) ⇒ ∃X (x∈ ∈X ∧ ∀z‘ (z‘ ∈X ⇔ ¬(z‘+1 ∈ X)) ∧ ¬y∈ ∈X)) „Für je zwei Positionen x und y, an denen a steht, folgt daraus, dass zwischen x und y kein a steht, dass es eine Menge X von Positionen gibt, deren erste Position x ist, die jede zweite folgende Position nicht enthält, aber alle anderen vor y, aber nicht mehr y“. Ist A = {a,b}, heißt das „zwischen je zwei a’s gibt es geradzahlig viel b’s. Ist A = {a,b,c}, heißt das: "Zwischen je zwei a's ist die Zahl der Positionen mit von a verschiedenen Buchstaben gerade." Büchi bewies 1962, daß eine ω-Sprache genau dann Büchi-erkennbar ist, wenn sie in obigem Kalkül beschreibbar ist. Eine Richtung ist ganz einfach zu beweisen: Satz (Büchi, 1962): Jede Büchi-erkennbare ω-Sprache ist im Sequenzenkalkül Büchis beschreibbar. Bew.: Sei B = (Q, A , t, q0 , F) ein Büchi-Automat mit Q = {0, 1, ...., m} und q0 = 0. Um einen Ablauf zu beschreiben, der ein ω-Wort akzeptiert, fordern wir die Existenz von m+1 Mengen natürlicher Zahlen: Y0, Y1, Y2, ... , Ym, wobei Yi genau die „Zeitpunkte“ enthält, an denen der Zustand i im Ablauf eintritt. Und mindestens eines dieser Yi muß (wegen der Büchischen Akzeptierungsbedingung) unendlich sein. ∈Yi ∧ y∈ ∈Yj) ∧ 0∈ ∈Y0 ∃Y0 ∃Y1 ... ∃Ym ( ∧i≠j ¬∃y (y∈ ∧ ∀x ( ∨(i,a,j)∈t (x∈ ∈Yi ∧ x∈ ∈Qa ∧ x+1∈ ∈Yj ) ∧ ∨i∈F ∀x ∃y (x < y ∧ y∈ ∈Yi )) . Hinweis: Dies liefert (zusammen mit den BüchiAutomaten) ein Verfahren zur Formalisierung der Beispiel-Aussagen im Kalkül. Bemerkung: Mit leichten Änderungen (nur endliche Mengen natürlicher Zahlen werden betrachtet) kann man auch einen Sequenzenkalkül erhalten, der genau die von normalen endlichen Automaten akzeptierbaren Mengen beschreibt. Literatur.: Ein weiterer Aufsatz von W. Thomas, aber nun im Handbook of Formal Languages, Vol. 3 , Chapter 7 : Languages, Automata, Logic. Springer-Verlag 1997.