GTI Mitschrift



Comments



Description

Grundlagen der Theoretischen Informatikmitgeschrieben von Martin Lenders Dieses Dokument vom 6. Juli 2009 steht unter einer Creative Commons BY-NC-ND 3.0 Deutschland Lizenz f¨ r die Seite http://page.mi.fu-berlin.de/mlenders/mitschriften/gti/ u Inhaltsverzeichnis 1 Turing-Maschine, Berechenbarkeit, Entscheidbarkeit 1.1 Definition der Turing-Maschine . . . . . . . . . . . . . . 1.2 Church’sche These . . . . . . . . . . . . . . . . . . . . . 1.3 Registermaschinen . . . . . . . . . . . . . . . . . . . . . 1.4 Formale Sprachen . . . . . . . . . . . . . . . . . . . . . . 1.4.1 Multiplikation von W¨rtern . . . . . . . . . . . . o 1.4.2 Multiplikation von Sprachen . . . . . . . . . . . . 1.4.3 Potenz von W¨rtern und von Sprachen . . . . . . o 1.5 Konfiguration (Momentaufnahme einer Turingmaschine) 1.6 Turingmaschine mit mehreren B¨ndern . . . . . . . . . . a 1.7 Die universelle Turingmaschine . . . . . . . . . . . . . . 1.8 Unentscheidbarkeit . . . . . . . . . . . . . . . . . . . . . 1.8.1 Universelle Sprache und Diagonalsprache . . . . 1.8.2 Das Halteproblem . . . . . . . . . . . . . . . . . 1.8.3 Reduzierbarkeit von Problemen . . . . . . . . . . 1.8.4 Das Post’sche Korrespondenzproblem (PKP) . . 1.8.5 Andere unentscheidbare Probleme . . . . . . . . 1.8.6 Satz von RICE (1953) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 6 7 7 8 8 8 8 9 10 10 10 12 13 13 16 16 17 17 18 20 22 22 23 25 26 27 29 30 31 31 32 32 33 34 35 35 35 36 37 38 40 41 42 43 44 44 2 Regul¨re Sprachen und endliche Automaten a 2.1 Deterministische endliche Automaten . . . . . . . . . . . . . . 2.2 Regul¨re Ausdr¨ cke . . . . . . . . . . . . . . . . . . . . . . . a u 2.3 Nichtdeterministische endliche Automaten . . . . . . . . . . . ¨ 2.4 NEA mit ε-Uberg¨ngen . . . . . . . . . . . . . . . . . . . . . a ¨ 2.4.1 Elimination von ε-Uberg¨ngen . . . . . . . . . . . . . a 2.5 Minimierung deterministischer endlicher Automaten . . . . . 2.5.1 Algorithmus zur Bestimmung des Minimalautomaten: 2.5.2 Satz von Nerode . . . . . . . . . . . . . . . . . . . . . 2.6 Das Pumping-Lemma f¨ r regul¨re Sprachen . . . . . . . . . . u a 2.7 Abschlusseigenschaften regul¨rer Sprachen . . . . . . . . . . . a 2.8 Zusammenfassung: regul¨re Sprachen . . . . . . . . . . . . . . a 3 Grammatiken 3.1 Definition von Grammatiken . . . . . . . . . . . 3.2 Die Chomsky-Hierarchie . . . . . . . . . . . . . . 3.3 Typ-0-Sprachen (rekursiv aufz¨hlbare Sprachen) a 3.4 Typ-3-Sprachen (regul¨re Sprachen) . . . . . . . a 3.5 Typ-1-Sprachen (kontextsensitive Sprachen) . . . 4 Kontextfreie Sprachen (Typ-2-Sprachen) 4.1 Tiefenstruktur von Sprachen . . . . . . . . . . . 4.2 Dyck-Sprache . . . . . . . . . . . . . . . . . . . . 4.3 Kontextfreie Grammtiken als Gleichungssysteme 4.4 Eindeutigkeit . . . . . . . . . . . . . . . . . . . . 4.5 Chomsky-Normalform . . . . . . . . . . . . . . . 4.6 Algorithus von CYK“ . . . . . . . . . . . . . . . ” 4.7 (Erweiterte) Backus-Naur-Form (E)BNF . . . . . 4.8 Pumping-Lemma f¨ r kontextfreie Sprachen . . . u 4.9 Abschlusseigenschaften kontextfreier Sprachen . . 4.10 Entscheidungsprobleme kontextfreier Sprachen . 4.11 Kellerautomaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Inhaltsverzeichnis 4.12 Abschlusseigenschaften kontextfreier Sprachen gegen¨ ber regul¨ren Sprachen u a 4.13 Deterministische kontextfreie Sprachen . . . . . . . . . . . . . . . . . . . . . . 4.14 Deterministische Zweiwege-Kellerautomaten . . . . . . . . . . . . . . . . . . . 4.14.1 Teilwortproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 48 48 49 4 1 Turing-Maschine, Berechenbarkeit, Entscheidbarkeit 1.1 Definition der Turing-Maschine Steuerung Zustand (Programmzähler) (q, a) Programm Schreib−/Lesekopf (q ′ , a′ , b) 1 X B B B 0 B B B Zweiseitiges, unendliches Band Eine Turingmaschine wird beschrieben durch: • Ein Eingabealphabet Σ • ein Bandalphabet Γ ⊃ Σ • ein Leerzeichen B ∈ Γ \ Σ • eine endliche Menge Q von Zust¨nden a ¨ • eine Uberf¨ hrungsfunktion δ : Q × Γ → Q × Γ × {−1, 0, 1} u • ein Anfangszustand q0 ∈ Q • (eventuell) eine Menge von akzeptierenden Zust¨nden F ⊆ Q a δ ist das Programm“ der TM ” • δ(q, a) = (q ′ , a′ , b) bedeutet: Wenn die Maschine im Zustand q ist und unter dem Kopf das Symbol a steht, dann wird a durch a′ auf dem Band ersetzt (a′ = a ist m¨glich), das Band wird um b verschoben und die o Maschine geht in den Zustand q ′ • Die Eingabe ist eine Folge von Symbolen aus Σ (ein Wort uber Σ). Sie steht am Anfang auf dem Band; ¨ der Kopf steht uber dem ersten Symbol. Der Zustand ist q0 . ¨ Beispiel: Σ = {0, 1}, Γ = {0, 1, B, X} Erkenne die Eingabe der Form: 0 1 , f¨ r n ≥ 1 u 01, 0011, 000111, ... (richtig) 001, 1100, 0100101, ... (falsch) rechts und links von der Eingabe stehen unendlich viele B-Symbole • Phase 1: laufe einmal von links nach rechts uber das Band und uberpr¨ fe, ob dort eine Folge von 0en u ¨ ¨ gefolgt von eine Folge von 1en steht. • Phase 2: Fahre abwechselnd nach links und nach rechts und ersetze jeweils 0 und eine 1 durch X. Akzeptiere, wenn am Ende alles durch X erstzt ist und kene 0, 1 ubrig bleibt ¨ n n 5 B. 1) B (q− . . X. 0) (q− . q− } q0 = q0 F = {q+ } • Die T. a 1. −1) (q2 . 0) (q3 . 1. B. q3 . L¨sche alle Markierungen o s qu . wenn sie in einen Zustand q uber einen Symbol a mit δ(q. q4 . Wertebereich der Variablen. 0) • Die Maschine h¨lt.KAPITEL 1. ¨ 4. 1. 1) 1 (q1 . akzeptiert die Eingabe. 1) (q4 . a ¨ Q = {q0 . s := a (merken) Markiere diese Ziffer auf dem Band. X. 0. X 1 X 0 X 1 0 1 formal: Γ = Γ1 × Γ2 × Γ3 × . was man intuitiv unter algorith” misch berechenbar“ versteht. 0. . 1) (q4 . X. B.: {’ ’. B. . 2. . −1) (q3 . Zustand (Programmzeile) q mit Werten s. Bandalphabet f¨ r die i-te Spur. 0) (q− . Beispiel: Addition zweier Bin¨rzahlen a Eingabe: bin(x)#bin(y)$ (bin(x) := Bin¨rdarstellung einer positiven Zahl. 0) (q+ . ¯ ¯ 0. 0) (q+ . Γi . . 1} 6 . 0) (q2 . u der Variablen. a.2 Church’sche These Das was von einer Turing-Maschine berechnet werden kann. B. formal: Q = Q0 × V . 1. u z. #. 1) (q− . −1) (q− . wenn sie in einem Zustand aus F h¨lt. 0. 1) (q1 . entspricht dem. −1) (q4 . Wandere nach links zur 1. unmarkierten Ziffer b von x ¨ Ersetze b durch b + s + u. 1. unmarkierten Ziffer a. (Markiere diese Ziffer) ¨ ¨ 3. X. 1. q2 . . 1) (q4 . q+ . a) = (q. 1} u ∈ {0. M. 1) Kommentar fahre nach rechts uber Nullen ¨ fahre nach rechts uber Einsen ¨ fahre nach links und suche 0. Gehe zu 1 solange noch Ziffern ubrig sind. 1. 0. 1} ¨ Eingabealphabet: Σ = {0. TURING-MASCHINE. B. B. 1) (q2 . $} Bandalphabet: Γ = Σ ∪ {B. 0) steht. 0. 0) (q− . × Γk .} • Speichern von Variablen mit endlichen Wertebereich als Teil des Zustandes. X. 0) X egal egal (q2 . . X. B. 1) (q3 . u := Ubertrag. ENTSCHEIDBARKEIT δ q0 q1 q2 q3 q4 0 (q0 . B. q− q+ (q− . 0. 0) (q+ . . 1. X. x} × {0. f¨ hrende Nullen sind egal) a u Ausgabe: bin(x + y)#bin(y)$ Programmiertechniken: • Verwenden mehrerer Spuren: Jedes Feld des Bandes wird als aus mehreren Unterfeldern bestehend betrachtet. 1. 0) (q+ . V . ersetze sie durch X fahre nach rechts und suche 1. Wandere nach rechts zur 1. 1. q1 . ersetze sie durch X fahre nach rechts und suche 1. Haltezustand: h ¨ ¨ s ∈ {0. 1) (q+ . akzeptiere wenn keine 1 mehr vorhanden ist. . BERECHENBARKEIT. ¯ − 0. + z. ¨ 0 y0 . 1. − u ¨ ui . #. 1. − u ¨ B Schritt 1 0 vu . ¯ + ¨ 0. B. $.. . 1. + p. ¯ + 0. ¨ 0 y0 . 1. 0 ¯ y1 . + 0 ru . . 0 v0 .. x0 . ¯ − 0 0. . REGISTERMASCHINEN δ 0 qu ¨ 0 ru ¨ s0 u ¨ ti u ¨ ui 0 u0 0 u1 . + 4 • Unterprogrammtechnik 1. ¯ + 0. ¯ + ¨ 1. alle W¨rter endlicher L¨nge l. ¯ + 1. − z. 0. . . ¯ + ¨ 1. al . + ¨ t0 . ¯ + 1. 1. 0. ¨ ui . ¨ 0 q0 . ¯ − 1. + ¨ t1 . + ¨ u0 . die man mit den Buchstaben aus Σ bilden kann. 0. #. # 0 ru . o a w = a 1 a 2 a 3 . u0 0 1 u1 1 0 vu ¨ 0 wu ¨ 0 xu ¨ 0 y0 0 y1 z p 0 0 qu . endliches Alphabet (Vorrat an Zeichen) Σ∗ . ¯ − u 1. + ¨ 0 ru . − p. ¯ 0. ¨ t1 .+ 2 3 z. ¯ + 0. 0. 0 q0 . − 0 vu . − 0 wu . ¯ − u 0. 0 ¯ y1 . 0 q1 . + p. 0 q1 . . 0.. 1. #. + ¨ 0 ru . Inhalt auf Adresse xi 1. 1. − u ¨ $ s0 . #. 0 vu . ¯ − u 0. ¯ − 0 1. $. ¯ − u 0. 0. ¨ ui . ¯ − u 0. ¯ + 0. + z. + ¨ ¯ 0 0 qu .###[Programmcode] xi . s0 . #. 0. ¯ + 1. yi .4 Formale Sprachen Σ . B. s0 . + ¨ 0 yu . + ¨ 0 ru .. #. + ¨ 1 0 q0 . ¯ − u 1. ¨ t0 . Adresse.. x0 . a i ∈ Σ l = |w| L¨nge des Wortes l ≥ 0 a ε ist das leere Wort |ε| = 0 Definition: Eine formale Sprache L ist eine Teilmenge von Σ∗ Beispiel: L = {0n 1n |n ≥ 1} L=∅ L = {ε} 7 . ¯ − u 1. ¯ 1. 0 vu .3 Registermaschinen Simulation eines RAM-Speichers auf einer TM: ##x1 #y1 ##x2 #y2 ##. 1. ¯ 1 0 qu . #. + z. − ¨ 0 v0 .3.. − h. − p.1. ¯ − u 1. ¨ 0 q0 . 0 q0 .+ 1 v0 . ¯ + ¨ 0. ENTSCHEIDBARKEIT 1.4. . L · {ε} = L Beispiel: L1 = {a. ∗ 8 . .abba} 1.ba} L1 · L2 = {aa. dass auf k1 nach beliebig vielen Schritten (≥ 0) die Konfiguration k2 folgt.aba. · u i−mal u =u u0 = ε Li = L · L · . o Das Wort xqy mit x. . L1 · (L2 · L3 ) = (L1 · L2 ) · L3 2. . . die man aus bel. . = Menge der W¨rter.1 Multiplikation von W¨rtern o u · v = uv (Buchstaben von u und v nebeneinander geschrieben) Rechenregeln: 1.ab} L2 = {a. v ∈ L2 } Rechenregeln: 1. u2 ∈ L. .4.3 Potenz von W¨rtern und von Sprachen o ui = u · u · u · . u · (v · w) = (u · v) · w 2. ∀u ∈ Σ∗ : u · ε = ε · u = u Beispiel: u = abra v = kadabra u · v = abrakadabra v = kad ·u 1.) k1 ⊢ k2 bedeutet. . BERECHENBARKEIT. L · ∅ = ε · u = u 3. . das nicht mit B anf¨ngt oder a aufh¨rt (ein Wort ∈ Γ∗ QΓ∗ \ (B(Γ ∪ Q)∗ ∪ (Γ ∪ Q)∗ B)). · ui |u1 ∈ L. . y ∈ Γ∗ und q ∈ Q beschreibt den Zustand der Turingmaschine wo xy auf dem Band steht und der Kopf uber dem ersten Zeichen von y steht F¨ r zwei Konfigurationen k1 und k2 schreibt man u ¨ k1 ⊢ k2 wenn die Turingmaschine in einem Schrittvon k1 nach k2 ubergeht.5 Konfiguration (Momentaufnahme einer Turingmaschine) Definition: Eine Konfiguration einer Turingmaschine ist ein Wort aus Γ∗ QΓ∗ . TURING-MASCHINE. (Nachfolgerrelation zwischen ¨ Konfigurationen. vielen (≥ 0) Bestandteilen ∈ L zusammen multiplizieren kann.4. .2 Multiplikation von Sprachen L1 · L2 = {uv|u ∈ L1 . ui ∈ L} i−mal 1 L1 = L L0 = {ε} L∗ := L0 ∪ L1 ∪ L2 ∪ . o 1.KAPITEL 1. . · L = {u1 · u2 · . (n)) (mit einem a a Band in O(n2 ) Schritten). • Die ubrigen B¨nder sind zu Beginn leer. mit y. a ¨ ¨ • Die Ubergangsfunktion δ : Q × Γk → Q × Γk × {−1. o a Beweis: Simulation der k B¨nder auf k Spuren eines einzigen Bandes. 2 i-mal Die Umkehrfunktion von log ist 2 ∗ =2↑i Definition: Die von einer Turingmaschine M mit einer Teilmenge F ⊆ Q von akzeptierenden Zust¨nden akzepa tierte Sprache L(M ) ist die Menge der W¨rtern bei deren Eingabe die Maschine einen akzeptierenden o Zustand erreicht (und dann anh¨lt). +1}k Beispiel: bin¨re Addition von 2 n-Bit Zahlen geht mit 2 B¨ndern in O(n) Schritten (≤ konst. TURINGMASCHINE MIT MEHREREN BANDERN 1. Zuerst wird bin(y) auf das 2. . In einer konstanten Anzahl von Fahrten uber das gesamte Band (ausgehend a ¨ von L) kann die Turingmaschine die Band¨nderungen auf den k B¨ndern simulieren.6 Turingmaschine mit mehreren B¨ndern a • Eine Turingmaschine mit k B¨ndern hat k Schreib-/Lesek¨pfe. Γ1 = Γ ∪ (Γ × {X. ’ ’})k ∪ {L} • L markiert die Position links neben der linkesten Position die die simulierte Turingmaschine auf allen B¨ndern besucht hat. o • Die L¨nge des uberstrichenen Bandinhalts in jedem Simulationsschritt ist ≤ 2T + 1 a ¨ • Ein Simulationsschritt geht in ≤ const.6. a o • Das erste Band ist das Eingabeband.T Schritten T -mal ⇒ T 2 ∗ • 2 n-Bit Bin¨rzahlen k¨nnen auf einem k-Band-TM in n · log n · const. . . a a • Die simulierte Maschine kann in T Schritten h¨chstens T Schritte nach links und rechts gehen. . und dann bitweise von rechts nach links addiert. Die Kopfposition der B¨nder ist af der a a jeweiligen Spur vermerkt. 0.log n Schritten multipliziert a o werden (Martin F¨hrer 2008.T 2 Schritten h¨lt. die in h¨chstens const.¨ 1. a L(M ) = x ∈ Σ∗ q0 x ⊢ yqz. z ∈ Γ∗ und q ∈ F ∗  M h¨lt in q ∈ F a → x ∈ L(M )  Eingabe x M h¨lt in q ∈ F a / → x ∈ L(M ) /   M terminiert nicht → x ∈ L(M ) / 9 . Band kopiert. log2 n ≤ 1} -mal 22 .n·log n log log n (Arnold Sch¨ nu o hage ≈ 1970)) log∗ n := min{i| log2 log2 log2 . Satz: Eine k-Band-Turingmaschine die nach T Schritten h¨lt kann durch eine 1-Band-Turinmaschine simuliert a werden. bestehender Rekord vorher const. die auf allen Eingaben h¨lt und a mit L = L(M ) Unterscheide: abz¨hlbare (denumerable) Mengen: endlich oder gleichm¨chtig mit N a a Turingmaschine die etwas berechnet: x ∈ Σ∗ steht auf dem Eingabeband. . q ′ . (qi1 . B. . 1}∗ bezeichnet. δ(q4 .. γ5 . . 1} b) M hat Zustandsmenge Q = {q1 .111 1. • Man nennt M die G¨delnummer von M . a) = (q ′ . BERECHENBARKEIT. o Konventionen: a) M hat das Eingabealphabet {0.KAPITEL 1. 1}∗ Satz: Es gibt eine universelle Turingmaschine MU mit L(MU ) = LU Beweisskizze: MU muss zun¨chst den Anfang der Eingabe bis zum zweiten 111-Block lesen und entscheiden a ob es sich um eine g¨ ltige G¨delnummer handelt. • Wenn die Maschine h¨lt.. q2 . 0) = (q2 . L heißt entscheidbar (rekursiv).)... B. .7 Die universelle Turingmaschine Eine universelle Turingmaschine liest als Eingabe: 1. je nach M ). (qi1 . γj1 . Die Beschreibung einer beliebigen Turingmaschine M 2. engl. 1. a. ENTSCHEIDBARKEIT Definition: Eine Sprache L heißt rekursiv aufz¨hlbar (semi-entscheidbar..1 Universelle Sprache und Diagonalsprache Definition: Die universelle Sprache LU ist die Sprache LU = { M x|M akzeptiert x} ⊆ {0. ⇒ |111|0i1 10j1 10j1 10k1 10l1 10m1 |11|0i2 10j2 10j2 10k2 10l2 10m2 |11|. und kann anschließend die Maschine M Schritt f¨ r u Schritt simulieren. 4. 3.. . γj1 . wenn es eine Turingmaschine M gibt. γ5 ) = (q2 . 5. a • Die von der Turingmaschine berechnete (partielle) Funktion fM ist definiert auf der Menge A = {x ∈ Σ ∗ |M h¨lt bei Eingabe um x} a fM : A → Σ∗ mit A ⊆ Σ∗ • Eine partielle Funktion f : A → Σ∗ mit A ⊆ Σ∗ oder eine totale Funktion f : Σ∗ → Σ∗ heißt berechenbar.. recursiv enumerable) wenn es a eine Turingmaschine M mit L = L(M ) gibt. Wenn die simulierte Maschine M h¨lt. m) wird als (q.. 10 . b. −1). m) geschrieben. u Dann simuliert sie M mit dieser Eingabe und h¨lt genau dann. ⇒ M = 111010100100010110000100000100100000100011. steht ein Wort y ∈ Σ∗ auf dem Ausgabeband (bzw. 1.. +1).|111| Beispiel: δ(q1 . |Γ| − 1} (keine wesentlichen Einschr¨nkungen). Die Eingabe f¨ r M . ... auf dem einzigen Band).8. qk1 .8 Unentscheidbarkeit 1. wenn es eine Turingmaschine M mit f = fM gibt. u o MU kopiert die Beschreibung auf ein zweites Band. . m1 ). dann h¨lt auch MU (in einem akzeptierenden oder nicht akzepa a tierenden Zustand. a a • Die Beschreibung von M wird als M ∈ {0. . a Jetzt m¨ ssen wir nur noch δ kodieren: u als Liste von 5-Tupeln: δ(q. qk } q1 ist der Startzustand q2 ist der einzige akzeptierende Zustand c) M hat Bandalphabet {0.. b. wenn M h¨lt. TURING-MASCHINE. γl1 .. 1. Mi D w1 +− + − + + − w2 +− + − +− − w3 −+ − + + ··· wi ··· wk ··· + Satz: D ist nicht rekursiv aufz¨hlbar und damit auch nicht entscheidbar. UNENTSCHEIDBARKEIT Aufz¨hlung aller W¨rter aus {0.. M2 . M1 M2 M3 M4 . . a Beweis durch Widerspruch: Angenommen. a D = {wi | wi ∈ L(Mi ) / falls wi = M ist Mi falls wi keine g¨ ltige G¨delnummer ist u o Definition: Die Diagonalsprache D ist .. . . die einen Schritt = nach links macht. es gibt eine Turingmaschine Mk die D akzeptiert: D = L(Mk ) = {w|Mk akzeptiert w} Betrachtet das Wort wk : wk ∈ D Definition von D ⇐⇒ wk ∈ L(MK ) / wk ∈ D / Annahme: Mk akzeptiert die Sprache D ⇐⇒ Satz: Das Komplement D der Diagonalsprache D = {wi |wi ∈ L(Mi )} ist rekursiv aufz¨hlbar.. . 1}∗ und aller Turingmaschinen: a o w1 = ε w2 = 0 w3 = 1 w4 = 00 w5 = 01 w6 = 10 w7 = 11 w8 = 000 . und dann in einem    akzeptierenzen Zustand anh¨lt.} Mi akzeptiert wi nicht. 2. 3.8..   Turingmaschine. .... M1 . i = 1. aber nicht entscheidbar a 11 . Mi .  Turingmaschine M . . . mit einer Eingabe). dann akzeptiere. M2 akeptiert L Lasse M1 und M2 parallel“ laufen (abwechselnd) auf derselben Eingabe x ∈ Σ∗ ” Wenn x ∈ L. Behauptung: Dann k¨nnten wir auch die universelle Sprache U entscheiden. TURING-MASCHINE. Wenn x ∈ L. nicht entscheidbar a nicht rekursiv aufz¨hlbar a nicht rekursiv aufz¨hlbar a rekursiv aufz¨hlbar. 2. der das Halteprolem entscheidet. nicht entscheidbar a nicht rekursiv aufz¨hlbar a nicht rekursiv aufz¨hlbar a Satz: Die universelle Sprache U ist unentscheidbar. Sobald eine der simulierten Turingmaschinen M1 und M2 anh¨lt. Eine Sprache L ⊆ Σ∗ ist genau dann entscheidbar. ist die Antwort bekannt. Annahme: Es gibt einen Algorithmus. ob die Eingabe eine g¨ ltige G¨delnummer M ist. ENTSCHEIDBARKEIT Beweis: 1. a ⇐ M1 akzeptiert L.KAPITEL 1. Wenn ja. Drehe die Angabe des Entscheidungsalgorithmus um. ¨ Uberpr¨ fe ob wi die G¨delnummer einer g¨ ltigen Turingmaschine M ist.2 Das Halteproblem Gegeben: Eine Turingmaschine M und eine Eingabe x ∈ Σ∗ (oder ein Programm in C. verdopple die Eingabe und starte die universelle Turingmaschine: Mi wi =wi akzeptiert genau dann. wenn wi ∈ L(Mi ) / Nichtentscheidbarkeit folgt aus dem n¨chsten Satz. dann terminiert M2 . Java. 2. BERECHENBARKEIT. M h¨lt bei Eingabe von x in einem akzeptierenden Zustand} a 12 . MD uberpr¨ ft. Frage: H¨lt die Turingmaschine nach endlich vielen Schritten? a Formuliereung des Problems als formale Sprache: H = { M |M h¨lt bei Eingabe von x} a Satz: Das Halteproblem ist unentscheidbar Beweis: indirekt. wenn die Komplement¨rsprache L = Σ∗ − L a entscheidbar ist. Wir wollen untersuchen. . dann terminiert M1 . – wenn nein → Antwort: JA. 1.. 2. L rekursiv aufz¨hlbar. a Satz: 1. ob wi ∈ D ist. a Beweis: 1. wenn sowohl L als auch L rekursiv aufz¨hlbar sind. L entscheidbar ⇒ L entscheidbar ⇒ L. u o u • Wenn nein: L(Mi ) = Σ∗ wi ∈ Σ∗ → Antwort: JA • Wenn ja: Mi = M ¨ Uberpr¨ fe ob Mi wi ∈ U ⇔ wi ∈ L(Mi ) u – wenn ja → Antwort: NEIN. a L L entscheidbar entscheidbar rekursiv aufz¨hlbar.8. Beweis: Mit der Entscheidbarkeit von U k¨nnte man auch die Diagonalsprache D = {wi |wi ∈ L(Mi )} entscheio / den. o U = { M x|x ∈ L(M ). L ist genau dann entscheidbar.. u u o ¨ wenn nein. 0) @ @@@ i1 = @@@@@1 ⇒ i3 = 1 1 i2 = @ @@ xi . (10. a 1. ik Beispiel (1. 101). (10. . y2 ).. yi ∈ Σ∗ (k ≥ 1) mit xi1 xi2 xi3 . u Teste mit dem Algorithmus A. dann nach links zur¨ ckkehrt und dann wie M weitermacht.1.. Je nachdem. ob x ∈ A ist: Berechne f (x) und entscheide.8...8. (01. diese Simulation muss terminieren. 111). Indirekter Beweis: Annahme wir h¨tten einen Algorithmus A. A ≤ B und A unentscheidbar ⇒ B unentscheidbar Beweis: 1. A ≤ B und B entscheidbar ⇒ A entscheidbar 3. geh¨rt M x zu U oder nicht. x2 ). (01. 3. (y1 .. der Hε entscheidet.. 10). 011) (001. Transitivit¨t a 2. falls y nicht mit der g¨ ltigen Codierung einer Turingmaschine beginnt u M ∞ := eine Turingmaschine. yn ) o Frage: Gibt es eine Folge von Indizes i1 . (101.8. (10111. ∀x ∈ Σ∗ Beispiel: H ≤ Hε f ( M x) = M ′ f (y) = M ∞ .. ob M x ∈ H ist.yik ? @ @= @ x @111 @ @ y @@@@ @= 111111111 i4 = 3 x = 10111 1 1 10 i1 = 2 i2 = 1 i3 = 1 y = 10 111 111 0 (10.. 001) k¨ rzeste L¨sung k = 66 u o 13 . 011). (011. ob M ∈ Hε M ′ ∈ Hε ⇔ M x ∈ H 1. dann ist M x ∈ U . . i2 . Wir wollen entscheiden. B ⊆ Σ∗ A ist auf B reduzierbar A≤B wenn es eine berechenbare Funktion f : Σ∗ → Σ∗ gibt mit x ∈ A ⇔ f (x) ∈ B. ob der Haltezustand von M ein akzeptierender Zustand ist oder nicht. (xn . u Konstruiere eine neue Turingmaschine M ′ die am Anfang das Wort x auf das Band schreibt. die nie h¨lt.3 Reduzierbarkeit von Problemen Definition: A.. Wenn ja. simuliere M auf der Eingabe / x.. UNENTSCHEIDBARKEIT Teste zuerst.xik = yi1 yi2 . Wenn nein. 101). 11).4 Das Post’sche Korrespondenzproblem (PKP) Gegeben: Eine Folge von Paaren von W¨rtern (x1 . A ≤ B ∧ B ≤ C ⇒ A ≤ C 2. o M x sei Eingabe f¨ r H. o Das spezielle Halteproblem Hε = { M |M h¨lt bei Eingabe ε} a Folgerung: Hε ist unentscheidbar. logisch ¨quivalent zu 2. 0). a Behauptung: Dann k¨nnten wir H entscheiden. ob f (x) ∈ B ist. a ( y ist keine korrekte Eingabe f¨ r das Halteproblem“) u ” Beispiel: D ≤ U Satz: 1. ym ) Frage f¨r MPKP: Gibt es eine Folge u i 1 . b.yik ′ ′ ′ Reduktion: Wir konstruieren uns eine Eingabe (x′ . B) = (q ′ . 0 1 n+1 Dieses PKP hat eine L¨sung ⇔ Das urspr¨ ngliche MPKP hat eine L¨sung. falls δ(q. a) = (q ′ .. −1) (#q#. b. yi ) = (a. TURING-MASCHINE. B) = (q ′ b. 1) (q#. falls δ(q. 0) (qa. y1 ) = (#...KAPITEL 1. (x′ . falls δ(q. BERECHENBARKEIT. falls δ(q. bq ′ ). yn+1 ). #q ′ Bb). −1) (#qa. o u o 14 . .. b. falls δ(q. 1) (cqa. x ∈ Σ∗ Alphabet f¨ r PKP = Γ ∪ Q ∪ {#} u Anfangspaar: (x1 . #q0 x#) Kopierpaare: (xi . ↑ y1 yi Beispiel xi + 1 xi ↓ ↓ # 0 0 #0010q110# 0 0 ↑ ↑ yi yi + 1 xj 1 1 0 0 q1 10# 0q ′ 10# yi δ(a. y2 ). B) = (q ′ . b. −1) (cq#. falls δ(q. a) = (q ′ . b. q ′ cb). ik k ≥ 1 mit i1 = 1 Sodass xi1 xi2 . Folge von Konfigurationen einer Turingmaschine xi ↓ q0 v#u1 q 1 v1 #u2 q 2 v2 #u3 q 3 v3 #. 1) = (q ′ .. . y1 ). a) f¨ r a ∈ Γ ∪ {#} u Zustands¨berg¨nge: u a (qa. i2 . a) = (q ′ . . 0. 0) (q#. ENTSCHEIDBARKEIT Satz: PKP ist unentscheidbar Beweis: U ≤ P KP Zwischenschritt: Modifiziertes PKP zus¨tzliche Bedingung: i1 = 1 M P KP ≤ P KP a U ≤ P KP . a) = (q ′ . +1) Gegeben: M.. . q ′ b). #q ′ Bb#). b. .. . . (x2 . falls δ(q. y1 ). falls δ(q.xik = yi1 ... .. (xn . y0 ). (x′ .. q ′ cb#). bq ′ #). B) = (q ′ . x1 x1 #q0 v# u1 q 1 v1 #u2 q 2 v2 #u3 q 3 v3 #. b. q ′ b#). −1) M P KP ≤ P KP Gegeben: Eingabe f¨ r M P KP u (x1 . b. dass Ki+1 aus Ki o durch einen Schritt vom M entsteht.. (x′ . b. y1 ). y0 ).. Kopierregel Zustandsregeln:  ′ (q . vi ∈ Γ∗ L¨schregeln: o Wenn M in einen akzeptierenden Zustand q ∈ F ger¨t. Beweis: Gegeben ist eine Eingabe M x f¨ r U u Wir konstruieren daraus eine Eingabe f¨ r MPKP mit folgenden Eigenschaften u MPKP hat eine L¨sung ⇔ M x ∈ U o (M akzeptiert x) Idee: MPKP simuliert die Berechnung von M L¨sungswort: #K0 #K1 #K2 #.. +1) ⇒ (qa.. b. a) = ′  ′ (q . yn ) berechenbar. −1) ⇒ (cqa.. y1 ) = (0#. bq ′ )   ′ (q . UNENTSCHEIDBARKEIT Beispiel: (0. b. (11. a) a ∈ Γ ∪ {#}. #q ′ Bb#) K0 = q0 x qi ∈ Q. ∀q ∈ F 15 . bq ′ #)   ′ (q . 010). o Ki aufeinanderfolgende Konfigurationen von M Ki = ui q i vi xi1 xi2 .1. q) ∀q ∈ F.yik = #K1 #|K2 #|K3 #K4 #| Das y-Wort ist immer einen Schritt vorraus.. #0) 2 ′ (x′ .. dadurch k¨nnen wir sicherstellen... q cb)   (#qa. (x1 . 0) ⇒ (q#.. #q ′ Bb)  ′ (q .. −1) ⇒ (cq#. y1 ) = (#. q) Abschlusspaar: (q##. (101.... q ′ b#) δ(q...xik = #|K1 #|K2 #K3 #| yi1 yi2 . 0)..01 → #0#1#$ Die Eingabe Lemma: U ≤ M P KP ′ ′ (x′ .8. y0 ) beginnen 0 x′ = #0# 0 ′ ′ ′ y0 = y1 y0 = #0#1#0 x1 x3 = 0101 x′ x′ = #0#1#0#1# 0 3 ′ ′ y0 y3 = #0#1#0#0#1y1 y3 = 01001 ′ x′ n+1 = $yn+1 = #$ . q ′ b) δ(q. yn+1 ) 0 n+1 ist aus (x1 . ui . #q0 x#) Anfangsregel (a. .. #0#1#0) 1 Eingabe f¨ r MPKP u mit einem neuen Symbol # nach jedem Buchstaben mit einem neuen Symbol # vor jedem Buchstaben ′ (x′ . +1) ⇒ (q#. y3 ) = (1#0#1#. . b. (xn . #0#1) 3 x′ = #x′ 0 1 ′ Dieses PKP kann nur min(x′ . q cb#)   (#q#. a ∈ Γ (aq. B) = ′  ′ (q . 01) x′ = xi i ′ yi = yi ′ (x′ . 0) ⇒ (qa. y2 ) = (1#1#. dann frisst“ dieser Zustand den Bandinhalt a ” (qa.01 → 0#1#$ . b... #) Satz: Das Post’sche Korrespondenzproblem ist unentscheidbar. ′ M ist aus M berechenbar.5 Andere unentscheidbare Probleme • L¨sbarkeit von Polynomgleichungen uber Z.8. a ¯ Wenn ∅ die Eigenschaft S hat.8. die von einigen aber nicht von allen rekursiv aufz¨hlbaren a erf¨ llt wird: u Beispiele: Ist S = ∅? Ist S = {ε}? ε ∈ S? Ist S endlich? Ist S = {0n 1n |n ≥ 1} 1.KAPITEL 1. a ” 16 . BERECHENBARKEIT. die Eigenschaft S hat und eine Turingmaschine M + mit L(M + ) = L+ Wir reduzieren das spezielle Halteproblem Hε auf das Entscheidungsproblem f¨ r S: u Gegeben: Turingmaschine M Frage: H¨lt M bei Eingabe ε? a Wir konstruieren daraus eine neue Turingmaschine M ′ mit der Eigenschaft L(M ′ ) hat Eigenschaft S ⇔ M h¨lt bei Eingabe ε a • M ′ bekommt die Eingabe x ∈ Σ∗ • M ′ simuliert zun¨chst M mit leerer Eingabe. a wenn M + akzeptiert. Frage: Hat L(M ) die Eigenschaft S? Annahme: ∅ hat nicht Eigenschaft S Es gibt eine Sprache L+ . dann simuliert M ′ die M + mit der Eingabe x. a Fall 2: M h¨lt bei Eingabe ε a ⇒ M ′ verh¨lt sich wie M + ⇒ L(M ) = L(M + ) = L+ ⇒ L(M ) hat Eigenschaft S. dann betrachte die komplement¨re Eigenschaft S ( nicht S“).6 Satz von RICE (1953) Satz: F¨ r jede nichttriviale Eigenschaft S (im obigen Sinn) ist das folgende Problem unentscheidbar: u Gegeben: Turingmaschine M . . und akzeptiert genau dann. S sei eine Eigenschaft von formalen Sprachen L. . ENTSCHEIDBARKEIT 1. Fall 1: M h¨lt nicht bei Eingabe ε a ⇒ M ′ h¨lt nie ⇒ L(M ) = ∅ ⇒ L(M ) hat Eigenschaft S nicht. a • Wenn M h¨lt. TURING-MASCHINE. (Matijasevi´. 1970) o c ¨  x = 3y − z 2   z 2 + u3 y − x4 = 0 . a1 a2 . F ) Ein (deterministischen) endlicher Automat (DEA) (engl.2 Regul¨re Sprachen und endliche Automaten a 2. a1 a2 .. 1} F = {q3 } Eingabe: x = 0 0 1 1 0 0 1 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ q0 q1 q0 q2 q0 q1 q0 q2 ∈ L(A) / ∈F / L(A) = die von A akzeptierte Sprache = {x ∈ {0. q1 . q0 . δ(q. δ. (∀q ∈ Q) (n ≥ 1) 17 .. Σ.1 Deterministische endliche Automaten A = (Q. an )). Er akzeptiert das Eingabewort.an ) = δ(δ(q.. q2 .an−1 . DFA) hat: • eine endliche Zustandsmenge Q • ein endliches Eingabealphabet Σ • eine Zustands¨ berf¨ hrungsfunktion δ : Q × Σ → Q u u • einen Startzustand q0 ∈ Q • eine Menge von akzeptierenden Zust¨nden F ⊆ Q a Arbeitsweise: Der Automat beginnt in q0 und liest in jedem Schritt das n¨chste Eingabesymbol und ¨ndert a a denm Zustand gem¨ß δ. q3 } q0 = q0 δ q0 q1 q2 q3 Zustandsdiagramm: 0 q1 q0 q3 q2 1 q2 q3 q0 q1 Σ = {0.. wenn er sich nach dem Lesen des letzten Bucha stabens in einem Zustand ∈ F befindet.: deterministic finite automaton. Beispiel: Q = {q0 . 1}∗|x enth¨lt eine gerade Anzahl an 0en und eine ungrade Anzahl an 1en} a Wir erweitern δ : Q × Σ → Q auf δ : Q × Σ∗ → Q δ(q. ε) = q. . 000). 0i ).) ∗ hat h¨chste Priorit¨t. ε. 010) = q0 = δ(δ(δ(δ(q2 . ∅. . x) ∈ F } Kann ein DEA die Sprache L = {0n 1n |b ≥ 0} akzeptieren? Wir betrachten δ(q0 .) Uberfl¨ ssige Klammern kann man weglassen. δ(q0 .¨ KAPITEL 2. 0). 0j ).0i ) Definition: Die von DEA akzeptierten Sprachen heißen regul¨re Sprachen.. .. REGULARE SPRACHEN UND ENDLICHE AUTOMATEN Beispiel: δ(q2 . 1}∗ (((((0)∗ ) + ((0) · ((1)∗ ))) · (1)) · (0)) · ((1)∗ ) Man verwendet folgende Vereinfachungsregeln: 1.. 0). a Andere Charakteresierungen von regul¨ren Sprachen: a • regul¨re Ausdr¨ cke a u • NEA: nichtdeterministische endliche Automaten • Typ-3-Grammatiken 2. a u 1. 1i ) = δ(q0 .. δ(q0 .. .) Endliche Mengen kann man auch als {. 1).) · kann man weglassen 4. 0i ) = δ(q0 .} schreiben Jeder regul¨re Ausdruck beschreibt eine Sprache: a • L(∅) = ∅ • L(ε) = {ε} • L(a) = {a} f¨ r a ∈ Σ u • L((A) · (B)) = L(A) · L(B) • L((A) + (B)) = L(A) ∪ L(B) 18 . 1i ) = δ(q0 .. dann + o a ¨ u 2. 3. 0i 1i ) ∈ F weil A das Wort 0i 1i akzeptieren soll. dann ·.. Nach h¨chstens |Q| Schritten muss sich ein Zustand wiederholen o ∃i ≤ j : δ(q0 . 0j ) δ(δ(q0 .. a f¨ r a ∈ Σ. 0) L(A) = die von A akzeptierte Sprache = {x ∈ Σ∗ |δ(q0 . dann sind auch a u • (A) · (B) • (A) + (B) • (A)∗ regul¨re Ausdr¨ cke.2 Regul¨re Ausdr¨cke a u Beispiele f¨ r regul¨re Ausdr¨ cke: u a u (0 + 1)∗ (0∗ + 01∗ )10(1∗ ) Definition: regul¨re Ausdr¨ cke sind induktiv folgendermaßen definiert. 00).. 0j 1i ) = δ(δ(q0 . 0i 1i ) ∈ F ⇒ A akzeptiert 0j 1i =δ(q0 . Wenn A und B regul¨re Ausdr¨ cke sund. a u Beispiele: ((0) + (1))∗ = {0. sind regul¨re Ausdr¨ cke u a u 2. ε). δ(q0 . . die von qi nach qj f¨ hren.. . 1}∗|Anzahl der Nullen ist gerade} Satz: Jede regul¨re Sprache wird durch einen regul¨ren Ausdruck beschrieben: a a Beweis mit Kleene-Algorithmus: (Kleene. . δ(qi . x1 . REGULARE AUSDRUCKE • L((A)∗ ) = (L(A))∗ Beispiel: 1∗ (01∗ 01∗ ) = {x ∈ {0... δ.. qk qk qk qk qi k−1 ∈ Lik qj k−1 ∈ Lkj ∈ x besteht aus einem Anfangsst¨ ck ∈ u k−1 Endst¨ ck ∈ Lkj u k−1 Lik . beginnend ij ” in qi nur Zust¨nde q1 . . F ) = Menge der W¨rter.. Σ.xn ) = qj . x1 ... q1 . q2 ... qn }. .. 1953) L = L(A) Lk ij A = ({q1 . n definiert werden. wo der Zustand qk erreicht wird.xn |δ(qi . keine Zwischenzust¨nde. q2 ... qk−1 .... qk a Lk = {x1 x2 . k−1 Fall 1: qk tritt nicht als Zwischenzustand auf ⇒ x ∈ Li j Fall 2: Zerlege x in Bestandteile an jeder Stelle.2. 1... a) = qi } ∪ {ε} ii Die Lk k¨nnen induktiv f¨ r k = 0... u ij o k−1 k−1 k−1 k−1 Lemma: Lk = Lij ∪ Lik (Lkk )∗ Lkj ij Beweis: k−1 k−1 k−1 k−1 ⊇“ Lij ⊆ Lk nach Definition..xl ) ∈ {q1 .. qk } f¨ r 1 ≤ l < n} u ij k = n.... dann kann man die Formel vereinfachen: k−1 k−1 Beispiel: Lk = Lik · (Lkk ) ik k−1 k−1 k−1 ∗ k Lkk = (Lkk ) Lk = ((Lkk )∗ Lkj kj 19 . . ausgehend a ij ” von qi besucht. a) = qj } ij i=j L0 = {a ∈ Σ|δ(qi . ein Wort aus dieser Sprache wird. und dabei als Zwischenzust¨nde (außer dem ersten o u a und letzen Zustand) nur die Zust¨nde q1 . keine Einschr¨nkung der Zwischenzust¨nde a a L(A) = qj ∈F Ln 1j ¨ k = 0. k−1 Lkk k−1 beliebig vielen (≥ 0) Zwischenst¨ cken ∈ Lkk und einem u Wenn i = k oder j = k ist. 2. nur direkten Ubergang a L0 = {a ∈ Σ|δ(qi ... Lik (Lkk )∗ Lkj .. a ⊆“ Betrachte ein Wort x ∈ Lk und die Folge der Zust¨nde die der Automat beim Lesen von x.¨ ¨ 2. qk besuchen und in qj enden. qn ) mit qi ∈ Q mit q0 = Anfangszustand und qi+1 ∈ δ(qi .1 → q0 L(A) = {W¨rter. kann er in irgendeinem der Zust¨nde aus der Menge δ(q. a.3 Nichtdeterministische endliche Automaten DEA → ↑ NEA ←− regul¨rer Ausdruck a ↓ (NEA + ε) Definition: Ein nichtdeterministischer endlicher Automat (NEA) (engl. und a u ij sonst auch L(A).an ∈ Σ∗ ist eine Folge (q0 ..1 0 q1 1 q2 0 q3 1 q4 0. n − 1. u u 2. q0 .. • Ein Wort x ∈ Σ∗ wird von A akzeptiert. . u / Ein DEA entspricht dem Spezialfall wo |δ(q. an . u Urspr¨ nglicher Formalismus u δ : Q × Σ → 2Q q ′ ∈ δ(q.. a1 . a Gesund Hochdruckwetter Gesund Kopfweh Gewitter Kopfweh. Schranke f¨ r die L¨nge des Ausdrucks: u a (|Σ| + 1) · 4|Q| · |Q| ¨ (beim Ubergang von k auf k + 1 wird die L¨nge h¨chstens mit 4 multipliziert. q1 . a) Alternativer Formalismus δ ⊆ Q × Σ × Q (dreistellige Relation) (q. ai+1 ) f¨ r i = u 0. außer dass: a δ : Q × Σ → 2Q (Potenzmenge von Q) Wenn ein Automat sich im Zustand q ∈ Q befindet und das Symbol a ∈ Σ liegt.. u L(A) = Menge der akzeptierten W¨rter o 0.Gesund K¨lte a Gesund • Eine Berechnung des Automaten bei Eingabe von x = a1 a2 .. a)| = 1 f¨ r alle q und a.. δ. wenn es eine akzeptierende Berechnung f¨ r x gibt. F ) ist ¨hnlich wie ein DEA. • Eine akzeptierende Berechnung ist eine Berechnung mit qn ∈ F . 011110000111 ∈ L(A) jedoch nicht. q ′ ) ∈ δ 20 . a2 . q2 . qn−1 . Σ. NFA) A = (Q..: nondeterministic finite automaton. q1 } ∅ {q3 } ∅ {q4 } 1 {q0 } {q2 } ∅ {q4 } {q4 } Beispiel: 010 0101 0010000 w¨ rde akzeptiert werden. . REGULARE SPRACHEN UND ENDLICHE AUTOMATEN Durch Induktion nach k ergibt sich: Alle Sprachen Lk sind durch regul¨re Ausdr¨ cke darstellbar. die 0101 enthalten} = (0 + 1)∗ 0101(0 + 1)∗ o δ q0 q1 q2 q3 q4 0 {q0 .¨ KAPITEL 2.. a) gehen.) a o Der Algorithmus von Floyd-Warshall f¨ r k¨ rzeste Wege in Graphen beruht auf dem gleichen Prinzip. a) δ ′ (q ′ . q3 . q4 } ′ q5 {q0 . q2 . 0) = ∅ ∪ {q3 } = {q3 } δ ′ ({q0 . q1 .1 q4 ⇒ NEA hat k + 1 Zust¨nde a Jeder DEA ben¨tigt mindestens 2k−1 Zust¨nde o a 21 . q4 } {q0 . q1 . δ. q2 . q1 .} = m¨gliche Zust¨nde nach Lesen der ersten k Eingabezeichen. ′ In der Praxis beginnt man mit q0 = {q0 } und erzeugt nur diejenigen Zustandsmengen. q2 . q2 . q4 } 0 q1 0 0 1 1 q2 0 → q0 0 q7 1 q3 1 0 q4 1 0 0 q6 q5 1 1 0 L = {W¨rter. q0 . q4 } {q0 .. qq } {q0 . q2 .3. q′ 0 1 ′ q0 {q0 } {q0 . q1 . q3 } {q0 . δ ′ . 0) = {q0 . q4 } ′ q4 {q0 . F ′ ) zu einem gegebenen NEA A = (Q. 0) ∪ δ(q4 . q0 .. q1 .1 → q0 1 q1 0. q1 . q2 } ′ q2 {q0 .. NICHTDETERMINISTISCHE ENDLICHE AUTOMATEN ′ Konstruktion eines ¨quivalenten DEA A′ = (Q′ . deren 4-letzter Buchstabe eine 1 ist} o 0. q3 . q1 . q4 } {q0 . q1 . q3 . a1 a2 . 0) = δ(q0 . q4 } F ′ = {q ′ ∈ {q0 . q4 } ′ q7 {q0 .1 q2 0. q1 .2. q4 }|q4 ∈ q ′ } ′ Beweis: δ ′ (q0 . q4 } ′ q6 {q0 . q1 . q4 } {q0 . die von q0 erreichbar sind. 0) ∪ δ(q2 . q4 } {q0 . q2 }. q4 }. F ) a (Potenzmengenkonstruktion) Q′ = 2 Q δ ′ : Q′ × Σ → Q′ δ(q..ak die im Zustand q0 beginnt und in q u endet.1 q3 0. 0) = δ(q1 . q1 } ∪ ∅ ∪ {q4 } = {q0 . Σ. 0) ∪ δ(q1 . q2 } {q0 . q4 } {q0 . Σ. q1 } {q0 . q1 } {q0 . a) = q∈q′ ′ q0 == {q0 } F ′ = {q ′ ∈ Q|q ′ ∩ F = ∅} Behauptung: L(A′ ) = L(A) δ ′ ({q1 . q2 } {q0 } ′ q1 {q0 . q4 } {q0 . o a ” Beweis durch Induktion nach k. q3 } {q0 } ′ q3 {q0 . q4 } {q0 . q1 .ak ) = {q ∈ Q | es gibt eine Berechnung f¨ r a1 . gibt es einen NEA A mit ε-Uberg¨ngen und einem einzigen akzepa a tierenden Zustand mit L(A) = L(S) Beweis: Induktion nach der Struktur von S S=a∈Σ S=∅ S=ε → → → A1 a ε S = S1 + S2 → → ε ε A2 ε ε ε L(A) = L(A1 ) ∪ L(A2 ) S = S1 · S2 A1 A2 ε A1 L(A) = L(A1 ) · L(A2 ) S = (S1 )∗ → Kleene-Algorithmus L(A) = L(A1 )∗ DEA regul¨re Ausdr¨ cke a u Potenzmengenkonstruktion NEA ¨ Elimination von ε-Uberg¨ngen a ¨ NEA mit ε-Uberg¨ngen a ¨ 2. b2 . 1 q2 ε. qi ∈ δ(qi−1 . q2 . in einem einzigen Ubergang.bk . Eine akzeptierende u Berechnung f¨ r x ∈ Σ∗ ist eine Folge (q0 . bi ). qk ∈ F ¨ Satz: Zu jedem regul¨ren Ausdruck S. REGULARE SPRACHEN UND ENDLICHE AUTOMATEN ¨ 2. . 0 → q1 ε 1 0 ε. q1 ....4. einen ε-Ubergang durchf¨ hren. b1 . u bi ∈ Σ ∪ {ε}.. x = b1 b2 .4 NEA mit ε-Uberg¨ngen a Unterschied: δ : Q × (Σ ∪ {ε}) → 2Q ¨ Der Automat kann auch.¨ KAPITEL 2. statt einen Buchstaben zu lesen.. qk ) mit q0 = Startzustand. 0 q3 0 22 1 q4 . 0 1 q5 0 ε.1 Elimination von ε-Uberg¨ngen a ¨ ¨ Idee: Zusammenpacken einer Folge von ε-Uberg¨ngen mit dem nachfolgenden Ubergang wo ein Buchstabe a ¨ gelesen wir. 0) F ′ = {q|Rε (q) ∩ F = ∅} 2.. q0 . q2 ... und a ¨ einen Ubergang wo a gelesen wird. q5 } Gegeben: A = (Q. F ′ ) ohne ε-Uberg¨nge a ¨ δ ′ (q.Liste der zu bearbeitedenden Zust¨nde a while !isEmpty(Q) entferne einen Zustand r aus Q forall s aus delta(r. a) = q3 δ(r. Σ. } a a R := {q}. q3 . 0) = {q3 . } ¨ F ′ = {q ∈ Q | Von q aus kann der Automat A in k ≥ 0 ε-Uberg¨ngen einen akzeptierenden Zustand r ∈ F a erreichen } Der Automat A′ kann jede akzeptierende Berrechnung von A durch eine akzeptierende Berechnung ohne ε¨ Uberg¨ngen simulieren“ und umgekehrt. q4 }F ′ = {q1 .5. erreicht werden. Σ.. a) = {r ∈ Q | r kann im Automaten A von q aus durch eine Folge von k ≥ 0 ε-Uberg¨ngen.2. . q0 . epsilon): if !(s aus R) then R := R + {s} Q := Q + {s} → q0 ε ε q1 ε q4 ε q2 δ ′ (q. a) r∈Rε (q) Beispiel: δ ′ (q1 . a ” ¨ Berechnung der Menge Rε (q) = { Zust¨nde. MINIMIERUNG DETERMINISTISCHER ENDLICHER AUTOMATEN δ ′ (q1 . . 0) ∪ δ(q5 . q1 . die von q aus durch ε-Uberg¨nge erreichbar sind. 0) ∪ δ(q2 . 0) ∪ δ(q3 .5 Minimierung deterministischer endlicher Automaten 0 → 1 a 0 1 b 1 c 0 d e 1 f 1 0 0 1 g 0 1 1 0 h 0 23 .Ergebnismenge Q := {q}. q5 . 0) = δ(q1 . δ ′ . δ. F ) δ : Q × (Σ ∪ {ε}) → 2Q ¨ neuer Automat: A′ = (Q. δ(q. a q ≡ r ⇐⇒ ∀x ∈ Σ∗ . h} = K1 ∪ K2 δ(b. h} K1 K2 K3 δ(b. h} Neue Zerlegung: Q = {a} ∪ {c} ∪ {f } ∪ {b. 0) = h ∈ K2 δ(f. g. 0) = g ∈ K2 δ(h. 0) = a ∈ K1 δ(e. x) ∈ F ∧ δ(r. f. e. e. 0) ist K2 = {c} ∪ {b. 0) = g ∈ K2 ⇒ c unterscheidet sich vom Rest. 0) ∈ K4 24 . f. 0) ∈ K4 δ(g. je nachdem in welche (bisherige) Klasse δ(q. h} neue Klasseneinteilung: Q = {a} ∪ {c} ∪ {b. Zwei Zust¨nde heißen ¨quivalent. dann gilt (∗): ∃x ∈ Σ∗ : (δ(q. REGULARE SPRACHEN UND ENDLICHE AUTOMATEN 1. δ(q. x) ∈ F q ≡ r ⇐⇒ ∃x ∈ Σ∗ . wenn es keine Rolle spielt. Zusammenfassen von ¨quivalenten Zust¨nden. x) ∈ F ∧ δ(r. e. g. e. e. x) ∈ F ⇔ δ(r. g. 0) Zerlege K2 = A ∪ B. h}. 0) ∈ K1 ∧ δ({b. Diese Klasseneinteilung wird nach und nach verfeinert. g. 0) = c ∈ K2 δ(g. c. h} K1 K2 K3 K4 δ(b. a a a a in welchem der beiden Zust¨nde man ist. 0) ∈ K3 δ(h.¨ KAPITEL 2. Entfernen unerreichbarer Zust¨nde: Zust¨nde die nicht von q0 erreichbar sind a a 0 1 a b c 0 1 → 0 1 f 1 0 2. dass Zust¨nde in der gleichen a Klasse nicht ¨quivalent sind. x) ∈ F Der Algorithmus beginnt mit einer ganz groben Klasseneinteilung in zwei Klassen Q = F ∪ (Q − F ). a Invariante: Wenn q und r nicht in derselben Klasse sind. y) ∈ F ) ∨ (δ(q. 0) ∈ K2 δ(g. x) ∈ F (∗) (XOR) def 1 e 0 1 1 g 0 0 h ⊕ δ(r. 0) = g ∈ K2 δ(c. 0) ∈ K3 Zerlege K3 = {f } ∪ {b. da δ(c. 0) ∈ K3 δ(f. f. 0) ∈ K3 δ(e. g. g. 0) ∈ K4 δ(e. f. e. x) ∈ F ) / / Beispiel: Q = {a} ∪ {b. 0) ∈ K4 δ(h. wenn sich herrausstellt. f¨ r irgendein q ∈ Ki (unabh¨ngig von der Wahl von q). δ(g.. h} Neue Zerlegung: Q = {a} ∪ {c} ∪ {e} ∪ {f } ∪ {g} ∪ {b. 1) = e ∈ K4 δ(h. 25 . 1) = c ∈ K2 δ(e. r ∈ Ki . h} K1 K2 K3 K4 K5 K6 δ(b. 0) = a.1 Algorithmus zur Bestimmung des Minimalautomaten: • Beginne mit der Terlegung Q = K1 ∪ K2 in zwei Klassen K1 = F K2 = Q − F Q = K1 ∪ K2 ∪ ..5. ∪ Kj Solange es zwei Zust¨nde q. a a 2 • Der Minimalautomat kann in O(|Q| · |Σ|) Schritten berechnet werden.. 0) ∈ K6 δ(b. 1) ∈ K3 δ(h.2. a) = KLasse. δ(e. der die gleiche Sprache akzeptiert. o u a Satz: Zu jedem DEA (zu jeder regul¨ren Sprache) gibt es einen eindeutig bestimmten (eindeutig bis auf a Bennenung der Zust¨nde) Minimalautomaten. 10) ∈ F. o Zust¨nde des neuen Automaten: {K1 .. 1) = f ∈ K3 δ(g. a • Dieser hat unter allen ¨quivalenten DEA’s die kleinste Anzahl von Zust¨nden. MINIMIERUNG DETERMINISTISCHER ENDLICHER AUTOMATEN δ(b. a) und δ(r. r in derselben Klasse Ki gibt und einen Buckstaben a ∈ Σ mit: a Klasse δ(q. a) geh¨ren zur gleichen Klasse. δ(g. . 1) = c. 1) ∈ K3 Es ergibt sich keine weitere Verfeinerung 0 1 a 0 {b. ∀a ∈ Σ: δ(q. a) geh¨rt. Kj } a δ ′ (Ki .5. h} 1 c → e 0 1 f 1 0 1 0 1 g 0 a≡c h≡g c≡e h≡a h≡g wenn x = ε weil δ(h. zu der δ(q. a) geh¨rt (q ∈ Ki ) o Abbruchbedingung: ∀Ki ∀q. 0) = h und h ≡ a weil h ∈ F.. 1) = c ∈ K2 Zerlege K4 = {e} ∪ {g} ∪ {b. 1) = e und c ≡ e weil δ(c. 0) ∈ K6 δ(h. a ∈ F / weil δ(h. 10) ∈ F / 2. a ¨ Die Anzahl der Aquivalenzklassen ist in diesem Fall die Anzahl der Zust¨nde des Minimalautomaten. 0) in der selben Klasse?  δ(q3 . 1) ?    δ(q3 . δ. q3 } ∪ {q4 . ux) ∈ F ⇔ δ(δ(q0 . u). d. vx) ∈ F ⇔ vx ∈ L ¨ Folgerung: ≡L hat h¨chstens |Q| Aquivalnzklassen. u hat dort eine 0. q7 } ∪ {q5 }  δ(q1 . Jeder DEA hat mindestens so viele Zust¨nde. wie ≡L o a ¨ Aquivalenzklassen hat. 0) Man kann h¨chstens (|Q| − 1)-mal verfeinern o Zus¨tzlich: Verwalten der Kalssen Einteilung a        δ(q1 . Σ.5. 1) ein Verfeinerungsschritt O(|Q| · |Σ|)   δ(q2 . v). v) dann u ≡L v ∀x ∈ Σ∗ : ux ∈ L ⇔ δ(q0 . o. A. wenn die Nerode-Relation endlich viele Aquivalenzklassen hat. F ) u Wenn δ(q0 . wenn o a u ≡L v ⇐⇒ ∀x ∈ Σ∗ : ux ∈ L ⇔ vx ∈ L ¨ ¨ Diese Relation ist eine Aquivalenzrelation. v ∈ Σk . vx ∈ L u / 26 . q2 . a Beweis: ⇒“ ” L = L(A) f¨ r DEA A = (Q.¨ KAPITEL 2. u Definition: Zwei W¨rter u und v heißen Nerode-¨quivalent. u) = δ(q0 . Beispiel: L = {x ∈ {0. def 2. 1) ∪{q6 } q1 1 q2 1 q3 1 q4 2 q5 3 q6 4 q7 2 Entfernen der unerreichbaren Zust¨nde O(|Q| · |Σ|) a Es geht auch in O(|Q| · log |Q| · |Σ|) Zeit. F¨ r x = 0i−1 ux ∈ L. 0) δ(q2 . REGULARE SPRACHEN UND ENDLICHE AUTOMATEN [l]Q = {q1 . u v x = 1000100100000 ∈ L / = 1000110100000 ∈ L Beweis der Behauptung: u = v unterscheiden sich in der i-ten Position. v hat dort eine 1.2 Satz von Nerode ¨ Satz: Eine Sprache L ist genau dann regul¨r. B. Hopcroft: Die Nerode-Relation bez¨ glich einer Sprache L. q0 . u = v u ≡L v ¨ ⇒ ≡L hat mindestens 2k Aquivalenzklassen. x) ∈ F ⇔ δ(δ(q0 . x) ∈ F ⇔ δ(δ(q0 . |x| ≥ k} = Σ∗ · 1 · Σk−1 Behauptung: u. 1}∗ | k-letzter Buchstabe ist eine 1. Daher k¨nnen wir die Aquivalenzklassen [u]L = {v ∈ Σ∗ | v ≡L u} o bilden. |uv| ≤ n0 Sogar diese st¨rkere Aussage gilt a In Worten: In einer rgul¨ren Sprache hat jedes gen¨ gend lange Wort eine Stelle. w ∈ Σ∗ : x = u · v · w.. a δ: v ≡ ui ([v]L = [ui ]L ) ⇒ [va]L = [ui a]L ⇔ va ≡L ui a v ≡L ui . die Menge F h¨ngt nicht davon ab. v. . sodass ∀i: uv i w ∈ L Fall 1: v enth¨lt nur Einsen uv 0 w enth¨lt weniger Einsen als Nullen. . ∀i ≥ 0: u · v i · w ∈ L.. x) = δ(q0 . u a a ∀x ∈ L: |x| ≥ n0 ∃u. dass eine Sprache nicht regul¨r ist. Behauptung: δ(q0 . . a Annahme: L w¨re regul¨r ⇒ Pumping-Lemma ist anwendbar a a ∃n0 : W¨hle x = 0n0 1n0 a ∃x = uvw. δ(q0 . an der man pumpen“ kann. um zu zeigen.6 Das Pumping-Lemma f¨r regul¨re Sprachen F¨ r jede Regul¨re Sprache L gibt es eine n0 ∈ N (∀L ⊆ Σ∗ : L regul¨r ⇒ ∃n0 ∈ N). ε) = q0 = [ε]L IS: x = y · a a ∈ Σ.. [[ui ]L ] ≡ [v]L ⇒ (ui ∈ L ⇔ v ∈ L) ⇔ ∀x ∈ Σ∗ : (ui x ∈ L ⇔ vx ∈ L) ⇒ F¨ r x = ε: ui ∈ L ⇔ v ∈ L u 2) Der Automat akzeptiert L. a Beispiel: L = {0n 1n | n ≥ 1} nicht regul¨r.¨ ¨ 2. . a a ⇒∈ L Widerspruch / 00001 11 u v 1 w 00001|1 00001111 00001 1111 1 v2 i=0 i=1 i=2 ∈L . v = ε. a) = [ui a]L q0 = [ε]L F = {[ui ]L | ui ∈ L} zu zeigen: 1) Dieser Automat ist wohldefiniert : ¨ Das Ergebnis von δ. y). f¨ r y ist die Aussage bewiesen.. [uk ]L seine Aquivalenzklassen von ≡L Q = {[u1 ]L [u2 ]L . ya) = δ(δ(q0 . a u ” Das Lemma wird in der Regel dazu verwendet. v = ε.. a ∈ Σ ⇒ va ≡L ui a def ∀x ∈ Σ∗ : vax ∈ L ⇔ ui ax ∈ L ∀y ∈ Σ∗ : vy ∈ L ⇔ ui y ∈ L ↑ y = a · x F : z. a) = [ya] = [x] Weil Definition von δ unabh¨ngig von der Wahl des Representanten y in der Klasse [y] ist. DAS PUMPING-LEMMA FUR REGULARE SPRACHEN Beweis: ⇐“ ” ¨ [u1 ]L [u2 ]L . welcher Representant ui aus der Aquivalenza klasse [ui ]L gew¨hlt wird.z. [uk ]L } Σ δ([ui ]L . x) = [x]L Beweis durch Induktion nach |x| IA: |x| = 0 x=ε δ(q0 . 27 .6. a ! ⇔ui ≡L v u a 2. a) = u δ([y].. .        Ein Zustand q ′ muss mehrfach vorkommen       δ(q0 .. A..xn0 ) q0 u v δ(q0 .. .xJ )=q′ =q′ q′ ∃0 ≤ i < j ≤ n0 : δ(q0 ...xi ) = δ(q ′ . ε) = q0 δ(q0 . dessen L¨nge (n2 )2 < |uv i w| < (n2 + 1)2 ist. a Fall 3: v enth¨lt Nullen und Einsen a uv 2 w = u v v w enth¨lt Einsen. ⇒ Widerspruch a 0 0 Beweis: L sei regul¨r (L ∈ L3 ). x1 . .xn q0 Betrachte die Zust¨nde: a δ(q0 .. DEA mit L(A) = L a n0 := |Q| |x| ≥ 0 x = x1 x2 ......xj ) = q ′ 28 + + + + + + + + + + + q′ . REGULARE SPRACHEN UND ENDLICHE AUTOMATEN Fall 2: v enth¨lt nur Nullen .. x1 . a 001 001 ⇒∈ L / L = {0n 1n | n ≥ 1} ist nicht regul¨r a 2 ∈L n0 0n0 = uvw uv i w Die L¨ngen der W¨rter uv i w bilden eine arithmetische Folge mit Abstand |v| ≤ n2 a o 0 Abstand zwischen zwei Quadratzahlen: (n2 + 1)2 − (n2 )2 = ¨¨2 + 2(n2 ) + 1 − (n2 )2 = 2n2 + 1 > n2 (n2¨ 0 0 0) 0 0 0 0 > n2 0 0n0 +(i−1)·|v| Es gibt ein Wort uv i w. die vor Nullen stehen. x1 x2 ) ..... xi+1 .xi ).xj ) δ(δ(q0 .. x1 ) δ(q0 . x1 x2 .¨ KAPITEL 2.xi+1 . x1 .. y) = h(x) · h(y) (∀x. Durchschnitt.. Q − F ) akzeptiert L • Umkehrung (alle W¨rter von hinten nach vorne gelesen) o regul¨re Ausdr¨ cke Bsp.σ(xn ).: (a + b)(ab)∗ a∗ b∗ → b∗ a∗ (ba)∗ (a + b) a u Beispiel: k-te Buchstabe von rechts = 1 DEA ben¨tigt 2k Zust¨nde o a k-te Buchstabe von links = 1 DEA kommt mit k + 2 Zust¨nde aus.xn ∈ L} 29 . Komplement. Σ. dann ist auch L = Σ∗ − L regul¨r. uv w) = δ(q0 . D. ABSCHLUSSEIGENSCHAFTEN REGULARER SPRACHEN u = x1 ..7 Abschlusseigenschaften regul¨rer Sprachen a Satz: Die regul¨ren Sprachen sind abgeschlossen gegen¨ ber Vereinigung. uvw) ∈ F x i L = {01} n0 = 3 0 L = {0i 1j | i ≥ 0... z. *-Operation. B. 1}∗ | x enth¨lt gleich viele Einsen und Nullen} a L′ = L ∩ 0∗ 1∗ = {0n 1n |n ≥ 0} nicht regul¨r a nicht regul¨r a • Homomorphismus Definition: Ein Homomorphismus h zwischen Σ∗ und Γ∗ ist eine Abbildung h : Σ∗ → Γ∗ mit der Eigenschaft h(x. Beispiel: h(a) = 01 h(b) = ε h(c) = 01 h(x1 . a u Umkehrung. *-Operation: regul¨re Ausdr¨ cke a u • Komplement: a Wenn L regul¨r ist. Homomorphismen und inverse Homoa morphismen... Produkt..¨ 2.. ∗ Substution ist gegeben durch die Abbildung σ : Σ → 2Γ σ(L) = {y | y ∈ σ(x1 ) · σ(x2 )σ(x3 ). L2 ∈ L3 ⇒ L1 ∪ L2 ∈ L3 Beweise: • Vereinigung.xn ∀i ≥ 0: δ(q0 .. a • Durchschnitt: L1 ∩ L2 = L1 ∪ L2 • Durchschnitt. q0 .: L1 . Σδ.. j ≥ 0} 1 2 ⊲ q0 · 2. x1 x2 x3 . · h(xn ) xi ∈ Σ h(abaabaab) = 0101010101 • Substitution Definition: Bei einer Substitution σ wird ein Buchstabe a ∈ Σ durch die Sprache σ(a) ersetzt.. F ) akzeptiert L A′ = (Q. Vereinigung mit DEA ¨ Produkt zweier Automaten“ (Ubung) ” Anwendungsbeispiel L = {x ∈ {0. q0 .xn ) = h(x2 ) · h(x2 ) · .. δ. h. Produkt. y ∈ Σ∗ ) Ein Homomorphismus ist durch eine beliebige Abbildung h : Σ∗ → Γ∗ eindeutig gegeben (Σ∗ = Γ∗ ) ist nicht ausgeschlossen... Substitution mit regul¨ren Sprachen.7. a Beweis: DEA A = (Q.xj = ε w = xj+1 .xi v = xi+1 . } = (a(b + c))∗ —— σ(0) = a σ(1) = ab∗ b σ(L) = {aabbbbbaabaabbbb. Homomorphismus. Ra regul¨rer Ausdruck f¨ r σ(a).} = σ(a(ab∗ b))∗ = (aab∗ b)∗ Satz: L ⊆ Σ∗ regul¨r a σ(a). F ) δ ′ (q. x ∈ Σ b 2.. q0 ... ac. ε. Σ. ababac.. Beweis: requl¨re Ausdr¨ cke a u R: regul¨rer Ausdruck f¨ r L. δ.. abacacab. q0 . b 0 b 1 b b 0a 0 a neuer DEA A′ = (Q. δ ′ . c} σ(L) = {ababab. NEA: Uberpr¨ fen ob x ∈ L u • NEA. F ) 1 ⊲ 0. . .8 Zusammenfassung: regul¨re Sprachen a ¨ • DEA. a ∈ Σ a u a u Ersetze in R jedes Vorkommen eines Buchstaben a ∈ Σ durch Ra • inverse Homomorphismen h : Σ∗ → Γ∗ Homomorphismus Satz: (L ⊆ Γ∗ ) ∈ L3 ⇒ h−1 := {x ∈ Σ∗ | h(x) ∈ L} ∈ L3 Beispiel: h(a) = 0 h(b) = 10 abaab Beweis: DEA A = (Q. x) = δ(q.¨ KAPITEL 2. Γ. 1 a a. h(x)). regul¨re Ausdr¨ cke: Erzeugen der W¨rter aus L a u o 30 . REGULARE SPRACHEN UND ENDLICHE AUTOMATEN Beispiel: L = (01)∗ σ(0) = {a} σ(1) = {b.. a ∈ Σ seien regul¨r ⇒ σ(L) regul¨r a a Spezialfall: |σ(a)| = 1. 0.1 Definition von Grammatiken Beispiel: in Programmiersprachen. +. c. Σ. ⇒B → a|b|c|. o u ∈ (V ∪ Σ)∗ . /.. u → v ⇔ ∃(x. 1. . B → b. wenn v aus u dadurch entsteht. dann schreibt man u → v: ∃v0 . u2 ∈ (Σ ∪ V )∗ : u = u1 xu2 ∧ v = u1 yu2 Wenn v aus u in k ≥ 0 Schritten abgeleitet werden kann. Z.. ∃u1 ... v1 . y) ∈ P. U →9 Σ = {(. S → (S) S → S/S.3 Grammatiken 3. (A) arithmetische u Ausdr¨ cke u S → V. .. a.. . S → Z. arithmetische Ausd¨ cke: u • Zahlen und Variablen sind arithmetische Ausdr¨ cke u • wenn A und B arithmetische Ausdr¨ cke. dass man ein Vorkommen einer linken Seite (Pr¨misse) x einer a Regel (x. dann schreibt man u → {ε} v ist aus u in einem Schritt ableitbar. U → 1. → S + S. B → a.. S) beschriebene Spache L(G) ist L(G) = {x ∈ Σ∗ | S → x} ∗ 31 . b. . dann sind auch A + B.} V = {S.. P. S → S ∗ S. → vk = v eine Ableitung ∗ V + = V ∗ − {ε} Definition: Die von einer Grammatik G = (V. −. V ′ → V ′U B → c. ). A ∗ B. B} Beispiel: 5 + (13 ∗ 2) ∈ L(G) 3 ∗ (−4) ∈ L(G) / S → S + S → Z + S → U + S → 5 + S → 5 + (S) → 5 + (S ∗ S) → 5(S ∗ Z) → 5 + (Z ∗ Z) → 5 + (U Z ∗ Z) → 5 + (U U ∗ Z) → 5 + (1U ∗ U ) → 5 + (13 ∗ U ) → 5 + (13 ∗ 2) Definition: Eine Grammatik G besteht aus: • einer Menge V aus Variablensymbolen • einer Menge Σ aus Terminalsymbolen (Σ ∩ V = ∅) • einer Menge P von Ersetzungsregeln (Produktionen). 9. y) ∈ P durch die rechte Seite (Konklusion) ersetzt. .|9 B → B. P ∈ V + × (V ∪ Σ)∗ • einem Startsymbol S ∈ V W¨rter aus (V ∪ Σ)∗ nennt man auch Satzformen. V ′ . Z → U. A/B... A − B. S → S − S... ∗. ⇒U → 0|1|. V ′ → V ′ B... U... S. U → 0... Z → U.. vk : u = v0 → v1 → v2 → . . L0 . y ∈ (Σ ∪ V \ {S})∗ . #} ∪ Produktionen P : δ(q. L3 seien die Typ-0-Sprachen. P ) sei gegeben. y) | x ∈ V + . . Typ-1-Sprachen. a Beweis: ⇒“ G = (V. +1) δ(q. ⇐“ Gegeben TM M = (Q... Σ. trivial L3 ⊂ L2 ⊂ L1 ⊂ L0 regul¨r = kontextfrei = kontextsensitiv = rekursiv aufz¨hlbar a a L= {0n 1n } L= {0n 1n 0n } Die Sprachen aus L1 sind entscheidbar 3. ε)} D... h. 0) δ(q.. Γ. b. 3. GRAMMATIKEN 3. S. B... .. Ist x ∈ L(G)? ” Algorithmus: Probiere alle Ableitungen der L¨nge k systematisch durch und pr¨ fe..2 Die Chomsky-Hierarchie Nach Noam Chomsky (zeitgen¨ssischer Linguist) o • Typ-0-Grammatiken: beliebige Grammtiken • Typ-1-Grammatiken: monotone bzw. b.3 Typ-0-Sprachen (rekursiv aufz¨hlbare Sprachen) a Satz: Typ-0-Sprachen sind genau die rekursiv aufz¨hlbaren Sprachen. F ) ” Idee: q0 x ⊢ k1 ⊢ k2 ⊢ . x ∈ Σ∗ . kontext-sensitive Grammtiken P ⊆ {(x. die dem Bandalphabet entsprechen ∪{S} 32 . a • Typ-2-Grammatiken: kontextfreie Grammatiken P ⊆ V × (Σ ∪ V )∗ • Typ-3-Grammatiken: rechtslineare Grammatiken P ⊆ V × (ΣV ∪ {ε}) Beispiel: S → aT |bS T → +V T →ε Die beschriebenen Sprachen dieser Grammatiken entsprechen den regul¨ren Sprachen (es gibt auch linkslina eare Grammatiken) Entsprechend gibt es Typ-0-Sprachen. a) = (q ′ . die Konklusionen der Regeln sind mindestest so lang wie die Pr¨missen. 1. ← $kn−1 # ← $kn # ← . u Dieser Algorithmus akzeptiert gdw.... ob dabei x hera u auskommt. b. Typ-1-Sprachen.... L2 . δ.. ⊢ k2 Simulation durch G: x ← $q0 x# ← . |x| ≤ |y|} ∪ {(S. L1 . x ∈ L(G) (andernfalls kann er nicht terminieren)... ∀c ∈ Γ {Va | a ∈ Γ} neue Variablen. a) = (q ′ . ← S V = Q ∪ {$. . −1) ⇒ q ′ Vb → qVa ⇒ Vb q ′ → qVa ⇒ q ′ Vc Vb → Vc qVa . 2. f¨ r k = 0. a) = (q ′ . q0 .KAPITEL 3. Σ. ∀a ∈ Γ T → q. u Jede Ableitung eines Wortes x entspricht einer akzeptierenden Berechnung.a) S = q0 ⇒“ Gegeben: G = (V. a) = {q ′ | (q → aq ′ ) ∈ P } F = {q ∈ V | (q → ε) ∈ P } q0 = S Zust¨nde des Automaten entsprechen den Variablen der Grammatik. aber sie ist eine Typ-2-Sprache G: S → 0S1|ε S → 0S1 → 00S11 → 000S111 → 000111 33 . $VB → $. 3. a)} ∪ {q → ε | q ∈ F } q′ ∈δ(q. T } Σ = {a. F ) ” Gesucht: Typ-3-Grammatik f¨ r L(A) u G: V =Q Σ=Σ a q q′ q → aq ′ P = {q → aq ′ | q ∈ Q. q0 .4 Typ-3-Sprachen (regul¨re Sprachen) a Satz: Typ-3-Sprachen sind genau die regul¨ren Sprachen a Beispiel: S → aT |bS T → bT |bS|aS|ε V = {S. Σ.4. S) ” Gesucht: NEA A mit L(A) = L(G) A: Q=V Σ=Σ δ(q. q0 l¨schen u o ¨ VB # → #. ∀q ∈ F Endregeln: B-Symbole an den R¨ndern l¨schen. NEA) A = (Q. # l¨schen. Vx → x. a ∈ Σ. Symbole Vx in Terminalsymbole x a o o uberf¨ hren. q ′ = δ(q. P. δ. $. b} S → aT → abS → abbS → abbaT → abbabT → abbab ∈L(G) Beweis: ⇐“ Gegeben: DEA (bzw. Σ.¨ 3. TYP-3-SPRACHEN (REGULARE SPRACHEN) Anfangsregeln: Erzeuge eine beliebige Konfiguration mit einem akzeptierenden Zustand und gen¨ gend u vielen B-Symbolen rechts und links. a Berechnungen des Automaten werden durch Ableitungen der Grammatik dargestellt und umgekehrt. L = {0n 1n |n ≥ 0} ist keine Typ-3-Sprache. x∈Σ #→ε $q0 → ε Jede akzeptierende Berechnung f¨ r w ∈ Σ∗ kann in eine Ableitung von w transformiert werden. S → $T # T → T Va |Va T. |z| ≤ |x| . GRAMMATIKEN 3.5 Typ-1-Sprachen (kontextsensitive Sprachen) Bei alle Regeln ist die Konklusion mindestens so lang wie die Pr¨misse. außer bei der Ableitung S → ε... B. die h¨chstend so lang wie x. S → y.. X2 . U. S darf jedoch in keiner Konklusion vorkommen. x ∈ Σ∗ Frage: x ∈ L(G) (auch bekannt als das Wortproblem) Wenn x = ε x ∈ L(G) ⇔ (S → ε) ∈ P Andernfalls k¨nnen in der Ableitung von x nur Satzformen auftreten. aber o diese Ableitung ist in einem Schritt zu Ende. 1} S → ε|V0 T V1 V0 |010 T → V0 V1 U V0 → 0 U V1 → V1 U V1 → 1 ∗ U V0 → W V0 V0 |00 V1 W → W V1 V1 W → W V1 U 1 → 1U V0 W → V0 T U V1 → V1 U S → 0T 10 → 001U10 → 0011U0 → 0011W 00 → 00W 1100 → 00T 1100 → 000W 111000 → 00001111U000 → 000011110000 L(G) = {0n 1n 0n | n ≥ 0} Bemerkung: Man kann die Regeln einer kontextsensitiven Grammatik in die Form bringen. Beispiel: V = {S. . Daher muss die Schleife irgendwann terminieren x ∈ L(G) ⇔ x ∈ M 34 .. V1 } Σ = {0. o o M = {y ∈ (V ∪ Σ)∗ | |y| ≤ |x|. V0 .KAPITEL 3. s o l a n g e neue Elemente zu M dazugekommen s i n d . |x| ∗ |M | ≤ i=1 (|Σ| + |V |)i endlich. Folgerung: in einer Ableitung k¨nnen die Satzformen nicht schrumpfen. z. X1 X2 X3 → BX2 X3 BX2 X3 → BAX3 BAX3 → BAD ABC → X1 BC X1 BC → X1 X2 C X1 X2 C → X1 X2 X3 Satz: Typ-1Sprachen sind entscheidbar. T. X3 . a Ausnahme: S → ε ist erlaubt. dass immer nur eine einzelne Variable durch etwas Neues ersetzt wird. W. M := M ∪ {z} w i e d e r h o l e . Beweis: G. y = ε} M kann folgendermaßen induktiv konstruiert werden: Beginne mit M := {S} Schleife : ∀y ∈ M : ∀z ∈ (V ∪ Σ∗ ): y → z. ABA C Kontext ∗ ∗ ∗ ∗ A Kontext → ABAA01DA Beispiel: Regel ABC → BAD wird ersetzt durch: neue Variablen X1 . Gramatik. Subjekt (Im Deutschen kann das Pr¨dikat zerlegt werden ⇒ Analyse kann sehr schwer sein!) a 4.2 Dyck-Sprache D1 S → SS | (S) | ε ∗ S → SS → (S)S → (SS)S → ((S)S)S → (()S)S → (()(S))S → (()())S → (()())((S)) → (()())(()) ∈ D1 ())(() ∈ D1 / Klammertiefe: Dyck-Weg ( ( ) ( ) ) ( ( ) ) Definition: Der Weg mit n Schritten nach oben ր und n Schritten nach unten ց. Satz Subjektgruppe Pr¨dikatgruppe a Nominalgruppe Verb Adverb Pr¨dikat a Artikel Hauptwort war“ ” gestern“ ” Adjektiv das“ Wetter“ regnerisch“ ” ” ” Bei einer kontextfreien Grammatik wird bei der Syntaxanalyse ein solcher Syntax-Baum“ aufgebaut. 35 .4 Kontextfreie Sprachen (Typ-2-Sprachen) 4.1 Tiefenstruktur von Sprachen Das Wetter war gestern regnerisch. ” Gestern hat | es | geregnet. der oberhalb der x-Achse bleibt wird Dyck-Weg genannt. positive“ Dyck-W¨rter (= a..3 Kontextfreie Grammtiken als Gleichungssysteme Man kann eine kontextfreie Grammatik auch als Gleichungssystem.. o S S ( S ( S ε ) ( S ) S S ε ( ( ) S S S ε ) ) ∗ ∗ ∗ 36 . VP . ” VS = {x ∈ Σ∗ | S → x} = L VP = {x ∈ Σ∗ | P → x} VN = {x ∈ Σ∗ | N → x} sind eine L¨sung des Gleichungssystems (nicht unbedingt eindeutig).KAPITEL 4.. KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN) D2 ⇒ ([()()])[] ∈ D2 Dk . negative“ Dyck-W¨rter ) = a.. (= b o ” 4... VN sind unbekannte“ Sprachen. k verschiedene Klammerpaare. dessen L¨sungen unbekannte Sprachen sind o interpretieren VS = VS · VS ∪ {ε} ∪ a · Vp · b ∪ b · Vn · a VP = VP · VP ∪ a · VP · b ∪ {ε} VN = VN · VN ∪ b · VN · a ∪ {ε} VS . b}∗ | x enth¨lt gleich viele as wie bs} a a b b b S → SS|ε|aP b|bN a P → P P |aP b|ε N → N N |bN a|ε a b a a a b P. ) = b o ” N. a a b b S → SS | (S) | [S] | ε L = {x ∈ {a. . kann auf drei a Arten aus der Welt geschafft werden: 1. EINDEUTIGKEIT ∗ Rechtsableitung: S → SS → S(S) → S((S)) → S (()) → (S)(()) → (SS)(()) → (()())(()) entspricht der bottom-up-Syntaxanalyse Linksableitung: S → SS → (S)S → (SS)S → ((S)S)S → (()S)S → (()(S))S → (()())S → (()())((S)) → (()())(()) entspricht der top-down-Syntaxanalyse Die Beliebigkeit bei der Auswahl. dargestelltes Wort wird durch die Folge a der Bl¨tter gegeben. Bl¨tter sind Terminalsymbole. a S S ( S ε ) ( S S ε ) ( S S S ε ) ∗ S S S ( S ε anders arithmetische Ausdr¨ cke (am Beispiel 3 − 5 + 5): u S S 3 + 4 5 ) ( S S ε ( ) S S ε ) ¨ ¨ ¨¨ ¨ .4. | . welche Variable be einer Ableitung als n¨chstes ersetzt wird. wenn jedes Wort eine eindeutige Linksableitung / eine eideutige Rechtsableitung / einen eindeutigen Syntaxbaum hat. Syntaxbaum: Wurzel = S.4 Eindeutigkeit Definition: Eine kontextfreie Sprache ist eindeutig. Rechtsableitung: Es wird immer die rechteste Variable ersetzt 3.¨¨S 3 ¨ ¨¨ ¨ ¨ + 4 5 S 4.... Beispiel: S → if B then S | if B then S else S | while . Linksableitung: Es wird immer die linkeste Variable ersetzt 2. a ()()() kann durch 2 verschiedene Syntaxb¨ume / Linksableitungen / Rechtsableitungen dargestellt werden. if B1 then (if B2 then )S1 else S2 if B1 then (if B2 then S1 else S2 ) Grammatik nicht eindeutig! 37 .4. Kinder einses Variablenknotens sind die Symbole auf der rechten Seite einer Regel in der passenden Reihenfolge. Elimination von Terminalsymbolen auf der rechten Seite: • F¨ hre f¨ r jedes a ∈ Σ eine neue Variable Va ein. 38 . die abgeschlossen ist S → A|T A → if B then S | if B then T else A T → if B then T else T | while . bbeliebige Anweisung.. S → V( SV) V( → ( V) →) 2. C ∈ V A ∈ V. b ∈ Σ Ausnahme: Die Regel S → ε ist erlaubt. a (mehrdeutig) (eindeutig) 4. u Beispiel: S → (S). f¨ r die es keine eindeutige Grammatik gibt: u {0i 1j 01k | i = j ∨ j = k} = {0n 1n }0∗ ∪ 0∗ {1n 0n } 0n 1n 0n sind in beiden Teilsprachen“ enthalten. u u • Ersetze a durch Va auf allen rechten Seiten • F¨ ge Regeln Va → a hinzu. inklusive einer bedingten Anweisung mit else-Klausel. | andere Anweisungen. die eindeutig ist. erstelle eine neue Regel..... in der ein Vorkommen dieser Variablen a gestrichen wird. Elimination von ε-Regeln ∗ Konstruiere die Menge M aller Variablen A ∈ V . KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN) A. ” T.. Zerlegung von Regeln mit mehr als 2 Variablen auf der rechten Seite • Einf¨ hren von zus¨tzlichen Zwischenvariablen in mehreren Schritten u a Beispiel: A → BAAS. ” Solche Sprachen heißen inh¨rent mehrdeutig. aber S darf nie auf der rechten Seite einer Regel vorkommen. A → BC.5 Chomsky-Normalform Definition: Eine kontextfreie Grammatik ist in Chomsky-Normalform (CNF). a ¨quivalente Grammatik.KAPITEL 4.. S → S + S|S − S|Z S → Z|S + Z|S − Z Es gibt Sprachen.. bedingte Anweisung. A → BSV1 V1 → AV2 V2 → AS 3. A. A → b. F¨ r jede Regel... wenn jede Regel lediglich folgende Gestalt haben: 1.. f¨ r die A → ε.. die noch auf else“ wartet. Satz: Zu jeder kontextfreien Grammatik G gibt es eine Grammatik G′ in CNF mit L(G′ ) = L(G) − {ε} 1. B. die eine Variable u u aus M auf der rechten Seite enth¨lt. 2. u o • Die entsprechende Variablen werden dann zu M hinzugef¨ gt. CHOMSKY-NORMALFORM Beispiel: M := {V. f¨ ge u u u u daf¨ r die Regeln S → ε.5.. S = ε Betrachte die rechte Seite der ersten Regel dieser Ableitung. • Erstelle neue Regeln X → BC bzw. u • Anschließend entferne alle Regeln der Form A → B. nur die ε-Regel wird gestrichen. X → x f¨ r alle X ∈ VA . u X → Y Z: Eventuell wird Y oder Z in der Ableitung zu ε gemacht.4. Behauptung: F¨ r alle A ∈ M gilt u LA′ = LA − {ε} ∗ (LX = {s ∈ Σ∗ | X → s}) ∗ Begr¨ndung: X → S. u u Am Beispiel: U → V ′W ′ | V ′ | W ′ | ε U ′ → V ′W ′ | V ′ | W ′ V → W ′ | V ′V ′ | V ′ | ε V ′ → W ′ | V ′V ′ | V ′ .. A → x ∈ Σ berechne die Variablenmenge u VA = {X ∈ V | X → A}. Falls S ∈ M ist. u a Lasse die Regeln f¨ r die urspr¨ nglichen Variablen A ∈ M weg. S → S ′ ein u 4. wo das bereits ber¨ cksichtigt ist.. u • Erstelle f¨ r jede Variable A aus M eine neue Variable A′ . .. Elimination von K → L • F¨ r jede Regel der Form A → BC.. U. A} f¨ r u U →VW | V | W | ε V →W | VV | ε | V A→U | VV | ε | V (B → AU BV | ABV | AU B | AB | BV | U B | B) ↓ ↓ ε ε U →VW U →W ∗ • M wird initialisiert mit den Variablen A f¨ r die es eine Regel A → ε gibt. u F¨ r die n¨chsten Ableitungsschritte geht man genauso vor. ... → U V DU U ) B→V A AB a 39 . In diesem Fall enth¨lt die a neue Grammatik eine Regel X ′ → Y ′ oder X ′ → Z ′ . außer f¨ r S. u • Auf der rechten Seite aller Regeln wird wird jede diese Variablen A durch A′ ersetzt. • Die Regeln f¨ r A’ sind dieselben wie f¨ r A. u ∗ • Durch das Aufstellen neuer verk¨ rzter Regeln k¨nnen neue Regeln der Form A → ε entstehen. A→B→C→A→B→B→C→A→B→C →D (U V A U U → U V BU U → . Beispiel: Angenommen f¨ r alle Regeln K → L ergeben folgenden Zusammenhang: u ∗ A B D C E In einer Ableitung kann eine Kette von Anwendungen derartiger REgeln vorkommen. ...sn s ∈ L(G) ⇔ s ∈ V1n Berechne Mengen Vij induktiv. a A → BC. KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN) D → AB VD = {A. ∃k: i ≤ k ≤ j: B ∈ Vik ∧ C ∈ Vk+1. B → AB. B. C → AB. S 2 S P 3 − − M 4 − − − P 5 − − − − M.. S} V11 = {M. si ..sj . +} S → 0 | SP P → MS | + M → 0 | 1 | PP Ist das Wort s = 0 + 1 + 0 = s1 s2 s3 s4 s5 in der Sprache L(G)? i. E} A → AB.sj . Grund: CNF-Grammatik erf¨ llt die Forderungen von Typ-1-Grammatiken u 4... S} V12 = {S} V22 = {P } V23 = ∅ V33 = {M } oder 40 .j } vorher berechnet Beispiele: Gegeben sei folgende Grammatik in CNF: Σ = {0. Folgerung: Typ-2-Sprachen sind Typ-1-Sprachen. (D → AB).6 Algorithus von CYK“ ” Der CYK-Algorithmus (Cocke. → si si+1 . D. V12 = {S} V13 = ∅ oder k = 2 k=1 oder k = 2 oder V11 = {M. E → AB Die Menge VA k¨nnen durch umgekehrte Graphensuche bestimmt werden: Suche alle Variablen o X. Kasami. C. (basiert auf dem Prinzip dynamischer Programmierung) Eingabe: s = s1 s2 . von denen aus A erreichbar ist.KAPITEL 4.. 1... Teilprobleme s1 s2 ... Younger) wird zur L¨sung des Wortproblems f¨ r kontextfreie o u Sprachen in CNF angewandt. Ist s ∈ L(G) ∗ Vij := {X ∈ V | X → si si+1 .. j 1 2 3 4 5 1 M.sn ∈ Σ∗ .sj Vii = {X | (X → si ) ∈ P } Vij = {X | ∃(X → BC) ∈ P. S ⇒ 0 + 1 + 0 ist nicht in der Sprache L(G)..sj } (1 ≤ i ≤ j ≤ n).....sk |sk+1 ... nach L¨nge j − i + 1 der Teilkette si . ] Optional. j 1 2 3 4 5 1 M.7. ⇒ O(n3 ) o 4..4.} beliebig viele Wiederholungen (auch 0) des Inhalts [. S 0 2 S P + 3 S M P + 4 S − M P + 5 S M P − M.. (ERWEITERTE) BACKUS-NAUR-FORM (E)BNF S S S 0 P + P + s=0+++0 i.j−1 P M P + S 0 {X | ∃(X → BC) ∈ P : B ∈ Vik ∧ C ∈ Vk+1. S 0 i < j: Vij = k=i.. Der Inhalt kann auch weggelassen werden. 41 . Jede Berechnung ist eine Schleife uber u o ¨ h¨chstens n Werte k...7 (Erweiterte) Backus-Naur-Form (E)BNF Beispiel: (hypothetische) Grammatik eines Ausschnitts einer Programmiersprache arithmetischer Ausdruck ::= Term { Additionsoperator Term } ↑ Variable der Grammatik → Additonsoperator ::= Terminalsymbol oder“ Terminalsymbol ” + | − Term ::= Faktor { Multiplikationsoperator Faktor } Multiplikationsoperator ::= ∗ | / Faktor ::= Zahl | Variable | ( Arithmetischer Ausdruck | Funltionsaufruf ) Funktionsaufruf ::= Name () | Name ( Argumentliste ) Argumentliste ::= Argument {. Argument } ::= | { } [ ] Metasymbole {..i+1.j } Laufzeit: Es m¨ ssen h¨chstens n2 Mengen Vij berechnet werden... .8 Pumping-Lemma f¨r kontextfreie Sprachen u F¨ r jede kontextfreie Sprache L gibt es eine Schranke n0 ∈ N... a {abc} ↔ (abc)∗ [abc] ↔ (abc + ε) als regul¨rer Ausdruck a |↔+ 4. v.enth¨lt mehr Uberg¨nge zwischen 0 und 1 als z a a 2 2 ¨ ⇒yz uv w enth¨lt mehr als 2 Uberg¨nge a a ⇒yz 2 uv 2 w ∈ L / Fall 2: v enth¨lt 0 und 1 analog. u Der Ableitungsbaum ist ein bin¨rer Baum a Wenn jeder Weg von der Wurzel zu einem Knoten.. a ¨ z 2 . w ∈ Σ∗ : x = yzuvw ∈ L ∧ (∀i ≥ 0)yz i uv i w ∈ L ∧ z. z. 1n0 . a a a a ⇒yz i uv i w ∈ L f¨ r i = 1 / u ⇒ L ist nicht kontextfrei Beweis: Sei L(G). mindestens ein Block ¨ndert seine L¨nge nicht. KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN) ¨ { } [ ] m¨ ssen bei der Ubersetzung in eine kontextfreie Grammatik aufgel¨st werden. o yz i uv i w. z 3 . dann |x| ≤ 2h−1 a v 1 2 3 4 X a X 0 X X S X X X 1 b X c 42 .mindestens ein Block ¨ndert seine L¨nge. u.KAPITEL 4. u ∀x ∈ L: |x| ≥ n0 ∃y. aus dem ein Terminalsymbol entsteht. a Also ist z und v jeweils in einem der drei Bl¨cke 0n0 . G in CNF Ein Ableitungsbaum f¨ r x mit |x| = n hat n − 1 innere Knoten A mit je zwei Kindern. 0n0 enthalten. v = ε z Beispiel: L = {0n 1n | n ∈ N} Annahme: L sein kontextfrei ⇒ n0 x = 0n0 1n0 0n0 = yzuvw Fall 1: z enth¨lt sowohl 0 als auch 1.. ≤ h Variablenknoten enth¨lt. durch Einf¨ hren von u o u neuen Variablen und zus¨tzlichen Regeln. Typ-1-Sprachen.. . L1 . 43 . die unter diesen beiden a Knoten h¨ngen heißen T1 und T2 a T2 ⊂ T1 A T2 A y z u v w ∗ S → yAw T1 : A → zAv T2 : A → u ∗ ∗ (zv = ε) S → yAw→yzAvw → yzuvw beliebig oft wiederholen S → yAw → yuw (= yz 0 uv 0 w) (i=0) ∗ ∗ ∗ ∗ ∗ S → yAw → yzAvw → yzzAvvw → yz i Av i w → yz i uv i w (i≥1) ∗ ∗ ∗ ∗ ∗ Folgerung: Die Chomsky-Hierarchie ist echt: L0 . L1 ∩ L2 = L1 ∪ L2 (de-Morgan) Wenn kontextfreie Sprachen abgeschlossen bez¨ glich Komplement w¨ren. ·. dann w¨re sie auch abgeschlossen u a a bez¨ glich ∩ u Das Komplement von {0n 1n 0n } ist kontextsensitiv.9. L3 seien die Typ-0-Sprachen..4. ∗ u u Kontextfreie Sprachen sind nicht abgeschlossen bez¨ glich ∩ und Komplement Beweis: L1 = {0n 1n 0m | m.9 Abschlusseigenschaften kontextfreier Sprachen Satz: Kontextfreie Sprachen sind abgeschlossen bez¨ glich ∪. ABSCHLUSSEIGENSCHAFTEN KONTEXTFREIER SPRACHEN Wenn |x| > 2h−2 . n ∈ N}. S n := 2|V |−1 + 1 funktioniert T1 Die beiden Teilb¨ume. L3 ⊂ L2 ⊂ L1 ⊂ L0 regul¨r = kontextfrei = kontextsensitiv = rekursiv aufz¨hlbar a a L= {0n 1n } L= {0n 1n 0n } ⊂ entscheidbare Sprachen Halteproblem 4. L2 . der h Variablenknoten enth¨lt a h := |V | + 1 → Dieser Weg muss eine Variable A mehrfach enthalten. n ∈ N} L1 ∩ L2 = {0n 1n 0n | b ∈ N} nicht kontextfrei. L1 = {0n 1m 0m | m. dann gibt es einen Weg von der Wurzel. 10 Entscheidungsprobleme kontextfreier Sprachen Seien G1 . dann setze M2 = M2 ∪ {B. den nur das erste Variablensymbol wird durch etwas anderes ersetzt. von S nicht ereichbar. C ∈ M gibt. C}. die von S aus erreichbar sind.. dass G1 in CNF vorliegt. u u 2 Gr¨nde: 1. S → AB → ABA → . Ubung 11) Wir nehmen an. G2 kontextfreie Grammatiken • • • • • • • • L(G1 ) = 0? L(G1 ) = 0? Ist L(G1 ) regul¨r? a L(G1 ) = Σ∗ ? L(G1 ) = L(G2 )? L(G1 ) ⊆ L(G2 )? L(G1 ) ∩ L(G2 ) = ∅? L(G1 ) = ∅? entscheidbar entscheidbar unentscheidbar unentscheidbar unentscheidbar unentscheidbar unentscheidbar (ohne Beweis) (ohne Beweis) (ohne Beweis) ¨ (s. • Wiederhole. u 2.KAPITEL 4. wenn sie in keiner Ableitung eines Wortes ∈ Σ∗ vorkommt. a Beispiel: A → AB (einzige Regel f¨ r A) u • Menge M : Initialisiere M := {A ∈ V | (A → x) ∈ P } • Wenn ses eine Regel A → BC mit B. ¨ S →¨ AC (A ∈ M ) M2 := Menge der Variablen. bis keine neuen Varaiblen mehr in M aufgenommen werden. Definition: Eine Variable heißt ¨ berfl¨ ssig. h. • • • • Initialisiere M2 := {S} Wenn es eine Regel A → BC mit A ∈ M2 gibt. dann setzte M := M ∪ {A}. u ¨ • Entferne die Variablen in M und alle Reglen. u 4. Aus der Variable l¨sst sich kein Terminalwert erzeugen. Anderung nur am Anfang. KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN) 4. Wiederhole. bis M3 sich stabilisiert. Das Ergebnis ist eine Grammatik ohne Uberfl¨ ssige Variablen. Variablen in M = V − M sind uberfl¨ ssig aus dem zweiten Grund.11 Kellerautomaten Typ-0-Sprachen (Typ-1-Sprachen Typ-2-Sprachen Typ-3-Sprachen Linksableitung: S → ABC → bAABC → bbAAABC → bbAABC → bb B BSBC ⇐⇒ ∼ ⇐⇒ ⇐⇒ Turingmaschinen Turingmaschinen mit linearem Platzbedarf) Kellerautomaten endliche Automaten Terminalsymbole des endg¨ ltigen Wortes u aktuelle Variable zuk¨ nftige Variablen“ u ” ¨ D. ¨ Streiche Variablen in V − M2 . 44 . die M enthalten aus der Grammatik.. 00)} δ(q0 . 0Z0 )} δ(q0 . Definition: Eine Konfiguration eines Kellerautomaten ist ein Tripel (q.. 1. 0) = {(q0 . #. Z0 ) = {(q1 . ε.. z1 . z) ∈ δ(q.wn ∈ Σ∗ . Z0 } δ(q1 . 0. Z0 ) (b) ⊢ (q2 . 0. 1Z0 )} δ(q0 ... q1 .. w1 . Z0 ){q1 .zk ) ⊢ (q ′ .. o Es gibt zwei Arten von Kellerautomaten: a) solche. 0Z0 ) ⊢ (q1 . 1}} Σ = {0. 1#10. . Z0 ){q2 . Z0 ) ⊢ (q0 . 0) = {(q0 . PDA) hat • • • • • • ein Eingabealphabet Σ eine Zustandsmenge Q ein Kelleralphabet Γ ein Bodensymbol Z0 ∈ Γ einen Anfangszustand q0 ∈ Q ∗ ¨ eine Ubergangsrelation δ: Q × (Σ ∪ {ε}) × Γ → 2Q×Γ (q ′ . augenblicklicher Zustand. noch nicht gelesener Teil des Eingabewortes und • z ∈ Γ∗ . 1) = {(q0 . z) mit • q ∈ Q.. die mit leerem Keller akzeptieren. #10. 1) = {(q1 .. dann kann er in den Zustand q ′ wechseln und die Spitze des Kellers durch z ersetzen (z = ε: Das oberste Symbol γ wird gel¨scht). #} Γ = {0. usw. w1 w2 . Z0 ) = {(q0 . ε} a)δ(q1 . 1. z1 ). 01#10. b) solche... z) ∈ δ(q. 01)} δ(q0 ...zk ) ⊢ . 11)} δ(q0 .. 0. Inhalt des Stapels (Spitze ist links..zk ) ⊢ (q ′ . as obere Kellersymbol γ ist. 0. Z0} a) Q = {q0 . KELLERAUTOMATEN Definition: Ein (nichtdeterministischer) Kellerautomat (Push-down automaton. ε} a)δ(q1 ... Z0 )} δ(q1 . 1.4.) Beispiel: (a) ⊢ (q1 . transitive reflexive H¨ lle von ⊢ u ∗ falls (q ′ . 1. Z0 ) = {(q0 . 0) = {q1 ..wn ... ε) (q0 . z1 .11. die durch eine Menge F ⊆ Q von akzeptierenden Zust¨nden akzeptieren a Beispiel: L = {w#wR | w ∈ {0. zz2 . w1 . 1) = {(q0 .. und er den Buchstaben a liest (bzw.wn . 1. 0)} δ(q0 . • w1 . 1) = ∅ . γ) bedeutet: Wenn der PDA im Zustand q ist..zk ) (q. nichts liest.wm . 0. 10)} δ(q0 . a. w2 . 0Z0 ) ⊢ (q0 .wn . zz2 . 0.. #. 10Z0 ) ⊢ (q1 . #. w1 . 0) = {(q1 . ε.. ε. 10.wn . 10Z0 ) ⊢ (q1 . w1 w2 . ε} δ(q1 .. . z1 ) 45 .. 1)} δ(q0 .. q2 } mit F = {q2 } δ(q0 . ε.. falls a = ε ist). 1) = {q1 . w1 ∈ Σ falls (q ′ . z) ∈ δ(q. ε. q1 } b) Q = {q0 . Z0 ) Nachfolgerelation ⊢ f¨ r Konfiguration u (q. 1. ε.. .. B1 . ¨ • Das zus¨tzliche Kellersymbol stellt sicher. dass M ′ nicht nur deshalb akzeptiert. Z0} δ(q0 . q0 . F¨ r jede Regel A → B1 B2 . Beweis: ⇒“ Seien M = (Q. γ)} f¨ r γ ∈ {0. wo der Keller geleert wird. 1}∗} Σ = {0. A) ein. Σ. w. BC) ⊢ (q0 . die Grammatik ist in CNF.) o D. ε. Z0 ) ⊢ (q ′ . ε). Automat akzeptiert mit leerem Keller. Satz: Die kontextfreien Sprachen sind genau die Sprachen. x. F ) sei ein Automat. γ ∈ Γ. Γ. Wenn M in einem akzeptierenden Zustand u a ubergehen.. Z0 ) = {(q0 . Γ = V. 1} Γ = {0.weiter wie bisher ⊢ (q0 .. Σ. Z0 . 110. unser obiges Beispiel ist eigentlich ein DPDA Beispiel: L2 = {wwR | w ∈ {0. ⇐“ Gegeben: Kellerautomat. 10. γ) = {(q1 . a ∈ Σ: |δ(q. z). 110.. q ′ ∈ F. u u F¨ r jede Regel A → u ∈ Σ f¨ ge (q0 . ε.. Z0) ⊢ (q0 . ohne die Eingabe gelesen wird. . h.Bk ∈ V ∗ ) ∈ P } δ(q0 .. Z0} u δ(q1 . δ ′ . der mit leerm Keller akzeptiert. 0110. vuv. a. q ′ ) Tripelkonstruktion“ ” 46 . δ. der nach b) akzeptiert ′ ′ ′ δ ′ (q0 . γ) wie oben (w ∈ {0. 110. ABC) ⊢ (q0 . 0Z0) ⊢ (q1 . Z0 . u ∈ Σ Der Kellerautomat kann nun genau die Linksableitung der Grammatik nachbilden. AAC) ⊢ . Z0) ⊢ (q0 . u u δ(q0 . (q0 . 1}) δ(q0 . Satz: Die PDAs. Z0 ) ⊢ (q ′ . 1. q ′ ∈ Q} b) L(M ) = {x ∈ Σ∗ : (q0 . weil M den a Keller leert. ε. Z0 = S. Γ ∪ {Z0 }. akzeptiert durch F ⊆ Q von akzeptierenden Zust¨nden. Z0 Z0 )} ′ δ ′ (q. γ)| + |δ(q. A) := {(q0 . ε)} ∗ ∗ ¨ • Alle Uberg¨nge von δ werden ubernommen. V = Q × Γ × Q ∪ {S} Variablen haben die Form (q. 0Z0 ) STOP. Γ. die nach (a) und nach (b) akzeptieren. der nach b) akzeptiert ” neuer Automat M ′ : • f¨ gt ein zus¨tzliches unterestes Kellersymbol ein. uvuv.Bk ) ∈ δ(q0 . ε. Z0 . 0Z0) ⊢ (q0 . ǫ. z ∈ Γ∗ } Definition: Ein PDA ist ein deterministischer Kellerautomat (DPDA) wenn: ∀q ∈ Q. 10Z0) ⊢ (q1 . und ” ′ ′ ′ ′ ′ M = (Q ∪ {qF . ε.. q0 . q0 }. KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN) Die vom PDA M akzeptierte Sprache ist: a) L(M ) = {x ∈ Σ∗ : (q0 . ε. Σ. a ¨ ′ ′ • M f¨ gt ein zus¨tzliches Kellersymbol Z0 als unterstes ein. F = {qF }) ein PDA.Bk ) | (A → B1 . Σ.. ε.. γ)| ≤ 1 (Dann gibt es zu jeder Konfiguration h¨chstens eine Nachfolgekonfiguration. A) := {(q0 . a ” Gesucht: Grammatik G.. Z0 ) = {(qF . A) ein. q0 . akzeptieren dieselbe Klasse von Sprachen. 10. u a ⇐“ M = (Q. vuv. 10Z0) ⊢ . ε) | (A → u) ∈ P }. x. S) ⊢ (q0 . {q0 }. u. die von Kellerautomaten akzeptiert werden. u.Bk f¨ ge (q0 .) wie oben. Z. uvuv. δ) ein PDA.. 0110. ε) ∈ δ(q0 .KAPITEL 4. 1.. B1 . Beweis: ⇒“ ” • • • Wir nehmen an.. S → ABC → uBC → uAAC → uAC → uvC → uvBC → uvuC → uvuv (q0 . a a Beispiel: L = {wwT | w ∈ {0. Z) ⊢ (q ′ . Regeln: F¨ r alle (q ′ . sobald Zi als oberstes Startsymbol erscheint. q3 )(q3 . z) = {(q0 .. q1 ) → 0(q0 . 0. 0. q0 ) → 0(q0 . werden geraten. 1}. ε. 0)} (q0 . q ′ ) → w ∈ Σ∗ ⇔ (q. zl . Z3 .) • qi>1 ist der Zustand. Z0 . q0 ) (q0 . q1 )(q1 . Z0 ) ⊢ (q1 . q1 ) (3) am Beispiel δ(q0 . q1 ) → 01(q1 . q2 .. 10. Z0 . 0Z0) ⊢ (q1 . z1 . 0. 0. q0 ) → 0(q0 . xz)}. Z0 . z) u (q. z) mit |z ′ | ≥ 1. ql−1 . w. 10. q ). q ) → w ⇐⇒ ∃¯: (q0 . wk+1 . ε. Z0 .. Z1 Z2 . z.. ε. Z0 . q0 )(q0 . x) = {(q1 .. .. q ′ ) → a Behauptung: (q. Z0 . q1 )(q1 . Zl . Z2 .(ql . 0. Z0 . q1 ) (2) am Beispiel δ(q0 .. q3 . Z0 . ε. 1. w1 .. Z0) ⊢ (q0 . Z0 ) ⊢ (¯. ε)} Also werden die folgenden Produktionen gebildet (1) am Beispiel δ(q0 . q1 } δ(q0 . q0 )(q0 .. 0. 0. 0. 0) = {(q1 . 1. q ) f¨ r alle q ∈ Q ¯ u ¯ Aus der Behauptung folgt: L(G) = L(M ) q ¯ q q w ∈ L(G) ⇔ S w⇔ ∃¯: (q0 . q0 ) → (q1 . 1}∗ } Q = {q0 .. ε) S → (q0 . • q2 . q2 )(q2 . Beweis durch Induktion nach der L¨nge der Ableitung bzw... x ∈ {x ∈ {0. 1. 0. x. a. q1 ) → 0110 Annahme: Automat akzeptiert durch leeren Keller Startregeln: S → (q0 .. 10Z0) ⊢ (q1 . q1 ) → 01(q0 . der in der weiteren Rechnung angenommen wird. q1 ) → 011(q1 . z) = {(q1 . ε. 10Z0) ⊢ (q1 . ε. q1 )(q1 . ε) ⇔ w ∈ L(M ) ∗ ∗ Beh. Z0 ) = {(q0 . ε. Z1 . Z0 ) ⊢ (q1 .. 0Z0) ⊢ (q0 . Z0 . Z0 . 0. q1 )(q1 ..wn .11.. x ∈ {0. 0)} (q1 . ε. q ¯ (a ∈ Σ ∪ {ε}) (1) (2) (3) 47 . Z. 0. x. a.Zl ) ∗ (die ersten k Symbole sind gelesen. z. KELLERAUTOMATEN ∗ Idee: S → w1 w2 . Z0 . q1 )(q1 . z0 ) = {(q1 . q1 )(q1 . 0. z0} δ(q0 . Z0 . q1 )(q1 .. w. q1 )(q1 . q1 ) → (q1 . Z ′ = z1 z2 . 0Z0 )} (q0 . q1 ) −→ (q0 .zl u ¯ (q. q) → a(q ′ . q0 ) −→ (q0 . ε) ∈ δ(q. Z0 . ∗ ∗ ∗ ∀q1 . 0) = {(q1 . q2 ). 0. 0. 0110. 1.(ql−1 . 1}} δ(q1 . z)} δ(q1 . ε)}. q1 ) → 1 (q0 .wn . q1 ) → 0110(q1 . ε) Der Automat hat w gelesen und sieht das erste Mal. q0 ) (q0 .4. 110. Z0 . . z ′ ) ∈ δ(q. ql+1 ) das soll folgende Rechnung widerspiegeln (q0 .wk (q1 . Z0 . nach der L¨nge der Rechnung. q4 ). z2 . q1 ) → 0(q0 .. Z0 .. q1 ) → 0(q0 . z ∈ {0. was unter Z auf dem Stapel ist. ¯ F¨ r alle (q ′ . q1 )(q1 . .: M1 sei ein PDA f¨ r die kontextfreie Sprache L1 . δ(q. die von einem deterministischen Kellerautomaten mit einer akzeptierenden Zustandsmenge akzeptriert werden. Z)} δ((q1 . a. q2 ). sind genauso m¨chtig wie Turingmaschinen. %w1 w2 . a. Z) := {((q ′ . ε. a.14 Deterministische Zweiwege-Kellerautomaten ⇐⇒ K1 K2 K1 K2 Kellerautomaten mit zwei Kellern. Z1 Z2 . δ2 (q2 .12 Abschlusseigenschaften kontextfreier Sprachen gegen¨ber regul¨ren u a Sprachen Satz: Die kontextfreien Sprachen sind abgeschlossen gegen¨ ber dem Durchschnitt mit regul¨ren Sprachen. a Deterministische Zweiwege-Kellerautomaten k¨nnen auf dem Eingabeband beliebig nach links uder nach rechts o fahren. 4.. z ′ ) ∈ δ1 (q1 . q2 ). z ′ : (q ′ .Zk . a ∈ Σ ∪ {%. aber nicht deterministisch kontextfrei Bemerkung: Deterministisch kontextfreie Sprachen sind abgeschlossen unter Komplement..KAPITEL 4. z ′ ) ∈ δ1 (q1 . 1}∗} ist kontextfrei..13 Deterministische kontextfreie Sprachen Definition: Eine deterministische kontextfreie Sprache ist eine Sprache. Z))} q0 = F = F1 × F2 Produkt der Automaten: Der neue Kellerautomat M simuliert M1 und A2 gleichzeitig: ” L(M )) = L(M1 ) ∩ L(A2 ) 1 2 (q0 . $}. q2 ). +1. Z) := {((q ′ . z) = (q ′ . u • PDA: M mit Q = Q1 × Q2 δ((q1 . KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN) 4. der durch akzeptierende Zust¨nde akzeptiert. q0 ) a∈Σ 4. b ∈ {0. Beispiele: • {0n #1n | n ∈ N} ist deterministisch kontextfrei • {w#wR | w ∈ Σ∗ } ist deterministisch kontextfrei • {wwR | w ∈ {0. A2 sei ein u a DEA f¨ r L2 . aber nicht unter Umkehrung.wn $ Lesekopf Ausgangskonfiguration 48 . a)). −1}: Bewegung des Kopfes Die Eingabe ist durch % und $ auf dem Eingabeband begrenzt. u a Bew. b). ε. z ′ ) : (q ′ . i ) i f i n A r b e i t [ q. u.14. ⇒ Kellerautomat terminiert nicht.. • (A) Vergleiche die Symbole von x mit dem Sybol auf dem Stapel. i f ENT[ q. q ′ ∈ Q. DETERMINISTISCHE ZWEIWEGE-KELLERAUTOMATEN 4. i ] := true .. Z ∈ Γ.wn $ 0 1 ↑ ↑ .. k (q ′ . i ] = 0 then return ENT[ q. wi . . j ≤ n + 1 Wenn der Automat im Zustand q an Position i ist. die Symbole werden vom Stapel gel¨scht. Z. o Problem: Bei rekursiven Aufrufen kann die Laufzeit ∞ sein. z. ⇒ Algorithmus terminiert nicht. Satz: Jede Sprache. Z. v ∈ (Σ0 )∗ } % x # $ . o • Wenn # gelesen wird → Teilwort vorhanden → akzeptiere • Bei einem Konflikt fahre zur¨ ck zum Anfang und f¨ lle den Stapel mit den Symbolen von x auf. Z. (q ′ . Z. z.. von rechts nach links • Fahre zur ersten Position von x . die von enem deterministischen Zweiwege-Kellerautomaten akzeptiert wird. Z. dann ist er zu dem Zeitpunkt. o Beweis: Entladefunktion Eingabe: %w1 . j) i n A r b e i t [ q. j) q. i] der Gr¨ße O(n) sobald sie berechnet o wurden (Initialisiere zu 0). memorization) Laufzeit: O(n) Jeder Eintrag von ENT wird h¨chstens einmal berechnet. • Kopiere y auf den Stapel. 2. Die Technik heißt Tabellieren (engl. Z.1 Teilwortproblem Eingabe: x#y Frage: Kommt das Muster x im Text y vor? L = {x#uxv | x. Zl . i ] := f a l s e return ( q ’ . und das oberste Stapelsymbol Z ist. L¨sche u u o erstes Symbol des Stapels und gehe zu (A). Folgerung: Teilwortproblem ist in linearer Zeit l¨sbar.Zk . Z. i ] i n A r b e i t [ q. i ] := (q. i) aufgerufen ist.4. i) = (q ′ . ↑ n+1 ent(q..14. Z.. kann ein rekura siver Aufruf mit denselben Parametern (q. // Wort wir d n i c h t a k z e p t i e r t 49 .. Z1 . . j ) ENT[ q. Der Stapel wird dabei immer weiter wachsen oder konstant bleiben. j) := e n t ( q ′ . b) := δ(q. i ] then STOP .. wo das darunterliegende Stapelsymbol sichtbar wird. .. kann in linearer Zeit von einer Registermaschine (RAM) entschieden werden.. in Zustand q ′ und an Position j e n t ( q. 0 ≤ i. j ) Idee: Speichere die Werte der Entladefunktion in einem Feld ENT[q. i) gestartet werden. i) unendlich oft wiederholt. weil sich die Konfiguration (q. z. W¨hrend ent(q. Z) j := i + b for l := 1. Z. Wir k¨nnen annehmen. dass der Kellerautomat. wenn er ein Wort akzeptieren will. z.KAPITEL 4. Wort wird akzeptiert ⇐⇒ ent(q0 . i] (am Anfang false) wird endlose Rekursion vermieden. z0 . in einen akzeptierenden o Zustand geht und dann der Keller leert. j) mit q ′ ∈ F 50 . KONTEXTFREIE SPRACHEN (TYP-2-SPRACHEN) Durch ein Boolsches Feld inArbeit[q. 1) = (q ′ . Documents Similar To GTI MitschriftSkip carouselcarousel previouscarousel nextfolien-kapitel-10.pdftut07_2.pdfTh-Inf-IIblatt09-loesungenebkfstemplateBukSkript Waack mergedab8muster06 (1)Slides 5 1k-Band TuringmaschineKunst Maschinenlogik! Antivirensoftware - Die Schlangenöl-BrancheAusarbeitung HypercomputationVBA開発資料3sattut08_2.pdfSkript GTI 2017 Digital Komplett KorrebkfsZettel8FEM.pptxLogischer Entwurf UT Darmstadtasdf7232_loes2Blatt 10informatik_uebungen_digitallogikObject Attributes dSeiten Aus 3834809861_AlgorithmenSS06_AuFSFooter MenuBack To TopAboutAbout ScribdPressOur blogJoin our team!Contact UsJoin todayInvite FriendsGiftsLegalTermsPrivacyCopyrightSupportHelp / FAQAccessibilityPurchase helpAdChoicesPublishersSocial MediaCopyright © 2018 Scribd Inc. .Browse Books.Site Directory.Site Language: English中文EspañolالعربيةPortuguês日本語DeutschFrançaisTurkceРусский языкTiếng việtJęzyk polskiBahasa indonesiaSign up to vote on this titleUsefulNot usefulYou're Reading a Free PreviewDownloadClose DialogAre you sure?This action might not be possible to undo. Are you sure you want to continue?CANCELOK
Copyright © 2024 DOKUMEN.SITE Inc.