Berechenbarkeit und Komlexität Entscheidbarkeit und Unentscheidbarkeit Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Comutation (RISC) Johannes Keler University, Linz, Austria htt://www.risc.uni-linz.ac.at Entscheidungsrobleme (Entscheidungs)roblem P: (Entscheidungs)frage P mit formalen Parameters n 1,..., n k. Ist die natürliche Zahl n eine Quadratzahl? Eine Instanz P(a 1,...,a k ) des Problems: Frage P mit konkreten Argumenten a 1,..., a k. Ist die natürliche Zahl 15 eine Quadratzahl? Die Srache L des Problems: L := {(a 1,...,a k ) Die Antwort auf P(a 1,...,a k ) ist ja } Die Menge aller Quadratzahlen. Wir beschäftigen uns im Folgenden mit Entscheidungsroblemen. Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 1/24 Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 2/24 Die Entscheidbarkeit von Problemen Die Codierung einer Turing-Maschine Problem P heißt entscheidbar, wenn L rekursiv ist. Es existiert eine Turing-Maschine (Algorithmus) M, die für jede Instanz P(a 1,..., a k ) terminiert und ja oder nein antwortet: Sowohl L als auch L sind rekursiv aufzählbar. M kann also alle Argumente (a 1,..., a k ) aufzählen, für die die Antwort auf P(a 1,..., a k ) ja ist und (gleichzeitig) auch alle Argumente, für die die Antwort nein ist. Für die gegebenen Argumente (a 1,..., a k ) wartet M, bis diese in einer der beiden Aufzählungen auftauchen und gibt dementsrechend die Antwort ja oder nein. Problem P heißt semi-entscheidbar, wenn L rekursiv aufzählbar ist. Es existiert eine Turing-Maschine (Semi-Algorithmus), die für jede Instanz P(a 1,..., a k ) entweder ja oder aber gar nicht antwortet: M kann alle Argumente (a 1,..., a k ) aufzählen, für die die Antwort auf P(a 1,..., a k ) ja ist. Für die gegebenen Argumente (a 1,..., a k ) wartet M, bis diese in der Aufzählung auftauchen und antwortet dann ja ; tauchen sie aber nie auf, wartet M unendlich lange und antwortet daher nie. Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 3/24 Turing-Maschine M = ({q 1,...,q n }, {0,1}, {0,1, },q 1, {q 2 },δ). Die Codierung M von M: Eine Folge von 0en und 1en der Form: 111 code 1 11 code 2 11... 11 code r 111 code 1,..., code r sind die Codierungen der r Oerationen von M. Jede Oeration ist bestimmt durch eine Abbildung δ(q i, X j ) = (q k, X l, D m ) X 1 = 0,X 2 = 1,X 3 =,D 1 = L,D 2 = R Richtung S kann durch Folge RL ersetzt werden. code = 0 i 10 j 10 k 10 l 10 m Codierung des Tuels (i, j, k, l, m) Eine Turing-Maschine lässt sich als Bit-Folge codieren; es gibt also abzählbar viele Turing-Maschinen. Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 4/24
Die Auflistung aller Turing-Maschinen Die Diagonalsrache einer Turing-Maschine Wir können alle Turing-Maschinen als M 1,M 2,M 3,... reihen. Sortierung der Codierungen nach Länge und dann bit-alhabetisch. Wir können alle möglichen Eingabewörter w 1,w 2,w 3,... reihen. Sortierung der Wörter nach Länge und dann bit-alhabetisch. Wir können die folgende unendliche Matrix konstruieren: M 1 M 2 M 3... w 1 a 11 a 12 a 13... w 2 a 21 a 22 a 23... w 3 a 31 a 32 a 33.......... Die Diagonalsache L d := {w j a j j = 1}: w j L d a j j = 1 w j L(M j ) w j ist ein Wort der Diagonalsrache, wenn es nicht von der Turing-Maschine M j akzetiert wird. Satz: Die Diagonalsrache ist nicht rekursiv aufzählbar. Angenommen, L d wäre rekursiv aufzählbar, dann gäbe es eine Turing-Maschine M j mit L d = L(M j ). Es gilt nun w j L d a j, j = 1 w j L(M j ) und daher L d L(M j ). Die Diagonalsrache ist daher auch nicht rekursiv. { 0, wenn wi L(M a ij := j ) 1, sonst Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 5/24 Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 6/24 Das Akzetierungsroblem Das Halteroblem Das Akzetierungsroblem für Turingmaschinen: Akzetiert die Turing-Maschine mit Codierung M das Wort w? Die universelle Srache L u ist die Srache des Akzetierungsroblems: L u = {( M, w) w L(M)} Turing-Maschine M akzetiert w ( M,w) L u Eine universelle Turing-Maschine akzetiert L u. Existiert, da L u rekursiv aufzählbar ist (Beweis siehe Skritum). Ist ein Interreter für Turing-Maschinen. Satz: das Akzetierungsroblem ist unentscheidbar (d.h. L u ist nicht rekursiv). Angenommen, es gäbe M u, das L u akzetiert und für jede Berechnung terminiert. Dann könnten wir M mit L(M ) = L d konstruieren: M bestimmt für die Eingabe w den Index i sodass w = w i. M bestimmt M i und übergibt die Eingabe ( M i,w i) an M u. M u akzetiert die Eingabe: M akzetiert w nicht. M u akzetiert die Eingabe nicht: M akzetiert w. Eine universelle Turing-Maschine terminiert nicht für alle Eingaben. Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 7/24 Ein scheinbar etwas einfacheres Problem. Das Halteroblem für Turing-Maschinen:+ Endet die Berechnung der Turing-Maschine M für Eingabe w? Die Srache dieses Problems: L h = {( M, w) M hält bei Eingabe w an} Satz: das Halteroblem ist unentscheidbar (d.h. L h ist nicht rekursiv). Angenommen, es gäbe M h, das L h akzetiert und für jede Berechnung terminiert. Dann könnten wir M mit L(M ) = L u konstruieren: M leitet seine Eingabe ( M, w) an M h weiter. M h akzetiert die Eingabe nicht: M akzetiert die Eingabe nicht. M h akzetiert die Eingabe: M übergibt w an M und wartet auf das Ende der Berechnung. M akzetiert ( M,w) genau dann wenn M das Wort w akzetiert. M terminiert immer; wir wissen aber, dass L u nicht rekursiv ist! Es kann auch kein Algorithmus zur Lösung des Halteroblems existieren. Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 8/24
Das Halteroblem Der Satz von Rice Volkstümliche Version (nach Wikiedia). Angenommen, es gibt eine Funktion haltetest: haltetest(programm, Eingabe) wenn Programm(Eingabe) terminiert dann return Ja sonst return Nein Dann lässt sich diese im folgenden Programm verwenden: test(programm) wenn haltetest(programm, Programm) = Ja dann laufe in einer leeren Endlosschleife Wenn man nun der Prozedur test sich selbst als Eingabe übergibt, kann diese kein richtiges Ergebnis liefern: test(test); Dieser Aufruf terminiert genau dann, wenn er nicht terminiert. Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 9/24 Welche Eigenschaften von Turing-Maschinen (d.h. rekursiv aufzählbarer Srachen) sind überhaut entscheidbar? Eine Eigenschaft rekursiv aufzählbarer Srachen ist eine Menge solcher Srachen. Eine Eigenschaft S heißt trivial wenn S leer ist oder alle rekursiv aufzählbaren Srachen enthält. Eine Eigenschaft S heißt entscheidbar, wenn die Srache L S := { M L(M) S} rekursiv ist (d.h. wenn für jede Turing-Maschine M entschieden werden kann, ob die von ihr akzetierte Srache in S enthalten ist). Satz von Rice (1953): Keine nicht-triviale Eigenschaft rekursiv aufzählbarer Srachen ist entscheidbar. Alle interessanten Eigenschaften von Turing-Maschinen (d.h. der von ihnen akzetierten Srachen) sind unentscheidbar. Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 10/24 Der Satz von Rice Weitere unentscheidbare Probleme Beweis: Sei S eine nicht-triviale Eigenschaft r.a. Srachen. Annahme: S (andernfalls betrachten wir S). Angenommen S wäre durch eine Turing-Maschine M S entscheidbar. Dann können wir eine Turing-Maschine A konstruieren, die aus der Eingabe ( M, w) die Ausgabe M roduziert, sodass L(M ) S w L(M) Da S nicht-trivial und entscheidbar ist, können wir eine Turing-Maschine M L mit L := L(M L ) S finden. M simuliert M auf w. Akzetert M das Wort nicht, akzetiert es auch M nicht. Ansonsten simuliert M das Verhalten von M L auf w und akzetiertjw genau dann, wenn es von M L akzetiert wird., wenn w L(M) Also L(M ) = L, wenn w L(M) Wir konstruieren eine Turing-Maschine M u zur Entscheidung von L u : Wende A auf die Eingabe ( M,w) an und erzeuge M. M u akzetiert ( M,w) gdw. M S die Eingabe M akzetiert. Wir wissen aber bereits, dass L u nicht rekursiv ist. Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 11/24 Anwendungen des Satzes von Rice. Das eingeschränkte Akzetierungsroblem ist unentscheidbar. Akzetiert die Turing-Maschine mit Codierung M die Eingabe ǫ? L u,ǫ := { M ǫ L(M)} ist nicht rekursiv. L u,ǫ = L SA, für eine nicht-triviale Eigenschaft S A. Das eigeschränkte Halteroblem ist unentscheidbar. Endet die Berechnung der Turing-Maschine M für die Eingabe ǫ? L h,ǫ := { M M hält bei Eingabe ǫ an} ist nicht rekursiv. Wäre L h,ǫ rekursiv, wäre auch L u,ǫ rekursiv. Beweis analog zu Beweis für allgemeines Halteroblem. Das Problem L(M 1 ) = L(M 2 )? ist unentscheidbar. Das Problem L(M 1 ) L(M 2 )? ist unentscheidbar. Das Problem L(M) = L? ist unentscheidbar. Es können keine Algorithmen (höchstens Semi-Algorithmen) zur Lösung dieser Probleme existieren. Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 12/24
Das Pflasterungsroblem Das Pflasterungsroblem Auch manche mathematische Probleme können auf Probleme über Turing-Maschinen zurückgeführt werden. Das Pflasterungsroblem: Eine endliche Menge von Tyen von Pflastersteinen der Größe 1 1. Ein Anfangsstein und eine Menge von Nachbarschaftsregeln. Welche Steintyen dürfen horizontal bzw. vertikal benachbart sein? Gesucht ist eine Pflasterung des rechten oberen Quadranten der Ebene beginnend mit dem Anfangsstein an der linken unteren Ecke, sodass die Nachbarschaftsregeln berücksichtigt werden. Ein Pflasterungssystem D = (D,d 0,H,V): D... eine endliche Menge von Pflastersteintyen. d 0 D... der Ty des Anfangssteins. H, V D D... die Mengen der horizontal bzw. vertikal erlaubten Paare von benachbarten Tyen. f ist eine Pflasterung zum Pflasterungssystem D: f : N N D f (0, 0) = d 0 n, m N : (f (n, m), f (n + 1, m)) H n, m N : (f (n, m), f (n, m + 1)) V Das Pflasterungsroblem: Gibt es eine Pflasterung zum Pflasterungssystem D? Satz: Das Pflasterungsroblem ist unentscheidbar. Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 13/24 Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 14/24 Das Pflasterungsroblem Das Pflasterungsroblem Beweis: wir führen das eingeschränkte Halteroblem von Turingmaschinen auf das Pflasterungsroblem zurück. Wir konstruieren zur Turing-Maschine M = (Q, Σ, Γ, q 0, F, δ) ein Pflasterungssystem D M = (D, d 0, H, V), sodass es genau dann eine Pflasterung zu D M gibt, wenn M bei Eingabe ǫ nicht anhält. Wäre das Pflasterungsroblem entscheidbar, dann wäre auch das eingeschränkte Halteroblem entscheidbar. Wir nehmen dabei eine Übergangsfunktion der folgenden Form an: δ : Q Γ Q (Γ {L, R}): δ(q,) = (, η): M liest im Zustand q das Symbol, geht in Zustand über und schreibt Symbol η (L/S-Kof bleibt stationär). δ(q,) = (,L): M liest im Zustand q das Symbol, geht in Zustand über, und bewegt den L/S-Kof nach links (ohne zu schreiben). δ(q,) = (,L): M liest im Zustand q das Symbol, geht in Zustand über, und bewegt den L/S-Kof nach rechts (ohne zu schreiben). (keine Einschränkung der Mächtigkeit von Turing-Maschinen) Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 15/24 Beweis: D enthält die folgenden Pflastersteintyen: Für Γ den Ty Für δ(q, ) = (, η) den Ty (, η) (q, ) Für δ(q, ) = (, R) und η Γ die Tyen Für δ(q, ) = (, L) und η Γ die Tyen Die Tyen (q 0, ) (Anfangsstein) und (q, ) (, η) η und und Benachbarte Tyen: müssen an Rändern zusammenassen. (, η) η (q, ) Pflasterung zu D M : unendliche Berechnung von M bei Eingabe ǫ. Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 16/24
Beisiel Das Korresondenzroblem von Post Turing-Maschine M 4 = ({q 0,q 1 },, { }, 0,,δ): δ(q 0, ) = (q 1, R), δ(q 1, ) = (q 0, L). Pflasterung zu D M : q 1 q 1 q 0 q 0 q 1 q 1 Turing-Maschine kommt nie über zweite Bandzelle hinaus. Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 17/24 Das Korresondenzroblem von Post: Gegeben sind zwei Listen von Wörtern über einem Alhabet Σ w 1,..., w k und x 1,..., x k. Gibt es eine Folge von Zahlen i 1,...,i m {1,..., k}, m 1, sodass w i1... w im = x i1... x im? Beisiel: sei Σ = {0, 1} und w 1 = 1, w 2 = 10111, w 3 = 10 und x 1 = 111, x 2 = 10, x 3 = 0 Es gilt w 2 w 1 w 1 w 3 = 101111110 = x 2 x 1 x 1 x 3 also ist i 1 = 2,i 2 = 1,i 3 = 1,i 4 = 3 eine Lösung. Satz: Das Korresondenzroblem von Post ist unentscheidbar. Sogar, wenn i 1 = 1 festgelegt wird. Beweis siehe Skritum. Als Konsequenz ist zum Beisiel auch unentscheidbar, ob eine kontextfreie Grammatik mehrdeutig ist. Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 18/24 Das Emtiness-Problem Orakel-Turingmaschinen Das Non-Emtiness-Problem: Akzetiert die Turing-Maschine mit Codierung M ein Wort? Die Srache L ne dieses Problems: L ne = { M L(M) } Satz: L ne ist rekursiv aufzählbar aber nicht rekursiv. Beweis siehe Skritum. Das Problem ist nur semi-entscheidbar. Das Emtiness-Problem: Akzetiert die Turing-Maschine mit Codierung M kein Wort? Die Srache L e dieses Problems: L e = { M L(M) = } Satz: L e ist nicht rekursiv aufzählbar. Beweis siehe Skritum. Das Problem ist nicht einmal semi-entscheidbar. Weitere unentscheidbare Probleme. Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 19/24 Was wäre, wenn wir gewisse unentscheidbare Probleme (mit einem stärkeren Berechnungsmodell?) doch entscheiden könnten? Orakel-Turingmaschine M A mit Orakel für A: Srache A Σ. Turing-Maschine mit drei ausgezeichneten Zuständen q?, q j und q n. Ist M A in Zustand q?, wird an das Orakel die Frage gestellt: Ist das Wort rechts vom L/S-Kof (bis zum ersten Leersymbol) in A? Ist Antwort ja, geht M A in den Zustand q j. Ist Antwort nein, geht M A in den Zustand q n. Ist A nicht rekursiv, so kann M A durch keine Turing-Maschine (ohne Orakel) simuliert werden. L(M A ) ist möglicherweise nicht rekursiv aufzählbar. Das Konzet der Orakel-Turingmaschinen ist nützlich zur Klassifikation unentscheidbarer Probleme. Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 20/24
Orakel-Turingmaschinen und Srachen Orakel für das Emtiness-Problem Eine Srache B ist rekursiv aufzählbar bezüglich A: Es gibt eine Orakel-Turingmaschine M A mit B = L(M A ). Eine Srache B ist rekursiv bezüglich A: Es gibt eine Orakel-Turingmaschine M A mit B = L(M A ), deren Berechnungen für jede Eingabe enden. Zwei Srachen sind äquivalent: Jede Srache ist rekursiv bezüglich der anderen. Äquivalente unentscheidbare Probleme sind also gleich schwierig (nicht) zu lösen. Was wäre, wenn wir ein Orakel für das Emtiness-Problem hätten? Nicht jede Srache ist rekursiv bezüglich L e : Es gibt überabzählbar viele Srachen aber nur abzählbar viele Turing-Maschinen. Also gibt es Probleme, die sich nicht mit einer Orakel-Turingmaschine M Le entscheiden lassen. Wir können für solches Problem P ein Orakel annehmen und damit die Probleme lösen, deren Srachen rekursiv bezüglich L(P) sind. Dieser Prozess lässt sich beliebig fortsetzen. Idee für den Aufbau einer Hierarchie von Orakeln. Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 21/24 Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 22/24 Hierachie von Orakeln Klassifikation unentscheidbarer Probleme Wir können so eine Hierachie von Orakeln konstruieren: S 0 := S 1 := { M L(M S 0 ) = } S 2 := { M L(M S 1 ) = }... S i+1 := { M L(M S i ) = }... S 0 = ; das entsrechende Orakel ist trivial. M S 0 entsricht einer Turing-Maschine ohne Orakel. S 1 = L e ; das entsrechende Orakel löst das Emtiness-Problem für Turing-Maschinen ohne Orakel. Das Orakel für S i+1 löst das Emtiness-Problem für die Orakel-Turingmaschinen M Si. Wir erhalten damit eine Hierachie von Srachen über {0,1}: Entscheidbar mit Orakel für S 0 : rekursive Srachen. Entscheidbar mit Orakel für S 1. Entscheidbar mit Orakel für S 2.... Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 23/24 Man kann einige (nicht alle) unentscheidbare Probleme nach ihrer Äquivalenz zu Elementen der Folge S 0,S 1,S 2,... klassifizieren. Das Problem L(M) = Σ. Akzetiert die Turing-Maschine M alle Eingaben? Σ = {0, 1} das Eingabealhabet von M. Satz: Das Problem L(M) = Σ ist äquivalent zu S 2. Beweis: dieses Problem ist rekursiv bezüglich S 2. Wir konstruieren M S 2 3 mit L(M S 2 3 ) = { M L(M) = Σ }. M S 2 3 konstruiert M b S 1, das alle Wörter x Σ aufzählt und für jedes x das Orakel S 1 befragt, ob x L(M). M b S 1 akzetiert seine Eingabe, wenn es ein j x mit x L(M) findet, d.h. L( M b S 1, wenn L(M) = Σ ) = Σ sonst M S 2 3 befragt Orakel S 2 ob L( b M S 1 ) =. Wenn ja, akzetiert M S 2 3 seine Eingabe, ansonsten nicht. Beweis, dass S 2 rekursiv zum Problem ist, ist im Skritum skizziert. Manche unentscheidbare Probleme sind also schwieriger als andere. Wolfgang Schreiner htt://www.risc.uni-linz.ac.at 24/24