Begleitmaterial zur Vorlesung Berechenbarkeit und Komplexität I Wolfgang Merkle Universität Heidelberg, Institut für Informatik Teil 1 Komplexitätstheorie Einleitung Verschiedene Komplexitätsmaße Beispiel 1 Betrachte die Sortierverfahren Quicksort und Heapsort. Der Zugriff auf die zu sortierende Liste x1 , . . . , xn erfolge dabei nur durch Abfragen der Form xi < xj ?“, man spricht dann von Blackbox-Verfahren. ” Um eine solche Liste mit n Elementen zu sortieren - benötigt Quicksort O(n log n) Vergleiche im Durchschnitt und O(n2 ) Vergleiche im schlechtesten Fall, - benötigt Heapsort O(n log n) Vergleiche sowohl im Durchschnitt, wie auch im schlechtesten Fall O(n2 ). Die Begriffe Durchschnitt und schlechtester Fall beziehen sich für gegebenes n auf die Menge aller möglichen Eingaben mit n zu sortierenden Elementen. Man kann dabei annehmen, dass diese Menge gerade alle Permutation der Zahlen von 1 bis n umfasst, wenn man Blackbox-Verfahren zum Sortieren betrachtet bei denen die Elemente der Eingabe als paarweise verschiedenen vorausgesetzt sind. 2 W. Merkle Komplexitätstheorie SS 2016 Beispiel 2 Die Addition zweier Binärzahlen der Länge n kann auf einer geeigneten Mehrband-Turingmaschine in linearer Zeit, das heißt in Zeit O(n), durchgeführt werden. Auf einer Registermaschine mit Grundoperation Addition kann man den Zeitaufwand entweder als konstant ansehen, dies nennt man Einheitskostenmaß, oder ebenfalls als linear in n, dies nennt man logarithmisches Kostenmaß. Beachte im Zusammenhang mit der letzteren Bezeichnung, dass die Länge n der Binärdarstellungen und der angenommene Aufwand O(n) logarithmisch in der Größe der betrachteten Zahlen ist. Die Komplexität von Berechnungsverfahren und von Problemen werden in der theoretischen Informatik auf verschiedene Weisen beschrieben, diese unterscheiden sich durch - das verwendete Berechnungsmodell (zum Beispiel Turingmaschinem, Registermaschinen oder Blackbox-Verfahren), - das Komplexitätsmaß (zum Beispiel Zeit, Platz oder Anzahl Vergleiche), - den zur Beschreibung verwendeten Parameter (zum Beispiel Länge der Darstellung der Eingabe oder Anzahl Listenelemente), - die Gruppierung und Gewichtung der möglichen Eingaben (zum Beispiel Durchschnitt oder schlechtester Fall bezogen auf alle Eingaben mit gleicher Länge der Darstellung). Beispiel 3 Erhält Heapsort als Eingaben eine Permutaton der Zahlen von 1 bis n, so hat die die Darstellung dieser Liste über dem Binäralphabet ungefähr die Länge n log n (siehe Übungen). Die Anzahl O(n log n) der von Heapsort durchgeführten Vergleiche ist also linear in der Länge der Darstellung der Eingabe. Im Folgenden betrachten wir normalerweise - deterministische, nichtdeterministische und probabilistische Turingmaschinen, - Zeit- und Platzbedarf, gemessen in der Länge der Binärdarstellung der Eingabe, - die Komplexität im schlechtesten Fall, bezogen auf alle Eingaben gleicher Länge. W. Merkle Komplexitätstheorie SS 2016 3 Notation Alphabete, Wörter, Sprachen Definition 4 (Alphabete) Ein Alphabet ist ein Paar (Σ, <Σ ) aus eine endliche Menge Σ und einer strikten Ordnung <Σ auf den Elementen. Gelegentlich wird auch eine Menge Σ = {a1 , . . . , ak } als Alphabet bezeichnet, wobei dann implizit eine Ordnung <Σ auf Σ durch a1 <Σ · · · <Σ ak festgelegt ist. Die Elemente eines Alphabet werden als Buchstaben oder Symbole des Alphabets bezeichnet. Wir schreiben < statt <Σ , wenn aus dem Kontext klar ist, dass das Alphabet Σ gemeint ist. Definition 5 (Wörter) Sei Σ ein Alphabet. Ein Wort über Σ ist eine endliche Folge von Buchstaben aus Σ. Das leere Wort λ ist die eindeutig bestimmte derartige Folge der Länge 0. Für ein Wort w über Σ der Form w = b1 . . . bn mit bi ∈ Σ bezeichnet |w| = n die Länge von w und wir setzen w(i) = bi für i = 1, . . . , |w|. Definition 6 (Sprachen) Es sei Σ ein Alphabet. Eine Sprache über Σ ist eine Menge von Wörtern über Σ ∗ . Die Menge aller Wörter über Σ wird mit Σ ∗ bezeichnet. Weiter sei für n ≥ 0 Σ ≤n = {w ∈ Σ ∗ : |w| ≤ n}, Σ ≥n = {w ∈ Σ ∗ : |w| ≥ n}, Σ n = {w ∈ Σ ∗ : |w| = n} = Σ ≤n ∩ Σ ≥n , Σ + = {w ∈ Σ ∗ : |w| > 0} = Σ ∗ \ {λ}} = Σ ≥1 . Weitere Sprachen wie Σ <n oder Σ >n sind analog definiert. Definition 7 (Längen-lexikographische Ordnung) Sei Σ = {a1 , . . . , ak } ein Alphabet. Die lexikographische Ordnung ≤lex auf der Menge der Wörter über Σ ist wie folgt definiert: für Wörter u und v über Σ und m = min{|u|, |v|} gilt u ≤lex v genau dann, falls u(i) = v(i) für i = 1, . . . , m gilt, und zusätzlich |u| ≤ |v|, oder falls es einen Index i in {1, . . . , m} mit u(i) 6= v(i) gibt, und für den kleinsten solchen Index i0 gilt u(i0 ) <Σ v(i0 ). Die längen-lexikographische Ordnung ≤llex auf der Menge der Wörter über Σ ist wie folgt definiert: für Wörter u und v über Σ gilt u ≤llex v g.d.w. |u| < |v| oder (|u| = |v| und u ≤lex v). 4 W. Merkle Komplexitätstheorie SS 2016 Bemerkung 8 Die Relationen ≤lex und ≤llex sind für jedes feste Alphabet Σ tatsächlich Ordnungen auf der Menge aller Wörter über Σ, das heißt, beide Relationen sind total, reflexiv, antisymmetrisch und transitiv. Bemerkung 9 Für die Relation ≤llex hat jedes Wort nur endlich viele Vorgänger. Insbesondere gibt es für ≤llex keine echt absteigenden Ketten, das heißt, die Relation ≤llex ist eine Wohlordnung. Dies trifft für die Relation ≤lex im Allg. nicht zu, falls das betrachtete Alphabet mindestens zwei Buchstaben hat, gibt es für ≤lex echt absteigenden Ketten (siehe die Übungen). Definition 10 (Identifikation von N und Σ ∗ ) Die Menge der natürlichen Zahlen ist N = {0, 1, . . .}. Zu einem gegebenen Alphabet Σ sei Σ λ = zΣ 0 <llex z1 <llex . . . eine Auflistung der Wörter über Σ in längen-lexikographischer Ordnung, wobei wir im Fall Σ = {0, 1} auch zi statt zΣ i schreiben. Gelegentlich identifizieren wir N und Σ ∗ vermöge der Bijektion i 7→ zΣ i . Turingmaschinen Anschaulich besteht eine Turingmaschine aus - einem endlichen Programm, - einer endliche Menge von Zuständen, - einem oder mehreren Arbeitsbändern. Das Programm steuert den Ablauf der Rechnung, der jeweils aktuelle Zustand und die Bänder speichern Information. Ein Arbeitsband besteht aus einer beidseitig unendlichen Folge von Feldern (oder Zellen), die jeweils mit einem Symbol des Bandalphabets beschriftet sind. Jedes Arbeitsband hat einen Schreib-/Lesekopf, kurz: Kopf. Der Kopf eines Bandes steht zu jedem Zeitpunkt auf einem Feld dieses Bandes, dem aktuell besuchten Feld, und nur das Symbol auf dem aktuell besuchten Feld kann gelesen oder überschrieben werden. Definition 11. Sei k ≥ 1. Eine k-Band-Turingmaschine ist ein 6Tupel M = (Q, Σ, Γ, δ, q0 , F ); dabei ist W. Merkle Komplexitätstheorie SS 2016 5 - Q die endliche Zustandsmenge deren Elemente als Zustände bezeichnet werden, q0 ∈ Q ist der Startzustand und F ⊆ Q ist die Menge der akzeptierenden Zustände, - Σ ist das Eingabealphabet und Γ das Bandalphabet mit Σ ⊆ Γ und ∈ Γ \ Σ, - δ ist die Übergangsrelation (auch: das Programm) mit δ ⊆ Q × Γ k × Q × Γ k × {L, R, S}k , die Elemente von δ heißen Anweisungen oder Instruktionen von δ. Die Rechnung einer k-Band-Turingmaschine wird durch ein Programm gesteuert, das aus endlich vielen Anweisungen besteht. Die Turingmaschine arbeitet in Schritten, wobei in jedem Schritt eine Anweisung ausführt wird, deren Bedingungsteil mit dem aktuellen Zustand und den k aktuell gelesenen Symbolen übereinstimmt. Die Ausführung einer Anweisung besteht darin, gemäß der Anweisung in einen neuen Zustand überzugehen, vorher auf jedem der k Bänder das aktuell gelesene Feld zu überschreiben und dann auf diesem Feld zu bleiben oder auf eines der beiden Nachbarfelder zu wechseln. Die geschriebenen Buchstaben und die Bewegungen auf den verschiedenen Bändern können dabei unabhängig voneinander gewählt werden. Genauer gilt: eine Anweisung einer Turingmaschine wie in Definition 11 hat die Form (q, b1 , . . . , bk , q 0 , b01 , . . . , b0k , B1 , . . . , Bk } mit q, q 0 ∈ Q, bi , b0i ∈ Γ und Bi ∈ {L, R, S} für i = 1, . . . , k. Eine solche Anweisung erlaubt es, falls der aktuelle Zustand gleich q und die auf den k Bändern aktuell gelesesenen Buchstaben gleich b1 bis bk sind, in den neuen Zustand q 0 überzugehen, die aktuell gelesenen Buchstaben mit b01 bis b0k zu überschreiben und danach auf Band i die Bewegung Bi auszuführen. Solche übergänge werden durch die in Definition 13 definierte EinschrittÜbergangsrelation formaliesiert. Konfigurationen und Rechnungen Definition 12 Sei M = (Q, Σ, Γ, δ, q0 , F ) eine k-Band-Turingmaschine. Eine Bandinschrift von M ist eine Abbildung α: Z → Γ mit α(j) = für fast alle j ∈ Z. Eine Konfiguration von M ist ein (2k + 1)-Tupel (q, α1 , `1 , . . . , αk , `k ) mit q ∈ Q, Bandinschriften α1 , . . . , αk und `1 , . . . , `k ∈ Z. 6 W. Merkle Komplexitätstheorie SS 2016 Definition 13 Sei M = (Q, Σ, Γ, δ, q0 , F ) eine k-Band-Turingmaschine. Die Einschritt-Übergangsrelation −→ von M ist eine binäre ReM lation auf der Menge der Konfigurationen von M wobei (q, α1 , `1 , . . . , αk , `k ) −→ (q 0 , α10 , `01 , . . . , αk0 , `0k ) M genau dann gilt, wenn es in δ eine Anweisung der Form (q, α1 (`1 ), . . . , αk (`k ), q 0 , b1 , . . . , bk , B1 , . . . , Bk ) gibt, so dass für i = 1, . . . , k und alle j ∈ Z gilt ( `i − 1, bi , falls j = `i , 0 0 und `i = `i , αi (j) = αi (j), sonst, `i + 1, falls Bi = L, falls Bi = S, falls Bi = R. m Die m-Schritt-Übergangsrelation −→ von M wird induktiv für alM le natürlichen Zahlen m und alle Konfigurationen K und K 0 wie folgt definiert: 0 Induktionsanfang m = 0: Es gelte K −→ K 0 genau dann, wenn K = K 0 . M m+1 Induktionsschrit von m nach m+1: Es gelte K −→ K 0 genau dann, wenn M m e e gibt mit K −→ e −→ K 0 . es eine Konfiguration K K und K M M ∗ Die Mehrschritt-Übergangsrelation −→ von M schließlich ist da∗ M durch definiert, dass K −→ K 0 genau dann gilt, wenn es eine natürliche m M Zahl m mit K −→ K 0 gibt. M Definition 14 Sei M = (Q, Σ, Γ, δ, q0 , F ) eine k-Band-Turingmaschine. Für ein Wort x aus Σ ∗ ist die Startkonfiguration von M bei Eingabe x gleich Kstart (x) = (q0 , α1 , 0, . . . , αk , 0, ), wobei die Bandinschriften α2 bis αk alle konstant gleich sind und für α1 gilt: ( x(j), falls 1 ≤ j ≤ |x|, α1 (j) = , sonst. Auf eine Konfiguration (q, α1 , `1 , . . . , αk , `k , ) von M sind von den Anweisungen aus δ genau die der Form (q, α1 (`1 ), . . . , αk (`k ), . . .) anwendbar. Eine Konfiguration von M heißt Stoppkonfiguration von M , falls es in δ keine auf diese Konfiguration anwendbare Anweisung gibt. W. Merkle Komplexitätstheorie SS 2016 7 Definition 15 Sei M = (Q, Σ, Γ, δ, q0 , F ) eine k-Band-Turingmaschine. Eine terminierende (auch: endliche) Rechnung von M bei Eingabe x ist eine endliche Konfigurationenfolge K0 , . . . Kt mit (i) K0 ist gleich der Startkonfiguration Kstart (x) von M bei Eingabe x, 1 (ii) Ki −→ Ki+1 für i = 0, . . . , t − 1, M (iii) Kt ist Stoppkonfiguration von M . Eine solche terminierende Rechnung von M ist akzeptierend, falls die Stoppkonfiguration Kt die Form (q, . . .) für einen Zustand q aus F hat. Eine nichtterminierende (auch: unendliche) Rechnung von M bei Eingabe x ist eine unendliche Konfigurationenfolge K0 , K1 , . . . mit (i) und so, dass die Bedingung in (ii) für alle i ≥ 0 gilt. Die Turingmaschine M heißt total, falls für alle Eingaben aus Σ ∗ alle Rechnungen terminierend sind. Definition 16 Sei M = (Q, Σ, Γ, δ, q0 , F ) eine k-Band-Turingmaschine. Die Turingmaschine M heißt deterministisch, falls die Übergangsfunktion δ in dem Sinne eine partielle Funktion Q × Γ k → Q × Γ k × {L, S, R}k definiert, dass es für jedes Tupel der Form (q, b1 , . . . , bk ) aus Q × Γ k in der Relation δ höchstens eine Anweisung der Form (q, b1 , . . . , bk , . . .) gibt. Bemerkung 17 Bei den Anweisung einer k-Band-Turingmaschine wird das Tupel aus den ersten k+1 Komponente als Bedingungsteil und das Tupel aus den restlichen Komponenten als Operationsteil bezeichnet: (q, b1 , . . . , bk , q 0 , b01 , . . . , b0k , B1 , . . . , Bk ). | {z } | {z } Bedingungsteil Operationsteil Das Programm einer deterministischen Turingmaschine enthält zu jeder möglichen Bedingungsteil höchstens einen Operationsteil. Da die auf eine Konfiguration anwendbaren Anweisungen alle den gleichen, durch die Konfiguration festgelegten Bedingungsteil haben, ist damit für eine deterministische Turingmaschine in jeder Konfiguration höchstens eine Anweisung anwendbar. Folglich gibt es bei jeder Eingabe genau eine mögliche, entweder endlich oder unendliche, Rechnung. 8 W. Merkle Komplexitätstheorie SS 2016 Entscheidbare Mengen und berechenbare Funktionen Definition 18 Sei M = (Q, Σ, Γ, δ, q0 , F ) eine k-Band-Turingmaschine. Die Turingmaschine M akzeptiert eine Eingabe x, falls es eine akzeptierende Rechnung von M bei Eingabe x gibt. Die von M erkannte Sprache ist L(M ) = {x ∈ Σ ∗ : M akzeptiert x}. Eine Sprache L heißt entscheidbar (auch: rekursiv), falls sie von einer totalen deterministischen Turingmaschine M erkannt wird, in diesem Fall sagt man auch, dass die Turingmaschine M die Sprache L entscheidet. Das Berechnen von Funktionen wird über deterministische Turingmaschinen definiert; andernfalls könntes es zu einer Eingabe verschiedenen Rechnungen und damit auch unterschiedliche Funktionswerte geben. Definition 19 Sei M = (Q, Σ, Γ, δ, q0 , F ) eine k-Band-Turingmaschine. Die Ausgabefunktion out bildet jede Konfigurationen von M auf ein Wort über Γ \ {} ab, genauer gilt out(q, α1 , `1 , . . . , αk , `k ) = αk (`k + 1) · · · αk (`k + m), dabei ist m minimal gewählt, so dass gilt αk (`k + m + 1) = . Die von M berechnete partielle Funktion ist ϕM : Σ ∗ x (Γ \ {})∗ out(Kt ), falls es eine terminierende Rechnung der Form 7→ Kstart (x), . . . , Kt gibt ↑, sonst. → Eine partielle Funktion ϕ ist partiell berechenbar, falls es eine deterministische Turingmaschine M mit ϕ = ϕM gibt. Eine Funktion f ist berechenbar (auch: rekursiv), falls es eine totale deterministische Turingmaschine M mit f = ϕM gibt. Bemerkung 20 Eine Menge A ist genau dann entscheidbar, wenn ihre durch ( 1, falls x ∈ A, cA (x) = 0, sonst, definierte charakteristische Funktion berechenbar ist. W. Merkle Komplexitätstheorie SS 2016 9 Bemerkung 21 Wir werden später zeigen, dass sich der Begriff von entscheidbarer Sprache nicht ändert, wenn man seine Definition so abschwächt, dass die erkennende Turingmaschine nicht als deterministisch vorausgesetzt wird. Das heißt, jede von einer totalen aber nicht notwendigerweise deterministischen Turingmaschine erkannte Sprache ist bereits entscheidbar. Bemerkung 22 Die Begriffe einer berechenbaren Funktion aus Definition 19 läßt sich in natürlicher Weise auf Funktionen von N nach N übertragen, indem man N mit der Menge der Wörter über einem geeigneten Alphabet Σ identifiziert. In der Komplexitätstheorie verwendet man dazu normalerweise das binäre Alphabet {0, 1}. Rekursiv aufzählbare Mengen Während in der Komplexitätstheorie im Wesentlichen nur entscheidbare Sprachen eine Rolle spielen, werden in der Berechenbarkeitstheorie auch rekursiv aufzählbare Sprachen betrachten, das sind Sprachen, die von einer nicht notwendigerweisen totalen deterministischen Turingmaschine erkannt werden. Die rekursiv aufzählbaren Sprachen bilden eine echte Oberklasse der entscheidbaren Sprachen, das Standardbeispiel für eine rekursiv aufzählbare aber nicht entscheidbare Sprache ist das Halteproblem. Definition 23 Eine Sprache L heißt rekursive aufzählbar, kurz: r.a., falls sie von einer deterministischen Turingmaschine M erkannt wird, das heißt, falls gilt L = L(M ). Bemerkung 24 Für jede Menge A sind die folgenden Eigenschafte äquivalent. (i) Die Menge A ist r.a. (ii) Die Menge A wird von einer deterministischen Turingmaschine M erkannt, bei der alle Zustände akzeptierend sind, das heißt, eine Eingabe wird genau dann akzeptiert, wenn die zugehörige Rechnung terminiert. (iii) Die Menge A ist gleich dem Definitionsbereich einer partiell berechenbaren Funktion. Bemerkung 25 Eine Menge A ist genau dann r.a., wenn ihre durch ( 1, falls x ∈ A, ξA (x) = 0, sonst, 10 W. Merkle Komplexitätstheorie SS 2016 definierte partielle charakteristische Funktion partiell berechenbar ist. Bemerkung 26 Der Begriff von r.a. Sprache ändert sich nicht, wenn man seine Definition so abschwächt, dass die erkennende Turingmaschine nicht als deterministisch vorausgesetzt wird. Das heißt, jede von einer nicht notwendigerweise deterministischen Turingmaschine erkannte Sprache ist bereits r.a.