Komplexitätstheorie - Universität Heidelberg

Werbung
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.
Herunterladen