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