Berechenbarkeit und Komplexit¨at Vorlesung 4
Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7
RWTH Aachen
27. Oktober 2014
Registermaschinen (RAM) ¨uber N
Programm
b Befehlsz¨ahler
✻
❄
c(0) Akkumulator
✲
✛ c(1)c(2)c(3)c(4) · · · unbeschr¨ankter Speicher
Erl¨auterung von RAM-Befehlen
LOAD i:c(0) :=c(i),b :=b+ 1;
INDLOAD i:c(0) :=c(c(i)),b :=b+ 1;
CLOADi:c(0) :=i,b :=b+ 1;
STOREi:c(i) :=c(0), b:=b+ 1;
INDSTOREi:c(c(i)) :=c(0), b:=b+ 1;
ADDi:c(0) :=c(0) +c(i),b :=b+ 1;
CADD i:c(0) :=c(0) +i,b :=b+ 1;
INDADD i:c(0) :=c(0) +c(c(i)), b:=b+ 1;
...
DIV i:c(0) :=⌊c(0)/c(i)⌋,b:=b+ 1;
CDIVi:c(0) :=⌊c(0)/i⌋,b:=b+ 1;
INDIV i:c(0) :=⌊c(0)/c(c(i))⌋,b :=b+ 1;
GOTO j:b:=j
IF c(0) =x GOTO j:b:=j fallsc(0) =x, sonst b:=b+ 1;
END.
Kostenmaße
Modelle f¨ur die Rechenzeit
Uniformes Kostenmaß:Jeder Schritt z¨ahlt eine Zeiteinheit.
Logarithmisches Kostenmaß: Die Laufzeitkosten eines Schrittes sind proportional zur bin¨aren L¨ange der Zahlen in den angesprochenen Registern.
Simulation RAM durch TM
Satz:
Eine RAM kann durch eine TM simuliert werden:
Ist f : N N RAM-berechenbar, so ist die entsprechende Wort- funktion f¨ur Bin¨ardarstellungen nat¨urlicher Zahlen TM-berechenbar.
Zusatz: Eine im logarithmischen Kostenmaß t(n)-zeitbeschr¨ankte RAM (f¨ur Eingabel¨ange n) kann f¨ur ein Polynom q durch eine O(q(n+t(n)))-zeitbeschr¨ankte TM simuliert werden.
Simulation RAM durch TM – Beweis
Beweis des Satzes:
Wir verwenden eine 2-Band-TM, die die RAM schrittweise simuliert.
Band 1 wird f¨ur die Rechnungen benutzt.
Band 2 enth¨alt die Nummern der bisher angesprochenen Register und ihre Inhalte.
Das RAM-Programm P bestehe aus p Programmzeilen.
F¨ur jede Programmzeile schreiben wir ein TM-Unterprogramm Mi (0≤i ≤p).
Außerdem spezifizieren wir ein UnterprogrammM0 f¨ur die Initialisierung der TM und Mp+1 f¨ur die Aufbereitung der Ausgabe des Ergebnisses.
Simulation RAM durch TM – Beweis
Abspeichern derRegistermaschinenkonfigurationauf der TM:
Den Befehlsz¨ahler kann die TM im Zustand abspeichern, da die L¨ange des RAM-Programms konstant ist.
Die Registerinhalte werden wie folgt auf Band 2 abgespeichert:
##0#bin(c(0))##bin(i1)#bin(c(i1))##. . .
. . .##bin(im)#bin(c(im))### , wobei 0,i1, . . . ,im die Indizes der benutzten Register sind.
Die L¨ange des Speicherinhalts auf Band 2 ist durchO(n+t(n)) beschr¨ankt, weil die RAM f¨ur jedes neue Bit, das sie erzeugt, mindestens eine Zeiteinheit ben¨otigt.
Simulation RAM durch TM – Beweis
Rechenschritt f¨ur Rechenschritt simuliert die TM nun die Konfigurationsver¨anderungen der RAM.
Dazu ruft die TM das im Programmz¨ahlerb angegebene UnterprogrammMb auf.
Das UnterprogrammMb
kopiert den Inhalt der in Programmzeile b angesprochenen Register auf Band 1,
f¨uhrt die notwendigen Operationen auf diesen Registerinhalten durch,
kopiert dann das Ergebnis in das in Zeile b angegebene Register auf Band 2 zur¨uck, und
aktualisiert zuletzt den Programmz¨ahler b.
Simulation RAM durch TM – Beweis
Laufzeitanalyse:
Die Initialisierung (von Band 2) erfordert ZeitO(n).
Herstellung der Ausgabe (von Band 2 auf Band 1) erfolgt in Zeit O(n+t(n))
Jede RAM-Schritt-Simulation durch ein UnterprogrammMb hat eine Laufzeit, die polynomiell in der L¨angeℓder Bandinschrift auf Band 2 beschr¨ankt ist, also durch ein Polynomp(ℓ).
Ein RAM-Schritt kostet also Zeitp(n+t(n)); dies ist ein Polynom inn.
Somit ist die Gesamtlaufzeit der Simulation beschr¨ankt durch q(n) =t(n)·p(n+t(n)), somit polynomiell in n+t(n).
Simulation TM durch RAM
Satz:
Jedet(n)-zeitbeschr¨ankte TM kann durch eine RAM simuliert wer- den, die
uniform O(t(n) +n)
logarithmisch O((t(n) +n) log(t(n) +n)) zeitbeschr¨ankt ist.
Simulation TM durch RAM – Ansatz
Beweis des Satzes:
Wir k¨onnen annehmen, dass die gegebene TM ein einseitig beschr¨anktes Band hat, dessen Zellen mit 0,1,2,3, . . . durchnummeriert sind.
Die Zust¨ande und Zeichen werden ebenfalls durchnummeriert und mit ihren Nummern identifiziert, so dass sie in den Registern abgespeichert werden k¨onnen. Das Zeichen “Blank”
hat Nummer 0.
Register 1 speichert den Index der Kopfposition.
Register 2 speichert den aktuellen Zustand.
Die Register 3,4,5,6, . . .speichern die Inhalte der Bandpositionen 0,1,2,3, . . . .
Simulation TM durch RAM – Beweis
Die TM wird nun Schritt f¨ur Schritt durch die RAM simuliert.
Auswahl des richtigen TM-¨Ubergangs
Die RAM verwendet eine zweistufigeif-Abfrage:
Auf einer ersten Stufe von |Q|vielen if-Abfragen wird der aktuelle Zustand selektiert.
F¨ur jeden m¨oglichen Zustand, gibt es dann eine zweite Stufe von|Γ|vielenif-Abfragen, die das gelesene Zeichen selektieren.
Durchf¨uhrung des TM-¨Ubergangs
Je nach Ausgang derif-Abfragen aktualisiert die RAM den TM-Zustand in Register 2,
die TM-Bandinschrift in Registerc(1) und die TM-Bandposition in Register 1.
Laufzeitanalyse im uniformen Kostenmodell
Die Initialisierung kann in Zeit O(n) durchgef¨uhrt werden.
Die Simulation jedes einzelnen TM-Schrittes hat konstante Laufzeit.
Insgesamt ist die Simulationszeit somitO(n+t(n)).
Laufzeitanalyse im logarithmischen Kostenmodell
Die in den Registern gespeicherten Zahlen repr¨asentieren Zust¨ande, Zeichen und Bandpositionen.
Zust¨ande und Zeichen haben eine konstante Kodierungsl¨ange.
Die Bandpositionen, die w¨ahrend der Simulation angesprochen werden, sind durch max{n,t(n)} ≤n+t(n) beschr¨ankt. Die Kodierungsl¨ange dieser Positionen ist alsoO(log(t(n) +n)).
Damit kann die Simulation jedes einzelnen TM-Schrittes in Zeit O(log(t(n) +n)) durchgef¨uhrt werden.
Insgesamt ergibt sich somit eine Simulationszeit von O((t(n) +n) log(t(n) +n).
Zusammenfassung
Die Mehrband-TM kann mit quadratischem Zeitverlust durch eine (1-Band) TM simuliert werden.
TM und RAM (mit logarithmischen Laufzeitkosten) k¨onnen sich gegenseitig mit polynomiellem Zeitverlust simulieren.
Wenn es uns also
”nur“ um Fragen der Berechenbarkeit von Problemen (oder um ihre L¨osbarkeit in polynomieller Zeit) geht, k¨onnen wir wahlweise auf die TM, die Mehrband-TM oder die RAM zur¨uckgreifen.
Zwei Vorschl¨age
Im Jahr 1936 schlugen Alonzo Church (USA) und Alan Turing (England) unabh¨angig voneinander vor, den intuitiven Begriff
“f ist algorithmisch berechenbar”
zu pr¨azisieren:
Church durch den sog. Lambda-Kalk¨ul, Turing durch die Turingmaschine
(beide wechselseitig aufeinander reduzierbar).
Alan Turing
Alonzo Church
Die Church-Turing-These
Church-Turing-These
Die Klasse der TM-berechenbaren Funktionen stimmt mit der Klasse der “im intuitiven Sinne algorithmisch berechenbaren” Funktionen
¨uberein.
Kritisch ist die Implikation:
f im intuitiven Sinne algorithmisch berechenbar
⇒ f TM-berechenbar
Argumente f¨ur die Church-Turing-These
Turings Analyse des Rechenvorgangs Erfahrung seit ¨uber 70 Jahren
Reduktionsm¨oglichkeit von Erweiterungen des TM-Modells auf die Basisform
die Berechnungs¨aquivalenz vieler andersartiger
Programmierformalismen mit dem Modell der Turingmaschine (darunter Lambda-Kalk¨ul, rekursive Funktionen,
Markov-Kalk¨ul, h¨ohere Programmiersprachen)
Grundannahme f¨ur die folgenden ¨ Uberlegungen
Wir werden die TM-berechenbaren Funktionen mit den im intuitiven Sinne berechenbaren Funktionen identifizieren.
Dabei benutzen wir die Church-Turing-These in zwei Weisen:
Unwesentliche Verwendung:
Behauptung, dass ein gegebener Algorithmus im intuitiven Sinne auch durch eine TM realisierbar ist.
Wesentliche Verwendung:
Behauptung, dass eine nicht TM-berechenbare Funktion durch keinerlei Algorithmus berechenbar ist.
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.