Berechenbarkeit und Komplexit¨at Vorlesung 5
Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7
RWTH Aachen
22. November 2014
Erinnerung: Church-Turing-These
Church-Turing-These
Die Klasse der TM-berechenbaren Funktionen stimmt mit der Klasse der “im intuitiven Sinne algorithmisch berechenbaren” Funktionen
¨ uberein.
berechenbar vs. aufz¨ahlbar vs. entscheidbar
Die Church-Turing-These bezieht sich auf Berechenbarkeit.
Wir zeigen enge Zusammenh¨ange zum Begriff der Aufz¨ahlbarkeit und der Entscheidbarkeit.
Diesen Zusammenhang kann man auf intuitiver Ebene oder auf TM-Ebene zeigen.
Aufz¨ahlbarkeit via Berechenbarkeit
Eine MengeL⊆Σ∗ ist genau dann aufz¨ahlbar,
wenn sie Definitionsbereich einer berechenbaren Funktion f : Σ∗ Σ∗ ist.
Beweis von ⇒
SeiA ein Algorithmus, derLaufz¨ahlt.
Wir verwendenA in folgendem AlgorithmusB, der eine Funktionf mitDef(f) =Lberechnet:
Bei Eingabe u lasse den Aufz¨ahlungsalgorithmus A so lange laufen, bis er einmal das Wort u als Ausgabe geliefert hat; in diesem Falle terminiere mit Ausgabe ε, ansonsten laufe ohne Termination weiter.
Beweis von ⇐
SeiA ein Algorithmus, derf : Σ∗ Σ∗ berechnet.
Wir verwendenA in folgendem Algorithmus B, der die Menge Def(f) aufz¨ahlt.
Gehe nach dem Diagonalverfahren alle Kombinationen (Wort wi ausΣ∗, Schrittzahl j) durch und lasse jeweils den Algorithmus A mit Eingabe wi f¨ur j Schritte laufen.
Immer, wenn dabei festgestellt wird, dass A f¨ur Eingabe wi nach≤j Schritten terminiert, gebe das jeweilige Wort wi aus.
Berechenbarkeit via Aufz¨ahlbarkeit
Zuf : Σ∗ Σ∗ sei der “Graph von f” Gf :={u#v |u ∈Def(f) und f(u) =v}
Eine Funktion f : Σ∗ Σ∗ ist genau dann berechenbar, wenn ihr GraphGf aufz¨ahlbar ist.
Beweis ⇐
Aus einem Aufz¨ahlungsalgorithmusAf¨ur Gf konstruieren wir einen AlgorithmusB zur Berechnung vonf:
Bei Eingabe u0 starte den Aufz¨ahlungsalgorithmus und pr¨ufe bei jeder Ausgabe, ob es sich um ein Wort der Form u0#v handelt; in diesem Falle gebe v aus und terminiere.
Dieser Algorithmus terminiert genau dann mit dem richtigen Ergebnisv =f(u0), wenn u0∈Def(f), und er l¨auft andernfalls ohne zu terminieren.
Damit berechnet der Algorithmus die Funktionf
Beweis ⇒
Aus einem AlgorithmusAzur Berechnung vonf konstruieren wir einen Aufz¨ahlungsalgorithmusB f¨urGf:
Nutze die kanonische Reihenfolge aller W¨orter w0,w1,w2, . . .¨uber dem AlphabetΣ. Gehe im Diagonalverfahren alle Kombinationen (wi,j) durch,
¨uberpr¨ufe jeweils, ob A bei Eingabe wi binnen j Schritten terminiert, etwa mit der Ausgabe v , und gebe in diesem Fall das Wort wi#v aus.
Dies liefert offensichtlich eine Aufz¨ahlung des Graphen vonf.
Aufz¨ahlbarkeit und Entscheidbarkeit
(a) IstL⊆Σ∗ entscheidbar, so auch aufz¨ahlbar.
(b) Eine SpracheL⊆Σ∗ ist entscheidbar genau dann, wenn sowohl Lals auch das Komplement Σ∗\LvonL aufz¨ahlbar sind.
Beweis von (a)
Mit einem EntscheidungsverfahrenAf¨ur Lkonstruieren wir ein Aufz¨ahlungsverfahren:
Gehe alle W¨orter in kanonischer Reihenfolge
w0,w1,w2, . . .durch, lasse jeweils A auf wi laufen (diese Berechnung terminiert!) und gebe wi aus, wenn A die Antwort “ja” (d.h. “wi ∈L”) liefert.
Beweis von (b)
⇒: Aus einem Entscheidungsverfahren f¨urL ergibt sich ein Aufz¨ahlungsalgorithmus gem¨aß Teil (a).
Ein Aufz¨ahlungsalgorithmus f¨ur das Komplement vonL ergibt sich, wenn man im Beweis von (a) statt der Antwort “ja” vonAdie Antwort “nein” verwendet.
⇐: Aus Aufz¨ahlungsverfahren A1,A2 f¨ur Lbzw. das Komplement vonLkonstruieren wir einen Entscheidungsalgorithmus f¨ur L:
Bei Eingabe u lasse die Algorithmen A1,A2 zugleich laufen, bis einer von beiden u liefert: Ist dies A1, terminiere mit Ausgabe “ja”; ist dies A2, terminiere mit Ausgabe “nein”.
Dieser Algorithmus terminiert f¨ur jedesu, denn es giltu ∈L oder u∈(Σ∗\L), also liefert entweder A1 oderA2 irgendwann das Wortu.
Semi-Entscheidbarkeit
Eine SpracheL⊆Σ∗ heißt semi-entscheidbar, wenn es eine TM
¨uber Σ gibt, die
f¨ur jedes Eingabewort w ∈Lterminiert (oBdA mit Ausgabe 1) f¨ur jedes Eingabewort w 6∈Lnicht terminiert.
Eine Sprache L ⊆ Σ∗ ist semi-entscheidbar genau dann, wenn sie aufz¨ahlbar ist.
Beweis
⇒: Aus einem Semi-EntscheidungsalgorithmusAf¨ur L konstruieren wir einen Aufz¨ahlungsalgorithmusB:
Benutze die kanonische Reihenfolge w0,w1,w2, . . .der W¨orter ¨uberΣ und gehe im Diagonalverfahren alle Kombinationen (Wort wi, Schrittzahl j) durch: Pr¨ufe jeweils, ob der Algorithmus A f¨ur Eingabe wi binnen j Schritten terminiert und gebe in diesem Falle wi aus.
⇐: Aus einem Aufz¨ahlungsalgorithmusAf¨ur Lkonstruieren wir einen Semi-EntscheidungsalgorithmusB:
Bei Eingabe u lasse den Aufz¨ahlungsalgorithmus A laufen und terminiere, sobald A das Wort u liefert; ansonsten laufe ohne zu terminieren.
Unentscheidbarkeit
Ziele:
1 Es gibt eine Sprache, die nicht entscheidbar ist.
2 Es gibt eine konkret angebbare Sprache H, die nicht entscheidbar ist.
3 Diese SpracheH ist aufz¨ahlbar.
4 Es gibt eine konkret angebbare Sprache, die nicht aufz¨ahlbar ist.
Exkursion: abz¨ahlbare und ¨uberabz¨ahlbare Mengen
Def: abz¨ahlbare Menge
Eine Menge M heißt abz¨ahlbar, wenn es eine surjektive Funktion f :N→M gibt.
Dann istM ={f(0),f(1),f(2), . . .}
Beispiele f¨ur abz¨ahlbare Mengen
die MengeZ der ganzen Zahlen die MengeQder rationalen Zahlen
{0,1}∗, die Menge der W¨orter ¨uber dem Alphabet {0,1}
die Menge der Turingmaschinen mit dem Eingabealphabet {0,1}
Kodierung von Turingmaschinen
Wir stellen eine TM in folgender Form dar:
Sei Q ={1, . . . ,t}.
Der Anfangszustand sei 1 und der Stoppzustand 2.
Γ ={a1,a2, . . .ak} (mita1 = 0,a2,= 1,a3=B) Zur Beschreibung einer TM dieser Form m¨ussen wir nur die Turingtafel als Bin¨arstring kodieren.
Kodierung der Turingtafel
Ein Eintrag z der Turingtafel
i ak j aℓ L/R/N wird kodiert durch den Bin¨arstring
code(z) := 0i10k10j10ℓ10/00/000
Kodierung einer TM M mit den Eintr¨agen z1, . . . ,zs der Turingtafel (zeilenweise notiert):
Bemerkungen
Die Menge der Kodierungsw¨orter von Turingmaschinen ist entscheidbar.
Die MengeT der Turingmaschinen ¨uber {0,1} ist abz¨ahlbar.
Wir definieren eine surjektive Abbildungf :N→ T durch R¨uckgriff auf die kanonische Reihenfolge der W¨orter ¨uber{0,1}:
f(i) :=Turingmaschine, deren Kode deri-te TM-Kode
in der kanonischen Reihenfolge aller W¨orter ¨uber {0,1}ist.
G¨odelnummern
Wir k¨onnen statt Kodew¨ortern auch nat¨urliche Zahlen zur Kodierung verwenden.
Eine ¨uberabz¨ahlbare Menge
DiePotenzmenge P(N) von Nist die Menge aller Teilmengen von N.
Satz:
P(N) ist ¨uberabz¨ahlbar.
Beweis:
Annahme: P(N) ist abz¨ahlbar.
Dann gibt es eine surjektive Funktionf :N→ P(N); also P(N) ={f(0),f(1),f(2), . . .}.
Betrachte K :={i ∈N|i 6∈f(i)}
K kommt in der Liste der Mengen f(0),f(1), . . . vor, etwa K =f(i0).
Danni0 ∈K ⇔ i0 6∈f(i0) ⇔ i06∈K, Widerspruch
Von N zur Menge der W¨orter
Die Menge aller Sprachen L ⊆ {0,1}∗, d.h. die Potenzmenge von {0,1}∗, ist nicht abz¨ahlbar.
Beweis: Kopiere den Beweis f¨ur die Potenzmenge vonNunter Verwendung der kanonischen Reihenfolge der W¨orter ¨uber Σ.
Erinnerung
Die Menge der entscheidbaren SprachenL⊆ {0,1}∗ ist abz¨ahlbar.
Beweis: Die Menge aller TM ¨uber{0,1}ist abz¨ahlbar, also auch die Menge der TM, die eine Sprache entscheiden.
Schlussfolgerung
Es gibt eine nicht entscheidbare Sprache.
Das allgemeine Halteproblem
Gegeben: TuringmaschineM ¨uber {0,1}, Eingabewort w ∈ {0,1}∗ Frage: StopptM bei Eingabew?
Wir nutzen die Kodierung vonM durchhMi.
Dann wird das allgemeine Halteproblem dargestellt durch die folgende Sprache
H = {hMiw |M h¨alt aufw} .
Wir schreiben auchM :w →stopp, wennM angesetzt aufw h¨alt,
Unentscheidbarkeit des allgemeinen Halteproblems
Das allgemeine Halteproblem ist nicht entscheidbar.
Annahme: Die TMM0 entscheideH. Dann gilt f¨ur jede TM M:
M0:hMiw →
1 falls M :w →stopp 0 falls M :w → ∞
ModifiziereM0 zu einer neuen TMM1, die auf EingabenhMi wie folgt arbeitet:
1 Stelle aus hMi das Wort hMihMi her (Kopiervorgang)
2 Arbeite wieM0 (M0 entscheidet hier, ob M :hMi → stopp)
3 Gehe in∞-Schleife beiM0-Ausgabe 1, aber stoppe bei M0-Ausgabe 0
(Implementierung: Ersetze in M0 den Zustand ¯q durchq′ und f¨uge folgende Zeilen ein: q′1q′1N und ansonstenq′aq a N¯ .)
Beweis (Fortsetzung)
F¨ur jedes EingabeworthMi gilt dann:
M1 :hMi →stopp
⇐⇒|{z}
nach Konstr.M1
M0 :hMi hMi
|{z}w
→0
⇐⇒|{z}
M0entscheidetH
M :hMi → ∞.
F¨urM =M1 ergibt sich ein Widerspruch.
Also war die Annahme, das es eine TMM0 gibt, die H entscheidet, falsch.
Umgangssprachliche Formulierung
Folgendes Entscheidungsproblem ist nicht algorithmisch entscheidbar:
Gegeben eine TM M und ein Eingabewort w , terminiert M nach Start mit dem Eingabewort w ? Kurz: Das Problem, ob eine gegebene TM f¨ur ein gegebenes Eingabewort terminiert, istunentscheidbar.
Beachte:
1 Diese Frage der Programmtermination ist sehr nat¨urlich.
2 Der Bezug auf Turingmaschinen ist unwesentlich.
Bedeutung der Unentscheidbarkeit von H
Das Ergebnis sagt nur, dass eine uniforme algorithmische L¨osung f¨ur alleInstanzen M,w unm¨oglich ist.
In Einzelf¨allen ist die Frage nat¨urlich beantwortbar.
Tauchen unentscheidbare Probleme in der Praxis auf, versucht man oft, die Instanzen einzuschr¨anken, um noch eine
algorithmische L¨osung zu erreichen.
In der Logik gibt es “unentscheidbare Aussagen” A: Damit meint man etwas anderes – die Nichtbeweisbarkeit sowohl von A als auch von¬A auf Basis der betrachteten Annahmen.