Automaten und formale Sprachen

Automaten und formale Sprachen 4. Februar 2008 Inhaltsverzeichnis 1 Was soll “Automaten und formale Sprachen” bedeuten? 3 2 Ziele der Vorlesung 4 ...
Author: Herta Lorentz
5 downloads 3 Views 463KB Size
Automaten und formale Sprachen 4. Februar 2008

Inhaltsverzeichnis 1 Was soll “Automaten und formale Sprachen” bedeuten?

3

2 Ziele der Vorlesung

4

3 Reguläre Sprachen 3.1 Endliche Automaten . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Der Satz von Myhill-Nerode . . . . . . . . . . . . . . . . . . . . . 3.2.1 Grundlagen aus der Algebra . . . . . . . . . . . . . . . . . 3.2.2 Natürliche Äquivalenzrelationen . . . . . . . . . . . . . . 3.2.3 Minimalisierung deterministischer, endlicher Automaten . 3.3 Der Satz von Büchi und Trachtenbrot . . . . . . . . . . . . . . . 3.3.1 Grundlagen der Prädikatenlogik . . . . . . . . . . . . . . 3.3.2 Prädikatenlogische Charakterisierung der regulären Sprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.3 Prädikatenlogische Charakterisierung der sternfreien regulären Sprachen . . . . . . . . . . . . . . . . . . . . . . . 3.3.4 Die Dot-Depth-Hierarchie . . . . . . . . . . . . . . . . . . 3.4 Automaten und Monoide . . . . . . . . . . . . . . . . . . . . . . 3.4.1 Syntaktische Monoide . . . . . . . . . . . . . . . . . . . . 3.4.2 Berechnung syntaktischer Monoide . . . . . . . . . . . . . 3.4.3 Aperiodische Monoide . . . . . . . . . . . . . . . . . . . . 3.4.4 Links-Rechts-Automat . . . . . . . . . . . . . . . . . . . . 3.5 Zwei-Weg-Automaten . . . . . . . . . . . . . . . . . . . . . . . . 3.6 Endliche Automaten mit Ausgabe . . . . . . . . . . . . . . . . .

4 4 7 7 7 11 15 15

4 Kontextfreie Sprachen 4.1 Chomsky-Normalform und Greibach-Normalform 4.2 Der CYK-Algorithmus . . . . . . . . . . . . . . . 4.3 Kellerautomaten . . . . . . . . . . . . . . . . . . 4.4 Deterministisch-kontextfreie Sprachen . . . . . . 4.5 Entscheidbarkeitsfragen für kontextfreie Sprachen 4.6 Kontextfreie Sprachen und Gruppoide . . . . . .

49 51 53 55 61 66 74

1

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

21 23 24 26 26 31 34 37 38 47

5 Kontextsensitive und Typ-0-Sprachen 75 5.1 Maschinenmodelle für Typ-0- und Typ-1-Sprachen . . . . . . . . 75 5.2 Entscheidbarkeitsfragen und Abschlusseigenschaften . . . . . . . 78 6 Abstrakte Sprachfamilien

84

2

1

Was soll “Automaten und formale Sprachen” bedeuten? • Automatentheorie studiert abstrakte Maschinen und Probleme, die mit solchen Maschinen gelöst werden können (endliche Automaten, Kellerautomaten, allgemeine Turing-Maschinen) • Mit diesen Modellen versucht man Computer mit speziellen Eigenschaften zu beschreiben (Computer ohne Speicher, Computer mit Stack-Speicher, allgemeine Computer) • Theorie der formalen Sprachen: studiert die Grammatik formaler Sprachen (L ⊆ Σ∗ ). Frage: mit welchen Grammatik-Typen lassen sich formale Sprachen beschreiben? • Noam Chomsky: Idee, alle syntaktisch korrekten Sätze einer menschlichen Sprache durch ein System von Regeln (generative Grammatik) zu erzeugen • In Sprachwissenschaften umstritten (zu abstrakt), aber hervorragend für Informatik geeignet

Beispiel: Satz: Schweizerdeutsch ist nicht kontextfrei. Grund: cross-serial dependencies. Beweis: [Shielar, 1985]. Idee: kontextfreie Sprachen sind abgeschlossen unter Homomorphismen und Schnitt mit regulären Sprachen. In der Vorlesung: • Verbindung zwischen Automaten und formalen Sprachen • Chomsky-Hierarchie teilt Grammatiken in 4 Typen mit verschiedener Ausdruckskraft (rechtslineare, kontextfreie, kontextsensitive und allgemeine generative Grammatiken) • Diese 4 Grammatik-Typen können durch 4 Maschinen-Typen charakterisiert werden: – reguläre Sprache , endliche Automaten – kontextfreie Sprache , nichtdeterministische Kellerautomaten – kontextsensitive Sprache , nichtdeterministische Turingmaschine mit linearem Speicher – allgemeine generative Sprache , Turingmaschine Folgerung: Das Gehirn von Schweizerdeutschen kann kein Stack sein.

3

2

Ziele der Vorlesung • Die Klassen der Chomsky-Hierarchie besser verstehen, bessere Abschlusseigenschaften und Entscheidungsfragen • Zeigen, dass sich die Chomsky-Klassen auch mit Konzepten der Algebra und Logik beschreiben lassen • Universell einsetzbare Beweisideen finden

3

Reguläre Sprachen

3.1

Endliche Automaten

Definition 1.1 1. Ein Alphabet ist eine nichtleere, endliche Menge von Buchstaben (Symbolen). 2. Ein Wort S über einem Alphabet Σ ist eine endliche Folge von Buchstaben aus Σ. 3. Schreibweise: |{z} w = a 1 a 2 . . . ak . | {z } Wort Buchstaben

4. Die Länge eines Wortes w ist die Anzahl der Buchstaben im Wort. Bezeichnung: |w|. 5. Ist Σ ein Alphabet, so ist Σ∗ die Menge der Worte über Σ. 6. Ist w ∈ Σ∗ und a ∈ Σ, so ist |w|a die Anzahl der a´s im Wort. 7. Das leere Wort wird mit ε bezeichnet. |ε| = 0. 8. Sind u, v ∈ Σ∗ , so ist uv die Konkatenation von u und v. Definition 1.2 Ein deterministischer endlicher Automat (DFA) ist ein Quintupel (Q, Σ, δ, q0 , F ), mit • Q ist eine nichtleere, endliche Menge (Zustandsmenge) • Σ ist das nichtleere, endliche Eingabealphabet • δ : Q × Σ → Q ist eine totale Abbildung (Überführungsfunktion) • q0 ∈ Q ist der Startzustand • F ⊆ Q ist die Menge der akzeptierenden Zustände (Endzustände) Bemerkung: in der Literatur schreibt man auch (Σ, Q, δ, q0 , F ). 4

Definition 1.3 Sei M = (Q, Σ, δ, q0 , F ) ein DFA. Die erweiterte Überführungsfunktion δˆ : Q × Σ∗ → Q ist wie folgt definiert: IA: δˆ (q, ε) = q IS: δˆ (q, aw) = δˆ (δ (q, a) , w) für q ∈ Q, a ∈ Σ, w ∈ Σ∗ Die von M akzeptierte Sprache ist: n o L (M ) := w ∈ Σ∗ | δˆ (q0 , w) ∈ F

Schreibweise: qx oder q · x ist die Abkürzung für δˆ (q, x). Definition 1.4

Nichtdeterministischer endlicher Automat (NFA) ist ein 5-Tupel (Q, Σ, δ, q0 , F ), mit: • Q, Σ, q0 , F wie in Definition 1.2 ˆ • δ : Q × Σ → 2Q (Überführungsfunktion) mit δ: – δˆ : 2Q × Σ∗ → 2Q – IA: δˆ (R, ε) = R ⊆ 2Q – IS: δˆ (R, aw) = ∪q∈R δˆ (δ (q, a) , w) n o L (M ) := w ∈ Σ∗ | δˆ ({q0 } , w) ∩ F 6= ∅

Jeder DFA ist auch ein NFA. Für jeden NFA N gibt es einen DFA A mit L (N ) = L (M ), nämlich:  M = 2Q , Σ, δ, {q0 } , {R ⊆ Q | R ∩ F 6= ∅} mit: δ (S, a) = ∪s∈S δ (s, a) für alle S ⊆ Q. Potenzmengenfunktion. Definition 1.5 (Reguläre Ausdrücke) Syntax und Semantik für Alphabet Σ sind wie folgt definiert: IA: ∅ ist ein regulärer Ausdruck (L (∅) = ∅). Für a ∈ Σ ist a regulärer Ausdruck (L (a) = {a}) ∗ IS: Sind α, β reguläre Audrücke, so auch α · β, (α + β) , (α) L (α · β) = L (α) · L (β) L (α + β) = L (α) + L (β) ∗ ∗ L (α) = L (α) wobei L0 · L1 =def {uv|u ∈ L0 , v ∈ L1 } L0 =def {ε} Lk+1 =def Lk · L L∗ =def ∪k≥0 Lk L+ =def ∪k>0 Lk Regulärer Ausdruck für L = {ε} ⇒ ∅∗ . 5

Satz 1.6 Folgendes ist äquivalent: 1. L ist regulär (d.h. es gibt einen regulären Ausdruck für L). 2. Es gibt eine Typ-3-Grammatik, die L − {ε} erzeugt. 3. Es gibt einen DFA M mit L = L (M ). 4. Es gibt einen NFA M mit L = L (M ). Beweis: siehe Theoretische Informatik. Satz 1.7: (Pumping-Lemma) Für jedes reguläre L existiert eine Zahl n, so dass für alle x ∈ L mit |x| ≥ n eine Zerlegung x = uvw mit folgenden Eigenschaften existiert: 1. |uv| ≤ n 2. |v| > 0 3. uv k w ∈ L für alle k ≥ 0 Das Pumping-Lemma ist nicht hinreichend für reguläre Sprachen, z.B. Σ∗ ∪ a+ bn cn wobei a 6= Σ. Beispiele Sei Σ = {a, b}. ∗

1. (aa + ab + ba + bb) = Menge aller Wörter mit gerader Länge.  ∗ ∗ 2. (a∗ ba∗ b) a∗ = w ∈ {a, b} | |w|b ≡ 0 (mod 2) = Wörter mit gerader Anzahl b´s. 3. L = {an bn | n ≥ 0} ist nicht regulär, denn: angenommen L ist regulär. Dann muss das Pumping-Lemma gelten, d.h. es existiert ein n, sodass für alle x ∈ L mit |x| ≥ n eine Zerlegung x = uvw mit den Pumping-Lemma Eigenschaften existiert. Sei x =def an bn . ⇒ es existiert eine Zerlegung 3.

1.

2.

z}|{ z}|{ z}|{ x = uvw mit 1., 2., 3. ⇒ uv 2 w ∈ L. ⇒ uv ∈ a∗ . ⇒ v ∈ a+ . 2 n+|v| n ⇒ uv w = a b 6∈ L. Dies ist ein Widerspruch. Das Pumping-Lemma gilt also nicht für L. Folglich ist L nicht regulär. 4. Frage: Pumping-Lemma für a. Antwort: wähle n = 2. 5. L = {w | |w|a = |w|b } ist nicht regulär, denn: wäre L regulär, so auch ={an bn |n≥0}

z }| { L ∩ |{z} a∗ b∗ regulär. Dies ist ein Widerspruch zu Beispiel 3. reg. 6

3.2 3.2.1

Der Satz von Myhill-Nerode Grundlagen aus der Algebra

Definition 1.8: Sei ∼⊆ M × M eine zweistellige Relation auf M . • ∼ heißt reflexiv, falls x ∼ x für alle x ∈ M • ∼ heißt symmetrisch, falls x ∼ y ⇒ y ∼ x für alle x ∈ M • ∼ heißt transitiv, falls x ∼ y, y ∼ z ⇒ x ∼ z für alle x ∈ M Definition 1.9: ∼⊆ M ×M heißt Äquivalenzrelation, falls sie reflexiv, symmetrisch und transitiv ist. Satz 1.10 Sei ∼ eine Äquivalenzrelation auf M . Dann bilden die Äquivalenzklassen (d.h. die [x]∼ = {y ∈ M | x ∼ y} eine Partitionierung von M , d.h. • je zwei verschiedene Äquivalenzklassen sind disjunkt. • Vereinigung aller Äquivalenzklassen ist M . Der Beweis lässt sich indirekt führen. 3.2.2

Natürliche Äquivalenzrelationen

Definition 1.11 (Index, rechtsinvariant, natürliche Äquivalenzrelation): Sei Σ ein Alphabet, ∼ eine Äquivalenzrelation auf Σ∗ und L ⊆ Σ∗ . 1. Der Index von ∼ ist die Kardinalität von Σ∗ / ∼=def {[x]∼ | x ∈ Σ∗ }. 2. ∼ heißt rechtsinvariant, falls für alle x, y, z ∈ Σ∗ gilt: x ∼ y ⇒ xz ∼ yz 3. Die natürliche Äquivalenzrelation zu L ist wie folgt definiert: x ∼L y



∀z ∈ Σ∗ : xz ∈ L

7



yz ∈ L

Satz 1.12: (Myhill/Nerode 1957/1958) Die folgenden Aussagen sind äquivalent: 1. L ist regulär. 2. Es gibt eine rechtsinvariante Äquivalenzrelation ≈ mit endlichem Index, sodass L eine Vereinigung von Äquivalenzklassen von ≈ ist. 3. ∼L hat endlichen Index. Beweis (1) ⇒ (2) : Sei L = L (M ) mit DFA M = (Q, Σ, δ, q0 , F ) wobei in M alle Zustände von q0 aus erreichbar sind. Definiere: x ≈ y ⇔def q0 x = q0 y. ≈ ist reflexiv, symmetrisch und transitiv. • ≈ ist rechtsinvariant: sei x ≈ y und sei z ∈ Σ∗ : x q0 x q0 xz xz

≈ = = ≈

y q0 y q0 yz yz

• für q ∈ Q sei Lq =def {z ∈ Σ∗ | q0 z = q} (für alle Lq disjunkt). – für jedes q ∈ Q existiert ein x ∈ Σ∗ mit [x]≈ = Lq . – für jedes [x]≈ existiert ein q ∈ Q mit [x]≈ = Lq . – ⇒ Anzahl der Äquivalenzklassen = |{Lq |q ∈ Q}| = |Q| |{z} endl.

• offensichtlich gilt: L = ∪q∈F Lq .

Schreibweise: ≈M , die aus M konstruierte Äquivalenzrelation. (2) ⇒ (3) : Sei ≈ eine Äquivalenzrelation, die 2. erfüllt. Wir zeigen, dass ≈ eine Verfeinerung von ∼ ist, d.h. [x]≈ ⊆ [x]∼L . Dann kann der Index von ∼L nicht größer als der von ≈ sein. Betrachte [x]≈ . Sei y ∈ [x]≈ , d.h. x ≈ y. Für alle z gilt: xz ≈ yz. Da L Vereinigung von ≈Äquivalenzklassen ist, gilt: xz ∈ L ⇔ yz ∈ L D.h. x ∼L y, y ∈ [x]∼L . Folglich ist der Index von ∼L endlich. (3) ⇒ (1) : Zeige zunächst, dass ∼L rechtsinvariant ist: Sei x ∼L y und z ∈ Σ∗ . Genügt zu zeigen: xz ∼L yz. D.h. ∀w, xzw ∈ L ⇔ yzw ∈ L das gilt, da aus x ∼L y folgt: ∀v ∈ Σ∗ : xv ∈ L ⇔ yv ∈ L 8

Definiere Automat für L. M ′ = (Q′ , Σ, δ, q0 , F ′ )  • Q′ = [x]∼L | x ∈ Σ∗  • δ ′ [x]∼L , a = [xa]∼L . δ ′ ist wohldefiniert: sei y ∈ Σ∗ , [y]∼L = [x]∼L ⇒ x ∼L y und damit xa ∼L ya (rechtsinvariant) ⇒ [xa]∼L = [ya]∼L . • q0 = [ε]∼L  • F = [x]∼L |x ∈ L wohldefiniert.

Zeige L (M ) = L.

x ∈ L (M ) ⇔ q0 ∈ F ⇔ [ε]∼L x ∈ F ⇔ [x]∼L ∈ F ⇔ x∈L ⇒ L ist regulär. Beispiel j i Sei L = {an bn | n ≥ 1}. Für i 6= j gilt ai 6∼L aj , denn ai bi ∈ L und  a b 6∈ L. Wir haben also unendlich viele Äquivalenzklassen [ε]∼L , [a]∼L , a2 ∼ , . . . . L Der Index von L ist also unendlich.

Beispiel  ∗ Sei L = x ∈ {0, 1} | x endet mit 00 .   ∗ ∗ ∗ [ε]∼L = x ∈ {0, 1} |x ∼L ε = x ∈ {0, 1} |∀w ∈ {0, 1} , xw ∈ L ⇔ w ∈ L = (∗)

z}|{ = {x|x endet nicht mit 0}

Beweis: “⊇”. Angenommen x ∈ LHS und x = y0 wähle w = 0.⇒ x00 = y00 ∈ L ⇔ 0 ∈ L. Dies ist ein Widerspruch. “⊆” Sei x ∈ RHS. 1. Fall x = ε, also x ∈ RHS 2. Fall: x = y1, dann gilt ∀w, xw ∈ L ⇔ w ∈ L ⇒ x ∈ LHS, also (∗) gezeigt. [0]∼L = {x|x endet mit 0 aber nicht mit 00}, analog oben. [00]∼L = ∗ {x|x endet mit 00}, analog oben. Da [ε]∼L ∪ [0]∼L ∪ [00]∼L = {0, 1} haben wir alle ∼L -Äquivalenzklassen gefunden. Folglich ist L regulär. Frage: wie kann man die ∼L -Äquivalenzklassen berechnen? Wie kommt man auf (∗) im obigen Beispiel? Wir werden sehen, dass diese Äquivalenzklassen genau den Zuständen des Minimalautomaten entsprechen. Der Algorithmus für Minimalautomaten liefert uns die ∼L -Äquivalenzklassen. 9

Definition 1.13 Zwei DFAs M = (Q, Σ, δ, q0 , F ) und M ′ = (Q′ , Σ, δ ′ , q0′ , F ′ ) heißen isomorph ⇔def. es existiert eine Bijektion f : Q → Q′ mit 1. f (q0 ) = q0′ 2. f (qa) = f (q) a, ∀q ∈ Q, a ∈ Σ Satz 1.14 Sei L regulär. Dann gibt es einen bis auf Isomorphie eindeutigen deterministischen Minimalautomaten der L akzeptiert.Dieser Minimalautomat sieht wie    folgt aus: M = [x]∼L |x ∈ Σ∗ , Σ, δ ′ , [ε]∼L , [x]∼L |x ∈ L mit δ ′ [x]∼L , a =def. [xa]∼L . Beweis Aus dem Beweis von Satz 1.12 wissen wir, dass δ ′ wohldefiniert ist (M ′ ist genauso konstruiert wie in Satz 1.12). 1. M ′ ist minimal: Im Beweis von Satz 1.12 machen wir folgendes: aus einem beliebigen endlichen Automaten M = (Q, Σ, δ, q0 , F ) konstruieren wir ≈M mit Index |Q|. Die Anzahl der Zustände von M ′ ist der Index von ∼L ≤ Index von ≈M = |Q|. Folglich ist M minimal. 2. M ′ ist eindeutig bestimmt: Haben M und M ′ die gleiche Anzahl an Zuständen (und akzeptieren beide L), so sind M und M ′ isomorph, denn: Ist q ∈ Q, so wähle x ∈ Σ∗ so, dass q0 x = q (muss existieren, da M und ′ M Minimalautomaten sind). q entspricht dann dem Zustand q ′ = [x]∼L in M ′ . f : Q → Q′ , f (q0 x) =def. [x]∼L . f ist wohldefiniert, denn: ist y 6= x und q0 y = q0 x, dann gilt x ≈M y, d.h. insbesondere gilt x ∼L y (Satz 1.12), also [x]∼L = [y]∼L . Es gilt: 1. f (q0 ) = [ε]∼L 2. f (qa) = f (q0 xa) = [xa]∼L = [x]∼L a = f (q0 x) a = f (q) a 3. f ist bijektiv: M und M ′ haben gleiche Anzahl von Zuständen und f ist surjektiv: Sei [x]∼L gegeben. f (q0 x) = [x]∼L . Folglich ist f bijektiv und M und M ′ sind isomorph. Folgerung 1.15 Sei L ⊆ Σ∗ eine Sprache und M = (Q, Σ, δ, q0 , F ) ein DFA mit L (M ) = L ohne nicht erreichbare Zustände. Dann gilt: M ist minimal ⇔≈M =∼L . Beweis “⇒”: Da ≈M eine Verfeinerung von ∼L ist, gilt x ≈M y ⇒ x ∼L y. Sei also M minimal und x ∼L y. Der letzte Satz sagt, dass M und M ′ (aus Satz 1.14)

10

isomorph mittels Isomorphismus f . f (q0 x) = f (q0 ) x = [ε]∼L x = [x]∼L = [y]∼L = [ε]∼L y = [y]∼L = f (q0 ) y = f (q0 y) . f ist Bijektion, also q0 x = q0 y. Folglich gilt x ≈M y. “⇐”: |Σ∗ / ≈M | ist gleich der Anzahl der Zustände von M . |Σ∗ / ∼L | ist gleich der Anzahl der Zustände von M ′ . Folglich ist M minimal. Falls es also x, y gibt mit x ∼L y und x 6≈M y (x, y führen zu unterschiedlichen Zuständen im Automaten), so ist M nicht minimal. 3.2.3

Minimalisierung deterministischer, endlicher Automaten

Bestimmung des Minimalautomaten nach [Huffman 54, Moore 56]. Gegeben: • Sei M = (Q, Σ, δ, q0 , F ) der keine nicht erreichtbaren Zustände enthält. • Wir definieren eine Äquivalenzrelation auf Q: p ≡ q ⇔def. ∀x ∈ Σ∗ , px ∈ F ⇔ qx ∈ F (dies entspricht ∼L auf den Zuständen) • p und q sind unterscheidbar ⇔def. ∃x ∈ Σ∗ , px ∈ F ⇔ qx 6∈ F ⇔ p 6= q. Idee: äquivalente Zustände können verschmolzen werden, d.h. die ≡-Äquivalenzklassen sind genau die Zustände des Minimalautomaten. Also zur Bestimmung des Minimalautomaten. Interpretation: • Paare von Zuständen können markiert werden und sie können auf Listen auftauchen. • (p, q) markiert , p 6≡ q • Ist (p, q) auf Liste L (p′ , q ′ ) , [p′ 6≡ q ′ ⇒ p 6≡ q] Algorithmus zur Erstellung eines Minimalautomaten 1. Lege eine leere Liste L (p, q) für jedes Paar (p, q) (p 6= q ∧ (p, q) ≡ (q, p)) an. Markiere alle (p, q) mit p ∈ F ⇔ q 6∈ F . 2. Für alle (p, q) mit p ∈ F ⇔ q ∈ F : (a) Falls ein a ∈ Σ existiert, sodass (pa, qa) markiert ist: i. Markiere (p, q). ii. Markiere alle Paare (p′ , q ′ ), die noch nicht markiert sind und die auf der Liste L (p, q) stehen. iii. Für alle so markierten Paare (p′ , q ′ ), markiere alle nicht markierten (p′′ , q ′′ ), die auf Liste (p′ , q ′ ) stehen. iv. Setze diese Markierung rekursiv fort. (b) Andernfalls, für alle a ∈ Σ: i. Falls pa 6= qa, so füge (p, q) zur Liste L (pa, qa) hinzu. 11

Laufzeit des Algorithmus Sei n = |Q| , k = |Σ|.  • Zeile 1: O n2 Listen

 • Zeile 2 (Schleifenbeginn): O n2 Schleifendurchläufe

• Schritt a) i.-iv.:

– Im gesamten Algorithmus wird eine Liste L (p′ , q ′ ) maximal zwei Mal durchlaufen (ein erstes Mal, wenn (p′ , q ′ ) auf L (p′′ , q ′′ ) steht und markiert werden muss und ein zweites Mal, wenn (p, q) = (p′ , q ′ ) und L (p, q) im Schritt a) i. markiert wird. – Gesamtzeit die der Algorithmus im Schritt a) i. verbringt ist die Summe der Länge der Listen am Ende des Algorithmus. – Aus Schritt b) folgt, dass jedes Paar maximal auf k Listen auftaucht.  Damit beträgt die Gesamtzahl in Schritt a) i.-iv. O k · n2 .

• Schritte a) und b) liegen jeweils in O (k).

  2 Die Laufzeit des Algorithmus beträgt damit O |Σ| · |Q| . Behauptung p 6≡ q ⇔ obiger Algorithmus markiert (p, q). Beweis “⇒”: Sei x minimales Wort, sodass px ∈ F ⇔ qx 6∈ F . Wir zeigen per Induktion über |x|, dass (p, q) markiert wird. |x| = 0: Markierung in Schritt 1. IV z}|{ |x| > 0: Seien x = ay, t =def. pa, u =def. qa. t 6≡ u (durch y) ⇒ (t, u) wird vom Algorithmus markiert. 1. Fall: (p, q) wird vor (t, u) behandelt. Entweder (p, q) ist schon markiert oder die Liste L (t, u) zum Zeitpunkt zu dem (t, u) markiert wird (dann wird (p, q) im Schritt a) i. markiert). 2. Fall: (p, q) wird nach (t, u) behandelt. Im Schritt a) wird (t, u) als markiert erkannt, im Schritt a) i. wird (p, q) markiert. “⇐”: Wir zeigen per Induktion: Wird (p, q) im i-ten Rechenschritt markiert, so ∃x ∈ Σ∗ : px ∈ F ⇔ qx 6∈ F . i = 0: Die Aussage stimmt, da kein Paar im 0. Schritt markiert wird. i → i + 1: 12

1. Fall: (p, q) in Zeile 1 markiert, also p ∈ F ⇔ q 6∈ F, x := ε. 2. Fall: (p, q) wurde markiert, weil ∃a ∈ Σ : (pa, qa) (markiert in früherem IV z}|{ Rechenschritt) markiert (Schritt a) i.) ⇒ ∃x ∈ Σ∗ : pax ∈ F ⇔ qax 6∈ F . 3. Fall: (p, q) wurde markiert, weil es auf einer Liste L (pa, qa) steht und IV z}|{ (pa, qa) markiert wurde (früherer Rechenschritt) (p, q) ⇒ ∃x ∈ Σ∗ : pax ∈ F ⇔ qax 6∈ F . Definition Minimalautomat   ˆ qˆ0 , Fˆ ˆ = ˆ Σ, δ, M Q, def.

mit: ˆ= Q def. {[q]≡ |q ∈ Q} ˆ δ ([q]≡ , a) =def. [qa]≡ qˆ0 =def. [q0 ]≡ Fˆ =def. {[q]≡ |q ∈ F } (δˆ und Fˆ sind wohldefiniert)   ˆ =L: • zu Zeigen: L M

  ˆ w∈L M

⇔ [q0 ]≡ w ∈ Fˆ ⇔ [q0 w]≡ ∈ Fˆ ⇔ q0 w ∈ F ⇔ w∈L

ˆ ist minimal: zeigen Q ˆ ≤ Index von ∼L . Für [q] ∈ Q ˆ definieren wir • M ≡ L[q]≡ =def. {x ∈ Σ∗ | [q0 ]≡ x = [q]≡ } .

Die L[q]≡ sind ≈Mˆ -Äquivalenzklassen. Folglich: jedes L [q]≡ ist vollständig in einer ∼L -Äquivalenzklasse enthalten (weil ≈Mˆ eine Verfeinerung von ∼L ist [Myhill/Nerode]). Angenommen es existieren [p]≡ 6= [q]≡ , sodass L[p]≡ und L[q]≡ in der gleichen ∼L -Äquivalenzklasse liegen. Also existiert ein w ∈ Σ∗ mit pw ∈ F ⇔ qw 6∈ F . Seien x, y so, dass q0 x = p und q0 y = q ⇒ xw ∈ L ⇔ yw 6∈ L ⇒ x 6∼L y. Aber x ∈ [p]≡ und y ∈ [q]≡ . Dies ist ein Widerspruch. ⇒ Pro ∼L -Äquivalenzklasse gibt es maximal ein [p]≡ , sodass L[q]≡ in der Klasse liegt. ˆ ⇒ Q ≤ Index von ∼L . ˆ ist minimal. ⇒M

Erinnerung an 1.15: ≈Mˆ =∼L , d.h. die ∼L -Äquivalenzklassen sind genau die ˆ L[p]≡ (also die Menge von Wörtern, die zu einem bestimmten Zustand in M führen. Auf diese Weise können wir die ∼L -Äquivalenzklassen berechnen. 13

Beispiel Minimalisierung Automat Siehe Extrablatt. q0 q1 q2 q3 q4 q5

(0, 3), x x x (0, 1),(0, 3), (1, 3), x x q0

x x (0, 1)

x x

x

-

-

x q1

(2, 5) q2

x q3

x q4

q5

⇒ q2 und q5 sind äquivalent und können verschmolzen werden. Dies liefert direkt den Minimalautomaten. Folgerung 1.16 Das Äquivalenzproblem für DFAs ist in P (d.h. gegeben sind zwei DFAs M1 = (Q1 , Σ, δ1 , q10 , F1 ) , M2 = (Q2 , Σ, δ2 , q20 , F2 ). Frage: gilt L (M1 ) = L (M2 )). Beweis 1. berechne den Minimalautomaten für M1′ und M2′ . 2. ordne jeden q1 ∈ Q′1 ein q2 ∈ Q′2 wie folgt zu: ′ (a) bestimme x mit q10 x = q1 ′ (b) wähle q2 =def. q20 x

3. teste, ob diese Abbildung f ein Isomorphismus ist, d.h. ′ ′ (a) f (q10 ) = q20

(b) ∀q ∈ Q′1 , ∀a ∈ Σ : f (qa) = f (q) a (c) ∀q ∈ Q′1 :[q ∈ F1′ ⇔ f (q) ∈ F2′ ] Bemerkung: Das Äquivalenzproblem für NFAs ist P SP ACE-vollständig (hier gibt es nämlich keinen eindeutigen, nicht-deterministischen Minimalautomaten; außerdem gilt:[P ⊆ N P ⊆ P SP ACE ⊆ EXP ]). Auch folgendes Problem ist P SP ACE-vollständig: gegeben sei ein NFA M, k ∈ N. Gesucht: ∃NFA M ′ mit maximal k Zuständen und L (M ) = L (M ′ ).

14

3.3 3.3.1

Der Satz von Büchi und Trachtenbrot Grundlagen der Prädikatenlogik

Wir benutzen prädikatenlogische Formeln um Sprachen zu beschreiben. Formeln bestehen aus: • Quantoren ∀, ∃ • Logischen Konnektoren ∧, ∨, ¬ • Variablen x, y, z, . . . • Prädikatensymbole Rij (i > 0, j ≥ 0) sowie Qa (a ∈ A) Idee: • Variablen nehmen Werte aus den natürlichen Zahlen an. Diese stehen für Positionen im Wort. • Prädikate Rij stehen für j-stellige Relationen auf natürlichen Zahlen (z.B. < auf N). • Prädikate Qa beschreiben Symbole in Wörtern (z.B. Qa (x) , der x-te buchstabe im Wort ist ein a). Beispiel ∃x∃y (x < y) , es existieren mindestens zwei verschiedene Positionen im Wort. Die Menge aller Wörter, die diese Formel erfüllen ist {w ∈ Σ∗ | |w| ≥ 2}. Beispiel 



  A = {a, b}. ∃x∃y ∀z (z ≥ x) ∧Qa x ∧ ∀z (z ≤ x) ∧Qa y  entspricht der Sprache | {z } | {z } (∗)

(∗∗)

L = aA∗ a ∪ {a} ((∗) = x ist erste Position im Wort, (∗∗) = y ist letzte Position im Wort). Definition 1.17 (Syntax der Prädikatenlogik der 1. Stufe, first-order logic, FO) • Induktionsanfang (atomare Formeln): – Ist x eine Variable und a ∈ A, so ist Qa x eine Formel. – Sind x1 , . . . , xj Variablen und ist i > 0, so ist Rij (x1 , . . . , xj ) eine Formel • Induktionsschritt: 15

– Sind φ, ψ Formeln, so sind φ ∧ ψ und ¬φ Formeln. – Ist φ eine Formel und ist x eine Variable, so ist ∃xφ und ∀xφ eine Formel. Wir verwenden folgende Abkürzungen: • ∀xφ steht für ¬∃xφ • (φ ∨ ψ) steht für ¬ (¬φ ∨ ¬ψ) • (φ → ψ) steht für (¬φ ∨ ψ) • (φ ↔ ψ) steht für ((φ → ψ) ∧ (ψ → φ)) Ein Vorkommen einer Variable x in φ heißt frei, falls x nicht im Geltungsbereich eines Quantors ∃x bzw. ∀x vorkommt. Aundernfalls heißt x gebunden. Hat φ keine freien Variablen, so heißt φ Satz. “Bedeutung” einer Formel φ w |= φ soll heißen: das Wort w erfüllt die Eigenschaft, die von φ beschrieben wird (w ist Modell von φ). Definition 1.18 (Semantik der Prädikatenlogik der ersten Stufe) • Eine Interpretation I ist eine Abbildung, die jedem numerischen Prädikat Rij eine j-stellige Relation auf den natürlichen Zahlen zuordnet. • Sei V eine endliche Menge von Variablen. Eine V -Struktur über Σ ist eine Folge w = (a1 , U1 ) (a2 , U2 ) . . . (ar , Ur ) , wobei a1 , a2 , . . . , ar ∈ Σ, U1 , U2 , . . . , Ur ∈ V, Ui ∩ Uj = ∅, ∀i 6= j, U1 ∪ . . . ∪ Ur = V . Wir fassen w als Wort über Σ × Σ auf. Intuition: Eingabewort w = a1 . . . ar . Variablenbelegung: x = i ⇔ x ∈ U , d.h. die Variablen werden an Buchstaben geklebt, auf die sie verweisen. Beispiel w = (a, ∅) (b, {x}) (a, {y}) (a, ∅) ist eine {x, y}-Struktur. Eingabe: abaa. Variablenbelegung: x = 2, y = 3. w |= (x < y) ∧ Qb (x) ∧ Qa (y).

16

Definition 1.19 Sei w eine V -Struktur und φ eine Formel. Wir sagen φpasst zu w ⇔def. 1. kommt x frei in φ vor, so ist x ∈ V . 2. kommt x gebunden in φ vor, so ist x 6∈ V . 3. keine Variable kommt gebunden in verschiedenen Quantoren vor. 4. keine Variable kommt sowohl frei als auch gebunden vor. Definition 1.20 Sei w = (a1 , S1 ) . . . (ar , Sr ) eine V -Struktur, φ eine Formel die zu w passt und I eine Interpretation. Dann schreiben wir • w |=I φ (bzw. w ist Modell für φ bzw. w erfüllt φ)⇔def. – Induktionsanfang: ∗ w |=I Qa x ⇔def. aj = a, wobei x ∈ Sj ∗ w |=I Rik (x1 , . . . , xn ) ⇔def. P (j1 , . . . , jk ), wobei P die k-stellige Relation ist, die Rik von I zugewiesen wird und xi ∈ Sji für 1 ≤ i ≤ k. – Induktionsschritt: ∗ w |=I (φ1 ∧ φ2 ) ⇔def. w |=I φ1 und w |=I φ2 ∗ w |=I ¬ψ ⇔def. w 6|=I ψ ∗ w |=I ∃xψ ⇔def. ∃i : (1 ≤ i ≤ r)∧(a1 , S1 ) . . . (ai , Si ∪ {x}) . . . (ar , Sr ) |=I ψ • Ist φ ein Satz und w ∈ Σ∗ : w = a1 . . . ar , so schreiben wir kurz w |=I φ statt (a1 , ∅) . . . (ar , ∅) |=I φ. • Lφ =def. {w ∈ Σ∗ |w |=I φ} ist die Sprache, die von dem Satz φ definiert ist. • Zwei Sätze φ, ψ sind äquivalent, wenn gilt Lφ = Lψ (Schreibweise: φ ≡ φ) Bemerkung: Falls I klar ist, so schreiben wir |= statt |=I . Beispiel φ =def. ∀x (z ≤ x) ∧ Qa z I ordnet dem Symbol ≤ die kleiner-gleich-Relation zu. z ist eine freie Variable. (a, {y, z}) (a, ∅) (b, ∅) |=I φ

17

(beachte φ passt zur V -Struktur) (a, {y}) (a, {z}) (b, ∅) 6|=I φ (b, {z}) (a, {y}) (b, ∅) 6|=I φ (a, {z}) (a, {x}) (b, ∅) 6|=I φ (passt nicht zu φ, da x gebundene Variable, aber x ∈ V ) Beispiel φ =def. ∃xQa x w = bcab w |= φ zu Zeigen: (b, ∅) (c, ∅) (a, ∅) (b, ∅) |= φ. Genügt zu zeigen: (b, ∅) (c, ∅) (a, {x}) (b, ∅) |= Qa x. Beispiel 2 φ =def.  R1 (x, y) 2 I R1 =def. {(x, y) |x < y} (a, {x}) (b, {y}) |=I φ (a, {x, y}) (b, ∅) 6|=I φ

Erweiterung der Logik der 1. Stufe • bisher verwendete Variablen heißen Variablen 1. Stufe (x, y, z, . . .) • X, Y, Z, . . . sind Variablen 2. Stufe und stehen für Teilmengen natürlicher Zahlen • Quantoren dürfen auch über Variablen der 2. Stufe quantifizieren: ∃Xφ • mittels X (y) können wir auf y ∈ X testen Beispiel Lφ = {w ∈ Σ∗ | |w| ist gerade} Gesucht ist φ. φ =def. ∃X (1. Buchstabe in X, letzter Buchstabe 6∈ X, für benachbarte Positionen x, y gilt (x ∈ X ⇔ y ∈ X)) =def.

∃X (∀x (∀z (z ≥ x) → x ∈ X)) ∧ ∀x (∀z (z ≤ x) → x 6∈ X) ∧ ∀x∀y [(x < y) ∧ ¬∃z (x < z ∧ z < y)] ↓ [x ∈ X ⇔ y 6∈ X]

18

Definition 1.21 (Syntax der monadischen Prädikatenlogik 2. Stufe, monadic second-order logic, MSO) Zusätzlichen zu den Konstruktionen 1. Stufe sind nun auch folgende erlaubt: • Ist X eine Variable 2. Stufe und y eine Variable 1. Stufe, so ist X (y) eine Formel. • Ist φ eine Formel und X eine Variable 2. Stufe, so ist ∃Xφ eine Formel. Abkürzung: ∀Xφ steht für ¬∃X¬φ. Bemerkung: “monadisch” bedeutet, dass wir nur über einstellige Relationen natürlicher Zahlen (also Teilmengen von N) quantifizieren dürfen; ohne diese Einschränkung könnte man auch über Relationen beliebiger Stelligkeit quantifizieren (also z.B. Teilmengen von N × N × N). Definition 1.22 (Semantik der monadischen Prädikatenlogik 2. Stufe) • Seien V1 eine endliche Menge von Variablen erster Stufe und V2 eine endliche Menge von Variablen 2. Stufe. Eine (V1 , V2 )-Struktur über Σ ist eine Folge w = (a1 , S1 , T1 ) . . . (ar , Sr , Tr ) so dass (a1 , S1 ) . . . (ar , Sr ) eine V1 -Struktur ist und T1 , . . . , Tr ⊆ V2 (im Gegensatz zur Definition von V -Strukturen müssen die Ti keine Partitionierung von V2 bilden). Wir fassen w als Wort über Σ × ΣV1 × ΣV2 auf. Interpretation: Eingabewort a1 . . . ar . Variablen 1. Stufe: x = i ⇔ x ∈ Si . Variablen 2. Stufe: X = {2, 5, 7} ⇔ X ∈ T2 , X ∈ T5 , X ∈ T7 und keinem weiteren Ti • jede Variable 1. Stufe wird genau einem Buchstaben zugewiesen • jede Variable 2. Stufe kann einer beliebigen Anzahl von Buchstaben zugewiesen werden Definition 1.23 Sei w = (a1 , S1 , T1 ) . . . (ar , Sr , Tr ) eine (V1 , V2 )-Struktur und φ eine Formel. φ passt zu w, falls • φ passt zur V1 -Struktur (a1 , S1 ) . . . (ar , Sr ) • die Bedingungen 1-3 aus der alten Definition sinngemäß auch für Variablen 2. Stufe gelten

19

Definition 1.24 Sei w = (a1 , S1 , T1 ) . . . (ar , Sr , Tr ) eine (V1 , V2 )-Struktur und φ eine Formel, die zu w passt und I eine Interpretation: 1. w erfüllt φ (bzw. w ist Modell für φ, Schreibweise w |=I φ) ⇔def. zusätzlich zu den Punkten für die erste Stufe kommen folgende zwei: • w |=I X (y) ⇔def. in w existiert ein Buchstabe (a, S, T ) mit y ∈ S und X ∈ T • w |=I ∃Xφ ⇔def. es existiert eine Menge I von Positionen in w, so dass (a1 , S1 , T1′ ) . . . (ar , Sr , Tr′ ) |=I φ ( Ti , falls i 6∈ I wobei Ti′ =def. Ti ∪ {X} , falls i ∈ I 2. Ist φ ein Satz und w ∈ Σ∗ , w = a1 . . . ar , so schreiben wir w |=I φ statt (a1 , ∅, ∅) . . . (ar , ∅, ∅) |=I φ 3. Lφ =def. {w ∈ Σ∗ |w |=I φ} ist die vom Satz φ definierte Sprache. 4. Zwei Sätze φ, ψ heißen äquivalent, falls Lφ = Lψ . Schreibweise: φ ≡ ψ Beispiel Σ = {0, 1} ∗ L =def. {01} . Wir wollen L durch eine M SO-Formel mit ≤ ausdrücken. Wir führen folgende Abkürzungen ein: • max (x) =def. ∀z (z ≤ x) • min (x) =def. ∀z (x ≤ z) • N (x, y) =def. x ≤ y ∧ ¬ (y ≤ x) ∧ ∀z [(x ≤ z ∧ ¬ (z ≤ x)) → y ≤ z] | {z } Nachbar

• φ =def.

∃X [∀x (min (x) → X (x) ∧ ∀x (max (x) → ¬X (x)) ∧ ∀x∀y (N (x, y) → (X (x) ↔ ¬X (y) |{z} Pos. der 0en

Folglich ist L in M SO [≤] beschreibbar. Lφ ist sogar in F O [≤] beschreibbar (Übungsblatt). Das Beispiel am Anfang L = {w| |w| ist gerade} ist nicht in F O [≤] beschreibbar.

20

3.3.2

Prädikatenlogische Charakterisierung der regulären Sprachen

Definition 1.25 M SO [=, +1] ist die Klasse aller Sprachen, die durch Sätze der monadischen Prädikatenlogik der 2. Stufe beschrieben werden können, in denen die einzigen nummerischen Prädikate R12 und R22 sind, wobei diese stets wie folgt interpretiert werden: R12 (x, y) =def. {(x, y) ∈ N × N|x = y} R22 (x, y) =def. {(x, y) ∈ N × N|y = x + 1} Wir verwenden die Abkürzungen “x = y” und “y = x + 1” in den Formeln. Satz 1.26 (Buchi 1960, Trachtenbrot 1962, unabhänig von einander) Für L ⊆ Σ∗ gilt: L ist regulär ⇔ L ∈ M SO [=, +1] Beweis “⇒”: Sei M = (Q, Σ, δ, q0 , F ) ein DFA mit L = L (M ), Q = {0, 1, . . . , k − 1}, w ∈ Σ∗ , |w| = n, w = a1 . . . an . Wir benutzen folgende Mengen Xj zur Beschreibung von Rechwegen in M : i ∈ Xj ⇔ q0 a1 . . . ai−1 = qj (der i-te Buchstabe wird in qj gelesen). Dann gilt: w ∈ L − {ε} k−1 (1) ∪i=0 Xi = {1, . . . , n} (2) i 6= j ⇒ Xi ∩ Xj = ∅ (3) 1 ∈ X0 (4) j ∈ Xi ∧ j + 1 ∈ Xl ⇓ δ (qi , aj ) = ql (5) n ∈ Xj ⇓ δ (qj , an ) ∈ F

⇔ ⇔

akzeptiert bei Eingabe w und |w| > 0 ∃X0 , X1 , . . . , Xk−1 ⊆ {1, . . . , n} so dass:

, , , ,

alle Buchstaben werden eingelesen jeder Buchstabe wird in einem Xi gelesen Start im Startzustand Übergangsverhalten von M

,

Rechenweg endet im akzeptierenden Zustand

⇒ es genügt zu Zeigen, dass (1) − (5) durch M SO [=, +1]-Formeln beschrieben werden können:

21

φ1 =def. φ2 =def. φ3 =def. φ4 =def. φ5 =def.

∀x (X0 (x) ∨ X1 (x) ∨ . . . ∨ Xk−1 (x)) ∀x (∧0≤i