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 29<br />
3.2 Hierarchiesätze<br />
Sie kennen unter Umständen die Chomsky-Hierarchie REG < KFR < K<strong>SS</strong><br />
< REKURSIVAUFZ. Hier geht es um quantitative Hierarchien f(n) ≥ n,<br />
f(n) eigentliche Komplexitätsfunktion. Es werden nur eigentliche Komplexitätsfunktionen<br />
f(n) mit f(n) ≥ n betrachtet (Ausnahme: Theorem 3.3)<br />
Definition 3.4 (Haltesprache) Eine Haltesprache Hf ist wie folgt definiert:<br />
Hf = {M; x|M ist Beschreibung einer deterministischen Turing-Maschine<br />
M akzeptiert x in höchstens f(|x|) Schritten}<br />
Das heißt, wir betrachten alle Beschreibungen von Turing-Maschinen. Dabei<br />
nehmen wir an, unser Alphabet Σ sei groß genug: 0, 1, ” (“, ” ;“, usw. seien<br />
Symbole aus Σ.<br />
Wie kann man nun eine Turing-Maschine für Hf konstruieren?<br />
Einschub: Eine angemessene einheitliche Kodierung der Beschreibung<br />
von Turing-Maschinen ist: M = (K, Σ, δ, s) mit:<br />
• Σ = {1, . . . , |Σ|} (Zahlen, alle binär)<br />
• K = {|Σ| + 1,<br />
|Σ| + 2, . . . , |Σ| + |k|}<br />
<br />
≡s<br />
• Zahlen |k| + |Σ| + 1, . . . , |k| + |Σ| + 6 für spezielle Symbole ←, →, –, h,<br />
” yes“, ” no“<br />
• alle verwendeten Zahlen werden dargestellt durch Strings der Länge<br />
⌈log(|k| + |Σ| + 6)⌉ Bits mit führenden Nullen<br />
• δ wird dargestellt als Sequenz von Paaren ((q, σ1, . . . , σk), (p, ρ1, D1,<br />
ρ2, D2, . . . , ρk, Dk ))<br />
• ” (“ und ” )“ sind als Symbole vorhanden<br />
Das heißt also, daß ein String M = (|Σ|)(|K|)δ ∈ Σ eine Turing-Maschine<br />
beschreibt.<br />
Für die folgende Sätze und Lemmata benötigen wir noch eine universelle<br />
Turing-Maschine U, die sämtliche Turing-Maschinen M s<strong>im</strong>ulieren kann.<br />
Dabei wird die Beschreibung vom jeweiligen M mit einer Eingabe x kombiniert<br />
(M; x) und als Eingabe von U verstanden: U(M; x) = M(x).<br />
S<strong>im</strong>ulation eines Schrittes von M ((q, w, u) M → (p, w ′ , u ′ )) auf U wie folgt:<br />
U ∗<br />
(s<strong>im</strong>, ⊲, M; x, ⊲w, q; u) → (s<strong>im</strong>, ⊲, M; x, ⊲w ′ , p; u ′ ). U kennt das letzte Symbol<br />
von w und den Zustand q von M. U sucht in der Beschreibung von M den