11. Juli und 13. Juli 2006
11. Juli und 13. Juli 2006
11. Juli und 13. Juli 2006
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
2.6 Halteproblem, Unentscheidbarkeit, Reduzierbarkeit<br />
Definition<br />
(a) Eine Menge A ⊆ Σ ∗ heißt entscheidbar, falls<br />
ihre charakteristische Funktion χ A : Σ ∗ → {0,1}<br />
berechenbar ist:<br />
{<br />
1, falls w ∈ A<br />
χ A (w) :=<br />
0, falls w ∉ A<br />
(b) Eine Menge A ⊆ Σ ∗ heißt semi-entscheidbar,<br />
falls die Funktion χ ′ A : Σ∗ → {0,1} berechenbar<br />
ist:<br />
{<br />
χ ′ 1, falls w ∈ A<br />
A (w) := <strong>und</strong>efiniert, falls w ∉ A<br />
zu (a):<br />
w<br />
Alg.<br />
✛✘<br />
❙ ✱<br />
✱ ❙❙<br />
✚✙ ✱<br />
✛✘<br />
✱<br />
“Ja”<br />
❙ ✱<br />
✱ ❙❙<br />
✚✙<br />
“Nein”<br />
zu (b):<br />
w<br />
Alg.<br />
???<br />
✛✘<br />
❏ ✱<br />
✱<br />
✱ ❏❏<br />
✚✙<br />
“Ja”<br />
175
Satz<br />
Eine Sprache A ⊆ Σ ∗ ist entscheidbar gdw.<br />
A <strong>und</strong> A (= Σ ∗ A) semi-entscheidbar sind.<br />
Beweis:<br />
“⇒”: klar<br />
“⇐”: Semi-Entscheidungsverfahren M 1 für A<br />
Semi-Entscheidungsverfahren M 2 für A<br />
Entscheidungsverfahren für A:<br />
INPUT(x);<br />
FOR s := 1,2,3, . . . DO<br />
IF M 1 (x) stoppt in s Schritten<br />
THEN OUTPUT(1) END;<br />
IF M 2 (x) stoppt in s Schritten<br />
THEN OUTPUT(0) END;<br />
END.<br />
✷<br />
176
Definition<br />
Eine Sprache A ⊆ Σ ∗ heißt rekursiv aufzählbar,<br />
falls A = ∅ oder falls es eine totale <strong>und</strong> berechenbare<br />
Funktion f : N → Σ ∗ gibt mit<br />
A = {f(0), f(1), f(2), . . .}.<br />
Sprechweise: f zählt A auf.<br />
Beachte: Für i ≠ j ist f(i) = f(j) möglich.<br />
Satz<br />
Eine Sprache ist rekursiv aufzählbar gdw.<br />
sie semi-entscheidbar ist.<br />
Beweis:<br />
“⇒”: Sei f : N → Σ ∗ total <strong>und</strong> berechenbar mit<br />
A = { f(n) | n ≥ 0 }.<br />
Semi-Entscheidungsverfahren für A:<br />
INPUT(x);<br />
FOR n := 1,2, . . . DO<br />
IF f(n) = x THEN OUTPUT(1) END;<br />
END<br />
177
“⇐”: Sei M ein Semi-Entscheidungsverfahren für<br />
A ≠ ∅.<br />
Sei a ∈ A.<br />
Algorithmus für ˆf : N → Σ ∗ :<br />
INPUT(n);<br />
x := e(n); y := f(n);<br />
IF M(x) stoppt in y Schritten mit Ausgabe 1<br />
THEN OUTPUT(x) ELSE OUTPUT(a)<br />
END<br />
Dann: ˆf : N → Σ ∗ total, berechenbar mit ˆf(N) ⊆ A.<br />
Bei x ∈ A gibt es y ≥ 1 mit M(x) stoppt in y<br />
Schritten mit Ausgabe 1.<br />
Dann: ˆf(c(x, y)) = x, d.h. ˆf(N) = A.<br />
✷<br />
178
Folgerung<br />
Für eine Sprache A ⊆ Σ ∗ sind die folgenden<br />
Aussagen äquivalent:<br />
(1.) A ist rekursiv aufzählbar.<br />
(2.) A ist semi-entscheidbar.<br />
(3.) A ist Sprache vom Typ 0.<br />
(4.) A = T(M) für eine Turingmaschine M.<br />
(5.) χ ′ A<br />
ist berechenbar.<br />
(6.) A ist Definitionsbereich einer berechenbaren<br />
Funktion.<br />
(7.) A ist Wertebereich einer berechenbaren<br />
Funktion.<br />
Beweis:<br />
(1.) <br />
<br />
(2.)<br />
<br />
(5.)<br />
<br />
(6.)<br />
Satz<br />
(7.) : Def. von rek. aufz.<br />
Def. semi-entsch.<br />
klar<br />
Berechenbarkeit<br />
<br />
(4.) <br />
(3.) : Satz<br />
179
Eine Kodierung von TMen<br />
M = (Z,Σ,Γ, δ, z 0 , ✷, E) ↦→ w M ∈ {0,1} ∗<br />
Seien Z = {z 0 , z 1 , . . . , z n },<br />
Γ = {a 0 , a 1 , . . . , a k }<br />
mit ✷ = a 0 ,0 = a 1 ,1 = a 2 <strong>und</strong> # = a 3 ,<br />
<strong>und</strong> E = {z n−j , . . . , z n } für ein j ≥ 0.<br />
δ : Z × Γ → Z × Γ × {L, R, N}<br />
δ(z i , a j ) = (z i ′, a j ′, y) ↦→ w i,j,i ′ ,j ′ ,y :=<br />
mit m =<br />
⎧<br />
⎪⎨<br />
⎪⎩<br />
##bin(i)#bin(j)#bin(i ′ )#bin(j ′ )#bin(m)<br />
0 falls y = L,<br />
1 falls y = R,<br />
2 falls y = N.<br />
w ′ M ∈ {0,1,#}∗ : alle w i,j,i ′ ,j ′ ,y hintereinander<br />
h : {0,1,#} ∗ → {0,1} ∗ : 0 ↦→ 00,1 ↦→ 01,# ↦→ 11<br />
Dann: w M := h(w ′ m)<br />
180
Sei ˆM die triviale TM, die nie stoppt.<br />
Zuordnung {0,1} ∗ → {TMen} : w ↦→ M w<br />
mit M w :=<br />
{<br />
M, falls w = wM<br />
ˆM, sonst<br />
Definition<br />
Das spezielle Halteproblem (Selbstanwendungsproblem)<br />
ist die Sprache<br />
K = { w ∈ {0,1} ∗ | M w hält bei Eingabe w an }.<br />
Satz<br />
Das spezielle Halteproblem ist nicht entscheidbar.<br />
181
Beweis:<br />
Ang.: K ist entscheidbar,<br />
d.h. ∃ TM M : M berechnet χ K .<br />
M ′ :<br />
start M “Band = 0?”<br />
nein<br />
ja<br />
stop<br />
Dann: M ′ stoppt gdw. M liefert Ergebnis 0.<br />
Damit: M ′ hält bei Eingabe w M ′ an<br />
gdw. M liefert bei Eingabe w M ′ Ergebnis 0<br />
gdw. χ K (w M ′) = 0<br />
gdw. w M ′ ∉ K<br />
gdw. M wM ′ hält bei Eingabe w M ′ nicht an<br />
gdw. M ′ hält bei Eingabe w M ′ nicht an.<br />
✷<br />
182
Definition<br />
Seien A ⊆ Σ ∗ <strong>und</strong> B ⊆ Γ ∗ .<br />
A ist auf B reduzierbar (A ≤ B), wenn es eine<br />
totale <strong>und</strong> berechenbare Funktion f : Σ ∗ → Γ ∗<br />
gibt, sodass für alle x ∈ Σ ∗ folgendes gilt:<br />
x ∈ A gdw. f(x) ∈ B.<br />
Lemma<br />
Gilt A ≤ B <strong>und</strong> ist B entscheidbar, so ist auch A<br />
entscheidbar.<br />
Beweis:<br />
f : Σ ∗ → Γ ∗ Reduktion von A auf B.<br />
Ist χ B berechenbar, so ist χ B ◦ f berechenbar<br />
{ }<br />
1 falls f(x) ∈ B<br />
χ B (f(x)) =<br />
0 falls f(x) ∉ B<br />
{ }<br />
1 falls x ∈ A<br />
=<br />
= χ<br />
0 falls x ∉ A A (x).<br />
Also ist A entscheidbar.<br />
✷<br />
Analog für Semi-Entscheidbarkeit.<br />
183
Weitere unentscheidbare Probleme<br />
Definition<br />
Das (allgemeine) Halteproblem ist die Sprache<br />
H = { w#x | M w hält bei Eingabe x an }.<br />
Satz<br />
Das Halteproblem H ist nicht entscheidbar.<br />
Beweis: z.z.: K ≤ H.<br />
Definiere f(w) := w#w.<br />
f ist total <strong>und</strong> berechenbar.<br />
Für alle w ∈ {0,1} ∗ :<br />
w ∈ K gdw. M w hält bei Eingabe w an<br />
gdw. w#w ∈ H.<br />
✷<br />
184
Definition<br />
Das Halteproblem auf leerem Band ist die Sprache<br />
H 0 = { w | M w angesetzt auf das leere Band hält }.<br />
Satz<br />
Das Halteproblem auf leerem Band H 0 ist nicht<br />
entscheidbar.<br />
Beweis: z.z.: H ≤ H 0 .<br />
f : w#x ↦→ M : Schreibe x auf’s Band<br />
↓<br />
Simuliere M w mit Eingabe x<br />
f ist berechenbare Funktion, die zu einer totalen,<br />
berechenbaren Funktion ergänzt werden kann:<br />
f(y) := w ˆM für alle y ∉ {0,1}∗ · # · {0,1} ∗ .<br />
Dann :<br />
w#x ∈ H gdw.<br />
gdw.<br />
M w hält bei Eingabe x<br />
M angesetzt auf das leere Band hält<br />
gdw. f(w#x) ∈ H 0 . ✷<br />
185
Satz (Rice)<br />
Sei R die Klasse aller Turing-berechenbaren<br />
Funktionen. Sei S ⊆ R mit ∅ ̸= S ≠ R.<br />
Dann ist die Sprache<br />
C(S) = { w | M w berechnet eine Funktion in S }<br />
unentscheidbar.<br />
Beispiele:<br />
(a) S 1 := { f ∈ R | f ist eine konstante Funktion }<br />
C(S 1 ) = { w | M w ber. eine konstante Funktion }<br />
(b) S 2 := { f ∈ R | f ist die Identitätsfunktion }<br />
C(S 2 ) = { w | M w ber. die Identitätsfunktion }<br />
(c) S 3 := { f ∈ R | f ist primitiv rekursiv }<br />
C(S 3 ) = { w | M w ber. eine prim. rek. Funktion }<br />
Alle diese Sprachen sind nicht entscheidbar.<br />
Bemerkung:<br />
Das Äquivalenzproblem für TMen:<br />
Ä = { u#v | M u <strong>und</strong> M v berechnen dieselbe Funktion }<br />
Dann: H ≤ Ä, aber nicht Ä ≤ H.<br />
Ä hat einen höheren Grad der Unentscheidbarkeit.<br />
186