Theoretische Informatik
Transcription
Theoretische Informatik
Zusammenfassung – Theoretische Informatik SS 2011 (nach Modulbeschreibung) I Formale Sprachen I Grammatiken I Endliche Automaten I Kellerautomaten I Turingmaschinen I Berechenbarkeit (von partiellen Funktionen) I Entscheidbarkeit (von Sprachen / Mengen) I Einführung in die Komplexitätstheorie 272 Formale Sprachen I endliches Alphabet X I Wort w ∈ X ∗ Operationen auf Wörtern: ◦, I I ∗, R (formale) Sprache L ⊆ X ∗ Operationen auf Sprachen: ∪, ∩, , \, ◦, ∗, R Reguläre Ausdrücke (endliche Beschreibung unendlicher Sprachen) Wortersetzungssystem S ⊆ X ∗ × X ∗ (endliche Beschreibung unendlicher Sprachen) Ableitungsrelation Wortproblem für Wortersetzungssysteme: Menge aller (S, u, v ) mit u →∗s v 273 Grammatiken (endliche Darstellung unendlicher Sprachen) Grammatik G = (N, T , P, S) Ableitungen in Grammatik von Grammatik G erzeugte Sprache L(G) Wortproblem für Grammatiken: Menge aller (G, v ) mit v ∈ L(G) 274 Chomsky-Hierarchie Eine Grammatik G = (N, T , P, S) ist vom Chomsky-Typ 0 immer, 1 , falls für jede Regel (l → r ) ∈ P gilt: |l| ≤ |r | (monoton, kontextsensitiv) 2 , falls Typ 1 und für jede Regel (l → r ) ∈ P gilt: l ∈ N (kontextfrei) 3 , falls Typ 2 und für jede Regel (l → r ) ∈ P gilt: l ∈ N und r ∈ (T ∪ TN) (regulär) Sprache L hat Chomsky-Typ i gdw. eine Grammatik G mit Chomsky-Typ i mit L(G) = L \ {ε} existiert praktisch: Zulassung der ε-Sonderregel: Grammatik G = (N, T , P, S) hat auch dann Chomsky-Typ i, wenn sie I nur Regeln der für Chomsky-Typ i erlaubten Form I und evtl. die Regel S → ε enthält 275 Endliche Automaten NFA A = (X , Q, δ, I, F ) I akzeptierte Wörter I akzeptierte Sprache I Äquivalenz, Isomorphie I Eigenschaften: vollständig, deterministisch, mit ε-Übergängen, Minimalautomat (Anzahl der Zustände) I Abschluß unter ∪, ∩, , ◦, ∗, R NFA akzeptieren genau die regulären Sprachen (Typ 3). 276 Kellerautomaten PDA A = (X , Q, Γ, δ, q0 , F , ⊥) I Konfiguration, Konfigurationenfolge I akzeptierte Wörter I akzeptierte Sprache I Äquivalenz I Akzeptanz durch akzeptierende Zustände / leeren Keller PDA akzeptieren genau die kontextfreien Sprachen (Typ 2). kontextfreie Sprachen: I Pumping-Lemma I Chomsky-Normalform I CYK-Algorithmus I Abschluss unter ∪, ◦, Sprachen aber nicht unter ∩, ∗, R, Schnitt mit regulären 277 Turing-Maschinen TM M = (X , Q, Γ, δ, q0 , F , ) I deterministisch / nichtdeterministisch I Konfiguration, Konfigurationenfolge I akzeptierte Wörter I akzeptierte Sprache I Akzeptanz durch akzeptierende Zustände / Halt I Abschluß Turing-akzeptierbarer Sprachen unter ∪, ∩, ◦, aber nicht unter ∗ TM akzeptieren genau alle durch eine Grammatik erzeugten Sprachen (Chomsky-Typ 0). 278 Berechenbarkeit von (partiellen) Funktionen deterministische TM M = (X , Q, Γ, δ, q0 , F , ) definiert (partielle) Funktion fM : Γ∗ → Γ∗ durch ( v falls Bandinhalt v , nachdem M hält fM (w) = nicht definiert falls M nicht hält Codierung ein- und mehrstelliger Funktionen auf N These von Church: Die Menge aller intuitiv berechenbaren Funktionen ist genau die Menge aller Turing-berechenbaren Funktionen. 279 Entscheidbarkeit von Sprachen / Mengen Spache L ⊆ X ∗ ist entscheidbar gdw. χL : X ∗ → {0, 1} mit ( 1 falls w ∈ L χL (w) = 0 sonst berechenbar ist. Menge aller entscheidbaren Sprachen I genau die Menge aller Sprachen L, für die L und L Turing-akzeptierbar sind, I abgeschlossen unter ∪, ∩, , ◦ Codierung von TM universelle TM (programmierbar) 280 Entscheidbarkeit – Beispiele Problem = Menge (Sprache) der Codierungen aller Instanzen Beispiele entscheidbarer Sprachen: I Wortproblem für Typ-1,2,3-Grammatiken {c(G) ∗ w | w ist in G ableitbar } I Äquivalenzproblem von NFA {c(A) ∗ c(B) | L(A) = L(B)} Beispiele unentscheidbarer Sprachen: I spezielles Halteproblem {c(M) | TM M hält bei Eingabe von c(M)} I weitere Halteprobleme I Postsches Korrespondenzproblem (PCP) {c(x1 ) ∗ c(y1 ) ∗ · · · ∗ c(xn ) ∗ c(yn ) | ∃u ∈ {1, . . . , n}∗ : xuk · · · xuk = yuk · · · yuk } I Parkettierungsproblem I Wortproblem für Typ-0-Grammatiken {c(G) ∗ w | w ist in G ableitbar } I Schnittproblem für Typ-2-Grammatiken {c(G) ∗ c(G0 ) | L(G) ∩ L(G0 ) 6= ∅} 281 Einführung in die Komplexitätstheorie (Entscheidungs-)Probleme: I Problem: Sprache (Menge aller Codierungen einer Klasse von Aufgaben) I Instanz: Wort (Codierung einer speziellen Aufgabe dieser Klasse) I Lösungsverfahren: Entscheidungsverfahren für die Sprache Aufwandsabschätzung: Laufzeit, Speicherplatz Einteilung von Problemen (Sprachen) nach Aufwand (der schwierigsten Instanzen) in Komplexitätsklassen: P ⊆ NP ⊆ PSPACE = NPSPACE ⊆ EXPTIME ⊆ NEXPTIME P-NP-Problem: Gilt P = NP ? 282 Prominente Komplexitätsklassen P z.B. Sortieren, Suchen, ... . . . NP z.B. SAT, TSP, Bin Packing, Äquivalenz regulärer Ausdrücke, Sudoko Lösung durch Raten + Testen PSPACE z.B. QBF-Erfüllbarkeitsproblem, Planen, Erfüllbarkeitsproblem für Zeitlogiken, Spiele (Sokoban, Lunar Lockout, . . . ) 283