VL-07: Satz von Rice
(Berechenbarkeit und Komplexit¨ at, WS 2017) Gerhard Woeginger
WS 2017, RWTH
BuK/WS 2017 VL-07: Satz von Rice 1/37
Organisatorisches
• November 9: Keine Vorlesung (Fachschaftsversammlung)
• N¨achste Vorlesung:
Mittwoch, November 15, 14:15–15:45 Uhr, Roter H¨orsaal
• Webseite:
http://algo.rwth-aachen.de/Lehre/WS1718/BuK.php
BuK/WS 2017 VL-07: Satz von Rice 2/37
Wiederholung
Wdh.: Bisher betrachtete Probleme
Die Diagonalsprache:
D = {w ∈ {0,1}∗|w =wi undMi akzeptiertw nicht}
Das Diagonalsprachenkomplement:
D = {w ∈ {0,1}∗|w =wi undMi akzeptiertw} Das Halteproblem:
H = {hMiw |M h¨alt aufw} Das spezielle Halteproblem:
H = {hMi |M h¨alt auf Eingabe } Alle diese Probleme sindnicht entscheidbar.
Frage: Was haben sie strukturell gemeinsam?
Wdh.: Beweise durch Unterprogrammtechnik
D ist nicht entscheidbar auf Grund eines Diagonalisierungs-Argumentes.
Die weitereArgumentationskettewar dann:
D ist nicht entscheidbar MD
⇓
D ist nicht entscheidbar MD
⇓
H ist nicht entscheidbar MH
⇓
Hist nicht entscheidbar MH
BuK/WS 2017 VL-07: Satz von Rice 5/37
Wdh.: Komplement der Diagonalsprache
MD
x
MD
accept
reject
accept
reject
BuK/WS 2017 VL-07: Satz von Rice 6/37
Wdh.: Halteproblem
MD
w hMiiw
accept accept
reject
reject
MH U
i mit wi =w
Wdh.: Spezielles Halteproblem
MH
x hMi,w
accept
reject
reject (Syntax)
Mε
hMiundw mit x =hMiw
hMw∗i
Reduktionen
Definition
Es seienL1 undL2zwei Sprachen ¨uber einem AlphabetΣ.
Dann heisstL1aufL2 reduzierbar(mit der NotationL1≤L2), wenn eine berechenbare Funktionf: Σ∗→Σ∗existiert, so dass f¨ur allex ∈Σ∗gilt: x ∈L1 ⇔ f(x)∈L2.
Satz
FallsL1≤L2 und fallsL2 entscheidbar ist, so istL1 entscheidbar.
BuK/WS 2017 VL-07: Satz von Rice 12/37
Vorlesung VL-07 Der Satz von Rice
• Der Satz von Rice
• Anwendungsbeispiele
BuK/WS 2017 VL-07: Satz von Rice 13/37
Unentscheidbar versus entscheidbar (1)
Wir haben gesehen, dass die folgenden Probleme unentscheidbar sind:
I GegebenhMiund w, giltw ∈L(M)?
I GegebenhMi, gilthMi ∈L(M)?
I GegebenhMi, giltε∈L(M)?
Analoge Argumente zeigen, dass folgende Probleme unentscheidbar sind:
Ubung ¨
I GegebenhMi, istL(M)leer?
I GegebenhMi, giltL(M) = Σ∗?
I GegebenhMi, istL(M)endlich?
I GegebenhMi, istL(M)unendlich?
I GegebenhMi, istL(M)regul¨ar?
I GegebenhMi, istL(M)kontext-frei?
Unentscheidbar versus entscheidbar (2)
Andrerseits ist jedes der folgenden Probleme entscheidbar:
I GegebenhMi, giltL(M)⊆ {0,1}∗?
I GegebenhMi, wirdL(M)von einer TM akzeptiert?
I GegebenhMi, gilt2222∈L(M)?
I GegebenhMi, gilt2222∈/L(M)?
I GegebenhMi, hathMieine gerade Anzahl von Zust¨anden?
Der Satz von Rice
BuK/WS 2017 VL-07: Satz von Rice 16/37
Partielle Funktionen
TM-berechenbare Funktionen sind partielle Funktionen:
Im Allgemeinen halten TMen nicht auf jeder Eingabe. Sie berechnen daherpartielle Funktionen. Das k¨onnen wir wie folgt formalisieren:
I Die von einer TM M berechnete Funktion ist von der Form fM: {0,1}∗→ {0,1}∗∪ {⊥}
Das Zeichen⊥steht dabei f¨ur undefiniertund bedeutet, dass die Maschine nicht h¨alt.
I Im Fall von Entscheidungsproblemen ist die Funktion von der Form fM: {0,1}∗→ {0,1,⊥}
Dabei steht 0f¨urVerwerfen, 1f¨urAkzeptierenund ⊥f¨ur Nicht-Halten.
BuK/WS 2017 VL-07: Satz von Rice 17/37
Satz von Rice
Satz
Es seiRdie Menge der von TMen berechenbaren partiellen Funktionen.
Es seiS eine Teilmenge vonRmit ∅(S (R.
Dann ist die Sprache
L(S) ={hMi |M berechnet eine Funktion ausS}
nicht entscheidbar.
Mit anderen Worten: Alle nicht-trivialen Aussagen ¨uber die von einer TM berechnete Funktion sind unentscheidbar.
Henry Gordon Rice (1920–2003)
Wikipedia: Henry Gordon Rice was an American logician and
mathematician, best known as the author of Rice’s theorem, which he proved in his doctoral dissertation of 1951 at Syracuse University.
He was also a Professor of Mathematics at the University of New Hampshire. After 1960 he was employed by Computer Sciences Corporation in El Segundo.
Mathematics Genealogy Project
• Henry G. Rice
• Ph.D.: Syracuse University 1951
• Dissertation:
Classes of Recursively Enumerable Sets and Their Decision Problems
• Advisor: Paul Charles Rosenbloom
• No students known
Anwendungsbeispiele (1)
Beispiel 1
I Es seiS={fM|fM()6=⊥}.
I Dann ist
L(S) = {hMi |M berechnet eine Funktion ausS}
= {hMi |M h¨alt auf Eingabe }
= H
I Gem¨ass dem Satz von Rice ist das spezielle HalteproblemH nicht entscheidbar. (Aber das wussten wir ja schon. . . )
R
S
BuK/WS 2017 VL-07: Satz von Rice 20/37
Anwendungsbeispiele (2)
Beispiel 2
I Es seiS ={fM | ∀w ∈ {0,1}∗:fM(w)6=⊥}.
I Dann ist
L(S) = {hMi |M berechnet eine Funktion ausS}
= {hMi |M h¨alt auf jeder Eingabe}
I Diese Sprache ist auch als dastotale Halteproblem Htot bekannt.
I Gem¨ass dem Satz von Rice ist die SpracheHtot nicht entscheidbar.
R
S
BuK/WS 2017 VL-07: Satz von Rice 21/37
Anwendungsbeispiele (3)
Beispiel 3
I Es seiS={fM| ∀w ∈ {0,1}∗:fM(w) =1}.
I Dann ist
L(S) = {hMi |M berechnet eine Funktion ausS}
= {hMi |M h¨alt auf jeder Eingabe mit Ausgabe 1}
I Gem¨ass dem Satz von Rice ist die SpracheL(S)nicht entscheidbar.
R
S ={1}
Beweis des Satzes von Rice
Beweis des Satzes von Rice (0)
Noch einmal der Wortlaut des Satzes:
Satz
Es seiRdie Menge der von TMen berechenbaren partiellen Funktionen.
Es seiS eine Teilmenge vonRmit ∅(S (R.
Dann ist die Sprache
L(S) ={hMi |M berechnet eine Funktion ausS}
nicht entscheidbar.
BuK/WS 2017 VL-07: Satz von Rice 24/37
Beweis des Satzes von Rice (1)
Wir benutzen die Unterprogrammtechnik:
Aus einer TMML(S), dieL(S)entscheidet, konstruieren wir eine TMMH, die das spezielle HalteproblemH entscheidet.
Einige Vereinbarungen:
I Es seiu die ¨uberall undefinierte Funktion u(w)≡ ⊥.
I O.B.d.A.u6∈ S.
I Es seif eine Funktion ausS.
I Es seiN eine TM, dief berechnet.
R
u
f S
Anmerkung: Fallsu∈ S gilt, betrachten wir einfachR \ SstattS, und zeigen die Unentscheidbarkeit vonL(R \ S). Hieraus ergibt sich auch unmittelbar die Unentscheidbarkeit vonL(S).
BuK/WS 2017 VL-07: Satz von Rice 25/37
Beweis des Satzes von Rice (2)
Die neue TMMH mit dem UnterprogrammML(S) arbeitet wie folgt:
(1) Falls die Eingabe nicht aus einer korrekten G¨odelnummer besteht, so verwirftMH die Eingabe.
(2) Andernfalls berechnetMH aus der EingabehMidie G¨odelnummer der TMM∗(siehe n¨achste Folie).
(3) Schlussendlich starten wirML(S) mit der EingabehM∗i.
Wir akzeptieren (verwerfen) genau dann, wennML(S) akzeptiert (verwirft).
Beweis des Satzes von Rice (3)
Verhalten vonM∗ auf Eingabex
Phase A: Simuliere das Verhalten vonM bei Eingabe auf einer f¨ur diesen Zweck reservierten Spur.
Phase B: Simuliere das Verhalten vonN aufx, halte, sobald N h¨alt, und ¨ubernimm die Ausgabe.
Mε
w w=hMi hM∗i
reject (Syntax)
ML(S) Istw eine
G¨odel- nummer?
accept
reject
M∗
x f(x)
M N
ε
BuK/WS 2017 VL-07: Satz von Rice 28/37
Beweis des Satzes von Rice (4)
Korrektheit:
Bei Eingabe vonw, wobeiw keine G¨odelnummer ist, verwirftMH. Bei Eingabe vonw =hMigilt:
w ∈H ⇒ M h¨alt auf
⇒ M∗berechnetf
f∈S
⇒ hM∗i ∈L(S)
⇒ ML(S) akzeptierthM∗i
⇒ MH akzeptiertw w 6∈H ⇒ M h¨alt nicht auf
⇒ M∗ berechnetu
u6∈S⇒ hM∗i 6∈L(S)
⇒ ML(S) verwirfthM∗i
⇒ MH verwirftw
BuK/WS 2017 VL-07: Satz von Rice 29/37
Satz von Rice f¨ ur C
++Programme
Konsequenz f¨ur C++
Es gibt keine algorithmische Methode (von Hand oder automatisiert) um festzustellen, ob ein gegebenes C++Programm einer
(nicht-trivialen) Spezifikation entspricht.
Analoge Konsequenzen gelten
f¨ur alle anderen h¨oheren Programmiersprachen wie
Java, Pascal, Python, FORTRAN, Algol, LISP, COBOL, etc.
Weitere Anwendungsbeispiele
Anwendungsbeispiele (4)
Beispiel 4
I Es sei
L17={hMi |M berechnet bei Eingabe der Zahl 17 die Zahl 42}.
I Es istL17=L(S)f¨urS ={fM |fM(bin(17)) =bin(42)}.
I Da∅(S(Rgilt, ist diese SpracheL17gem¨ass dem Satz von Rice nicht entscheidbar.
BuK/WS 2017 VL-07: Satz von Rice 32/37
Anwendungsbeispiele (5)
Beispiel 5
I Es seiH32={hMi |auf jeder Eingabe h¨altM
nach h¨ochstens 32 Schritten}.
I Uber diese Sprache sagt der Satz von Rice nichts aus!¨
IstH32entscheidbar?
BuK/WS 2017 VL-07: Satz von Rice 33/37
Anwendungsbeispiele (6)
Beispiel 6
I Es seiL44={hMi |Es existiert ein Wortw, sodass die TMM bei Abbarbeitung vonw mindestens einmal im Zustandq44ist }.
I Uber diese Sprache sagt der Satz von Rice nichts aus!¨
IstL44 entscheidbar?
Anwendungsbeispiele (7)
Beispiel 7
I Es seiLD ={hMi |M entscheidet die Diagonalsprache}.
I Dann istLD =L(S)f¨urS={fD}wobei
fD(w) =
(1 wennw ∈D 0 sonst.
I Uber diese Sprache sagt der Satz von Rice nichts aus!¨
I Aber: Diese Sprache ist entscheidbar, denn LD ={}.
R S={fD}
Noch einmal: Das Collatz Problem
Die Collatz’sche Iterationsgleichung lautet:
x ←
(x/2 wennx gerade 3x+1 wennx ungerade
Collatz Problem
Erreicht die Collatz’sche Iteration von jedem nat¨urlichen Startwertx aus irgendwann einmal die Zahlx=1?
Das Collatz-Problem ist einekonkrete Instanzdes totalen Halteproblems.
Wir wissen nicht, ob diese Instanz eineJa- oder eineNein-Instanz ist.
(Paul Erd¨os: “Mathematics may not be ready for such problems.”) Der Satz von Rice ist f¨urkonkrete Probleminstanzen nutzlos.
BuK/WS 2017 VL-07: Satz von Rice 36/37
Organisatorisches
• November 9: Keine Vorlesung (Fachschaftsversammlung)
• N¨achste Vorlesung:
Mittwoch, November 15, 14:15–15:45 Uhr, Roter H¨orsaal
• Webseite:
http://algo.rwth-aachen.de/Lehre/WS1718/BuK.php
BuK/WS 2017 VL-07: Satz von Rice 37/37