Skript zur Vorlesung Komplexitätstheorie im SS 1996
Skript zur Vorlesung Komplexitätstheorie im SS 1996
Skript zur Vorlesung Komplexitätstheorie im SS 1996
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
3 BEZIEHUNGEN ZWISCHEN KOMPLEXITÄTSKLA<strong>SS</strong>EN 27<br />
Nicht einmal berechenbar ist beispielsweise: χL mit L nicht entscheidbar.<br />
Das kann zu sehr merkwürdigen Ergebnissen führen (Später: Theorem 3.3).<br />
Daher schränken wir uns ein.<br />
Definition 3.1 f : N → N heißt eigentliche (proper) Komplexitätsfunktion<br />
⇔<br />
1. ∀n ∈ Nf(n) ≤ f(n + 1)<br />
2. Es gibt eine k-Band-Turing-Maschine mit E/A Mf = (K, Σ, δ, s) derart,<br />
daß für jede Eingabe x mit |x| = n gilt:<br />
(s, ⊲, x, ⊲, ɛ, . . . , ⊲, ɛ) M t f<br />
→ (h, ⊲, x, ⊲, ⊓ i2 ik−1 f(n)<br />
, . . . , ⊲, ⊓ , ⊲, ⊓ )<br />
mit t ∈ O(n + f(n)) und ij ∈ O(f(n)), j = 2, . . . , k − 1.<br />
(t und ij hängen nur von der Länge der Eingabe ab).<br />
Das heißt, Mf berechnet für jede Eingabe x einen String von Quasi-Blanks<br />
⊓ f(|x|) in O(|x| + f(|x|)) Schritten und O(f(|x|)) Platz.<br />
Bemerkungen:<br />
• Eigentliche Komplexitätsfunktionen sind beispielsweise: f(n) = c =<br />
konstant, f(n) = n, f(n) = ⌈log n⌉, f(n) = n log n und f(n) = n 3 .<br />
Falls f(n) /∈ N, dann ist ⌈f(n)⌉ gemeint.<br />
• Sind f, g eigentliche Komplexitätsfunktionen, dann sind auch f + g,<br />
f · g, 2 g eigentliche Komplexitätsfunktionen.<br />
• Eigentliche Komplexitätsfunktionen sind auch √ n und n!.<br />
Für eigentliche Komplexitätsfunktionen gelten <strong>im</strong> weiteren die Klassen:<br />
• TIME (f) – deterministische Zeit<br />
• SPACE (f) – deterministischer Platz<br />
• NTIME (f) – nichtdeterministische Zeit<br />
• NSPACE (f) – nichtdeterministischer Platz<br />
f ist nicht nur spezielle Funktion, machmal sind auch Familien von Funktionen<br />
gemeint, parametrisiert durch k:<br />
• P = TIME (n k ) = <br />
j>0 TIME (nj )<br />
• NP = NTIME (n k ) = <br />
j>0 NTIME (nj )<br />
Weitere Klassen von Funktionen sind: