Está en la página 1de 54

Berechenbarkeit und Komplexitt I a Grenzen der Berechenbarkeit

Alexander Asteroth Hochschule Bonn-Rhein-Sieg University of Applied Sciences Grantham-Allee 20 D-53757 Sankt Augustin Draft do not distribute

mit Beitrgen von: a

Inhaltsverzeichnis
1 Berechenbarkeit 1.1 While-Programme . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Goto-Programme . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Loop-Programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.1 Nicht LOOP-berechenbare Funktionen . . . . . . . . . . . . 1.4 Rekursive Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.1 Primitiv rekursive Funktionen . . . . . . . . . . . . . . . . . 1.4.2 -rekursive Funktionen . . . . . . . . . . . . . . . . . . . . . 1.5 Turingmaschinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5.1 Einband-Turingmaschinen . . . . . . . . . . . . . . . . . . . 1.5.2 Varianten von Turingmaschinen . . . . . . . . . . . . . . . . 1.5.3 Simulation von Turingmaschinen durch While-Programme . 1.5.4 Programmierung von Turingmaschinen . . . . . . . . . . . 1.6 Weitere Formalismen . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6.1 Registermaschinen . . . . . . . . . . . . . . . . . . . . . . . 1.6.2 -Kalkl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u 1.7 Church-Turing-These . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Entscheidbarkeit 2.1 Entscheidbare Mengen . . 2.2 Unentscheidbare Probleme 2.2.1 Das Halteproblem . 2.2.2 Der Satz von Rice . 3 3 6 7 8 9 9 12 13 13 18 19 19 25 25 25 25 27 27 29 29 31 34 34 36 36 37 39

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

3 Komplexitt a 3.1 Nichtdeterminismus . . . . . 3.2 Zeitkomplexittsklassen . . a 3.2.1 Kostenmae fr TMs u 3.2.2 Komplexittsklassen a 3.3 Das P=NP-Problem . . . .

. . . . .

. . . . .

. . . . .

. . . . . 1

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 4 Lsungen o

Polynomielle Reduktion . . . . . . . . . . . . . . . . . . NP-Hrte, NP-Vollstndigkeit . . . . . . . . . . . . . . a a Das P =NP-Problem . . . . . . . . . . . . . . . . . . . . Reduktionsbeweise zum Nachweis der NP-Vollstndigkeit a Satz von Cook . . . . . . . . . . . . . . . . . . . . . . . . Weitere Beispiele NP-vollstndiger Probeme . . . . . . . a Weitere Beispiele NP-vollstndiger Probeme . . . . . . . a

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

39 40 40 41 43 48 48 50

Kapitel 1 Berechenbarkeit
In diesem Kapitel werden wir nachweisen, dass verschiedene Berechenbarkeitsmodelle zum gleichen Berechenbarkeitsbegri fhren. Dabei beginnen wir mit Konzepten, wie wir sie u aus modernen Programmiersprachen gewohnt sind.

1.1

While-Programme

While-Programme werden induktiv deniert und bestehen im einfachsten Fall aus einer Zeile. xi := 0 oder xi := xj (Zuweisung) xi := xi + 1 (Inkrement) Programme knnen auch zusammengesetzt werden: o P ; Q (Komposition) If xi < xj Then P Else Q Fi (Bedingte Ausfhrung) u Loop xi Do P Od (Loop Schleife) While xi < xj Do P Od (While Schleife) Intuitiv ist den meisten klar, was ein While-Programm wie 2 x0 := x1 ; 6 Loop x2 Do P =6 4 x0 := x0 + 1 Od

tut. Da es aber unser Ziel ist, die Aquivalenz verschiedener Anstze zu zeigen, werden wir a die Semantik eines While-Programms przise formulieren. a 3

Sei XP = {x1 , . . . , xN } die Menge der im Programm P verwendeten Variablen. Eine Variablenbelegung ist eine Abbildung : XP ! N. Das Programm P verndert eine Ana fangsbelegung 0 in m Ausfhrungsschritten zu einer Endbelegung m . Es kann auch der u Fall eintreten, dass das Programm nicht terminiert, dann ist die Endbelegung undeniert (im Zeichen ?). Fr Variablenbelegungen denieren wir die Schreibweise [x u y] mit der Bedeutung: ( y falls x = z 0 (z) = , wenn 0 = [x y] (z) sonst Spter werden wir Anfangsbelegungen konstruieren mssen. Hierzu denieren wir (hilfsa u weise) die Belegung, die allen Variablen aus X den Wert 0 zuweist. Sei X = {x1 , . . . , xn }: 0X : X ! N, [xi1 a1 , x i 2 a2 , . . . , x i k mit 0X (xi ) = 0, i = 1, . . . , n Zur Konstruktion von Anfangsbelegungen verwenden wir folgende Schreibweise: ak ] := 0X [xi1 a1 ][xi2 a2 ] [xik ak ]

d.h. die Belegung, die allen Variablen den Wert 0 zuweist, auer den explizit angegebenen Werten fr xi1 , . . . , xik . u Die Semantik eines While-Programms P kann jetzt analog zu seiner Syntax deniert werden (vgl. auch [Koz97]). Als Zeichen verwenden wir JP K und meinen damit eine Abbildung, die Belegungen auf andere Belegungen abbildet. Fr die Zuweisungen ergibt sich u Jxi := 0K : Jxi := xj K : Jxi := xi + 1K : 7! 7! 7! [xi [xi [xi ( 0] (xj )] (xi ) + 1]

bedingte Ausfhrung: u

Fr Komposition und einfache Schleifen gilt: u JP ; QK = JQK JP K JLoop xi Do P OdK( ) = JP Kn ( )

JIf xi < xj Then P Else Q FiK :

7!

JP K( ) falls (xi ) < (xj ) JQK( ) sonst

Fr While-Schleifen P = While xi < xj Do Q Od kann man ansetzen: u 8 > falls (xi ) (xj ) < JP K( ) = JP K JQK( ) falls JQK( ) deniert ist > : ? sonst 4

wobei n = (xi ) und JP Kn := JP K JP K JP K | {z }


n-mal

Diese rekursive Denition liefert im Fall einer Endlosschleife eine undenierte Semantik. Alternativ kann man die Zahl der Schleifendurchlufe getrennt bestimmen. Sei n 2 N die a n n kleinste Zahl, so dass JQK deniert ist und JQK ( )(xi ) JQKn ( )(xj ). Dann gilt: ( JQKn ( ) falls ein solches n existiert JP K( ) = ? sonst Es ist ublich, einem Algorithmus P die durch ihn berechnete Funktion fP : Nn ! N zu zuordnen. Fr While-Programme P gilt: u fP (a1 , . . . , an ) = (x0 ) wobei = JP K([x1 a1 , . . . , x n an ])

d.h. While-Programme erhalten ihre Eingaben in den Variablen x1 , . . . , xn und liefern das Ergebnis in der Variable x0 . Eine Funktion f : Nn ! N heit While-berechenbar, gdw. es ein While-Programm P mit fP = f gibt.

Geloste Probleme
1 Sei P das folgende While-Programm x0 := x1 ; 6 Loop x2 Do P =6 4 x0 := x0 + 1 Od 2

Berechnen Sie fP (2, 3) und notieren Sie mglichst jeden Zwischenschritt. o 2 Geben Sie basierend auf der bedingten Ausf hrung mit < Makros f r bedingte Ausf hrungen u u u mit =, 6=, >, , an und zeigen Sie deren Korrektheit. 3 Geben Sie eine sinnvolle Semantik f r xi := xi u 1 an. 4 Implementieren Sie ein Makro xi := xi 1 f r das Dekrement und beweisen Sie die Koru rektheit Ihres Makros (bzgl. der zuvor denierten Semantik). 5 Zeigen Sie, dass Addition und Subtraktion While-berechenbar sind. 6 Zeigen Sie, dass auch Multiplikation und Division While-berechenbar sind. 7 Schtzen Sie die Laufzeit ab, die f r die Berechnung der Grundrechenarten bentigt wird. a u o 8 Zeigen Sie, dass man in der Abbruch-Bedingung der While-Schleife den Vergleichsoperator < durch >, , oder auch = ersetzen kann, ohne die Berechnungsstrke zu verndern. a a 9 Zeigen Sie, dass man bei While-Programmen auf die bedingte Ausf hrung (If . . . ) veru zichten kann. 10 Zeigen Sie, dass man bei While-Programmen auf das Loop-Konstrukt verzichten kann. 5

1.2

Goto-Programme

Ein Goto-Programm P besteht aus einer geordneten Folge von Anweisungen, ist also ein Vektor von Anweisungen. P [i] bezeichnet die i-te dieser Anweisungen. Dies ermglicht beo dingte und unbedingte Sprnge zu den Anweisungen. Bei einem Goto-Programm P =< u A1 , A2 , . . . , An > mit den Variablen x0 , . . . , xm kann jede Zeile eine der folgenden Anweisungen sein: xi := xj c (Zuweisung, 0 i, j m, c 2 N, xj /c kann entfallen) Goto k (unbedingter Sprung zu Anweisung 1 k n) If xi = c Then Goto k (bedingter Sprung zu Anweisung 1 k n) Halt (Programm-Ende) Zur Denition der Semantik von P fhren wir eine neue Variable pc ein. pc (fr program u u counter) bezeichnet die nchste auszufhrende Anweisung. a u Zur Denition der Semantik von P =< A1 , . . . , An > fhren wir eine neue Variable pc ein: u XP = {pc, x0 , x1 , . . . , xm } pc (fr program counter) bezeichnet die nchste auszufhrende Anweisung. u a u 8 > > > > >JP K( > > > > >JP K( > > > > > > < JP K( ) = JP K( > > > > > > > > > > > >JP K( > > > > : falls P [ (pc)] = Halt (pc) + 1]) falls P [ (pc)] = xi := xj + c c}, falls P [ (pc)] = xi := xj c falls P [ oder P [ und falls P [ und (pc)] = Goto k (pc)] = If xi = c Then Goto k (xi ) = c (pc)] = If xi = c Then Goto k (xi ) 6= c a1 , . . . , x n an ])

[xi [xi pc [pc

(xj ) + c, pc max{0, (xj ) (pc) + 1]) k])

[pc

(pc) + 1])

Die einem Goto-Programm P zugeordnete Funktion fP : Nn ! N wird deniert als: f (a1 , . . . , an ) = (x0 ) wobei Eine Funktion f : Nn ! N heit Goto-berechenbar, gdw. es ein Goto-Programm P mit fP = f gibt. Satz 1.1. Jede Goto-berechenbare Funktion ist While-berechenbar und umgekehrt. D.h. der durch Goto- und While-Programme formalisierte Berechenbarkeitsbegri stimmt uberein. 6 = JP K([pc 1, x1

Beweis. Siehe Ubungsaufgaben 17 und 16. Der Beweis liefert uns insbesondere folgenden Satz 1.2. Jedes Programm kann durch ein While-Programm mit nur einer Schleife simuliert werden. Diese Form des Programms nennt sich Kleenesche Normalform. Beweis. Z.B. Transformation in ein Goto-Programm und wieder zurck in ein Whileu Programm (vgl. 16 und 17).

Gelste Probleme o
11 Welche Funktion fP implementiert das folgende Goto-Programm? 1: * 2: 3: P = 4: 5: 6: x0 := x1 ; If x2 = 0 Then Goto 6; + x2 := x2 1; x0 := x0 + 2; Goto 2; Halt

Bestimmen Sie mit Hilfe der Semantik fP (2, 3). 12 Zeigen Sie die Goto-Berechenbarkeit der Funktion f (x, y) = x y. 13 Schreiben Sie Makros f r Spr nge mit anderen Vergleichsoperatoren. u u 14 Schreiben Sie Makros f r xi := xi op yi mit op 2 {+, , , /} u 15 Zeigen Sie die Goto-Berechenbarkeit der Funktion f (x, y) = xy . 16 Zeigen Sie, dass jede While berechenbare Funktion Goto-berechenbar ist. 17 Zeigen Sie, dass jede Goto berechenbare Funktion While-berechenbar ist.

1.3

Loop-Programme

Wir haben gesehen, dass While- und Goto-Programme den gleichen Berechenbarkeitsbegri formalisieren (Satz 1.1, Probleme 17 und 16). Auerdem haben wir gezeigt, dass man bei While-Programmen auf das Loop-Konstrukt (Problem 10) und auf die bedingte Ausfhrung If-Then-Else (Problem 10) verzichten kann. Loop-Programme sind Whileu Programme die auf While-Loops verzichten. Die Berechnungsstrke dieser Programme a unterscheidet sich von der der While-Programme. Der Beweis dieser Tatsache wird im folgenden Abschnitt 1.4 gefhrt. u Loop-Programme werden induktiv deniert und bestehen im einfachsten Fall aus einer Zuweisung. 7

xi := xj c (Zuweisung) P ; Q (Komposition) If xi < xj Then P Else Q Fi (Bedingte Ausfhrung) u Loop xi Do P Od (Loop Schleife)

Gelste Probleme o
18 Zeigen Sie die Loop-Berechenbarkeit der Grundrechenarten und denieren Sie Makros. 19 Zeigen Sie, dass man bei Loop-Programmen wie bei While-Programmen auf die bedingte Ausf hrung verzichten kann. u

1.3.1

Nicht LOOP-berechenbare Funktionen

Wir haben gesehen, dass die Klasse der While-berechenbaren Funktionen mit der Klasse der Goto-Berechenbaren Funktionen ubereinstimmt. Der folgende Satz zeigt, dass die Funktionsklasse der Loop-berechenbaren Funktionen eine echte Untermenge dieser Klasse ist. Satz 1.3. Die Ackermannfunktion ist While-, aber nicht Loop-berechenbar. Die folgende Denition der Ackermannfunktion stammt von Hans Hermes [Her71, S.85]: a(0, y) = y + 1 a(x, 0) = a(x 1, 1) a(x, y) = a(x 1, a(x, y

1))

x>0 x, y > 0

Beweis. Angenommen, a wre Loop-berechenbar, dann auch g(n) = a(n, n). Sei P ein a Loop-Programm fr g, also g(n) = fP (n). In Problem 26 wird gezeigt, dass dann eine u Konstante k existiert mit fP (n) < a(k, n). Fr n = k ergibt sich folgender Widerspruch: u g(k) = fP (k) < a(k, k) = g(k)

Gelste Probleme o
20 Zeigen Sie durch Induktion nach dem ersten Argument, dass die Funktion a(x, y) f r jeden u Wert von x und y deniert ist. 21 Geben Sie ein While-Programm an, das die Ackermann-Funktion berechnet. 8

22 Zeigen Sie: y < a(x, y) 23 Zeigen Sie: a(x, y) < a(x, y + 1) 24 Zeigen Sie: a(x, y + 1) a(x + 1, y) 25 Zeigen Sie: a(x, y) < a(x + 1, y) 26 Zeigen Sie, dass es f r jedes Loop-Programm P eine Konstante k gibt, so dass f r alle n u u gilt: fP (n) < a(k, n)

1.4

Rekursive Funktionen

Bis zum Beginn des 20. Jahrhunderts glaubte man, dass die eektiv berechenbaren Funktionen mit den rekursiv/induktiv denierten Funktionen identisch sind. Heute ist man sich weitgehend sicher, dass der Begri der Turing-Berechenbarkeit die eektive Berechenbarkeit formalisiert. Andererseits wei man auch, dass die damalige Formalisierung der Rekursion die heute primitive Rekursion genannt wird nicht alle eektiv berechenbaren Funktionen abdeckt. Betrachten wir daher zunchst den Begri der primitiven Rekursion a an einem Beispiel, der Additionsfunktion. Bei der rekursiven Denition einer Funktion wird zunchst eine Verankerung vorgenoma men: add(0, x) = x Danach wird der allgemeine Fall auf einen Vorgnger zurckgefhrt. Dadurch wird sichera u u gestellt, dass die Denition auch immer zu einer gltigen Funktion, d.h. terminierenden u Berechnung, fhrt. u add(n, x) = add(n 1, x) + 1 An dieser Denition sind drei Funktionen beteiligt: 1. die Funktion add(n, x), die deniert werden soll, 2. die Funktion id(x) = x, die die Verankerung realisiert und 3. die Funktion succ(x) = x + 1, welche in der Rekursion verwendet wird.

1.4.1

Primitiv rekursive Funktionen

Die Klasse der primitiv rekursiven Funktionen ist wie folgt induktiv deniert: Die Nullfunktion O(x) = 0 ist primitiv rekursiv. Die Nachfolgerfunktion S(x) = x + 1 ist primitiv rekursiv.

n Die Projektionsfunktionen i , die aus einem n-Tupel (x1 , . . . , xn ) einen einzelnen Eintrag xi auswhlen, sind primitiv rekursiv. a

Seien g, h, h1 , . . . , hk bereits primitiv rekursive Funktionen. Die Funktion f (n, . . .), die aus g und h durch primitive Rekursion entsteht, g(. . .) falls n = 0 f (n, . . .) = h(f (n 1, . . .), n 1, . . .) sonst ist primitiv rekursiv. Die Funktion f , die aus g und h1 , . . . , kk durch Einsetzung entsteht, f (x1 , . . . , xn ) = g(h1 (x1 , . . . , xn ), . . . , hk (x1 , . . . , xn )) ist primitiv rekursiv. Die Klasse der primitiv rekursiven Funktionen ist die kleinste Klasse, die unter diesen Operationen abgeschlossen ist. Bemerkung 1.1. Wenn bei primitiver Rekursion ( h(f (n 1, . . .), n 1, . . .) ) das zweite Argument, n 1, der Funktion h nicht verwendet wird, ist es ublich, dies auszulassen. Die Probleme 27, 28 und 29 zeigen, wie eine solche Auslassung implementiert werden kann.

Geloste Probleme
2 27 Zeigen Sie, dass die zweistellige Nachfolgerfunktion S1 (x1 , x2 ) = x1 + 1, die nur die erste Stelle zur ckgeliefert, primitiv rekursiv ist. (Beschreiben Sie auch, wie man Funktionen Sik u denieren knnte) o

28 Zeigen Sie, dass die Identittsfunktion primitiv rekursiv ist. a 29 Zeigen Sie: die Addition ist primitiv rekursiv. 30 Die Multiplikation mul ist ein weiteres Beispiel einer primitiv rekursiven Funktion: 31 Die Subtraktion sub ist p.r. 32 Die Funktion n 2(n) = u
n 2

ist p.r.

10

Primitive Rekursivitt der Cantorschen Diagonalisierungsfunktion Mit den a Beweisen fr die obigen Problemstellungen haben wir auch gezeigt, dass die folgende zweiu stellige Funktion c p.r. ist: x+y+1 c(x, y) = +x 2

Die Funktion bildet die Menge N2 umkehrbar eindeutig auf die natrlichen Zahlen ab (Canu torsches Diagonalisierungsverfahren). Eine iterierte Anwendung dieses Verfahrens bildet Nk $ N umkehrbar eindeutig ab: (n1 , n2 , . . . , nk ) $ c(n1 , c(n2 , . . . , c(nk , 0) . . .)) Wir nennen die Funktion, die diese k-fache Anwendung von c realisiert, ck und notieren: ck (n1 , . . . , nk ) = n =< n1 , . . . , nk > Man beachte, dass die spitzen Klammern rechts ein Skalar beschreiben. Bezeichnen wir die Umkehrfunktionen mit und ! (entspricht dem ersten Element und dem Rest). Dann gilt: (c(a, b)) = a !(c(a, b)) = b c((n), !(n)) = n

Fr die k-stellige Codierfunktion ck ergeben sich die Umkehrfunktionen: u 0 (n) 1 (n) 2 (n) ... k (n) = (n) = (!(n)) = (!(!(n))) = (!(. . . (!(n)) . . .))

Bevor wir die primitive Rekursivitt von und ! zeigen knnen, bentigen wir den fola o o genden Satz sowie zwei weitere p.r. Funktionen: Man kann n-stellige Prdikate P (x1 , . . . , xn ) durch Funktionen mit den Rckgabewerten 0 a u und 1 darstellen. Es gilt: 8 > h1 (x1 , . . . , xn ) falls P1 (x1 , . . . , xn ) > > > h2 (x1 , . . . , xn ) > falls P2 (x1 , . . . , xn ) < . . . . f (x1 , . . . , xn ) = . . > > h (x , . . . , x ) > k 1 falls Pk (x1 , . . . , xn ) > n > : h (x , . . . , x ) sonst k+1 1 n ist p.r. wenn P1 , . . . , Pk disjunkt und p.r. sind. Beweis. Es gilt: f (x1 , . . . , xn ) =
k X i=1

Pi (x1 . . . , xn )hi (x1 , . . . , xn ) + ( 11

k Y i=1

(1

Pi (x1 . . . , xn )))hk+1 (x1 , . . . , xn )

Da die Prdikate immer alle bis auf maximal eines den Wert 0 annehmen, wird von den a vorderen Summanden nur einer den Wert hi (x1 , . . . , xn ) annehmen. Der letzte Summand k + 1 wird nur dann ungleich Null, wenn alle Pi Null sind. Da Summe und Produkt p.r. sind, ist f somit ebenfalls p.r.. Satz 1.4. Die Klasse der Loop-berechenbaren Funktionen stimmt mit der Klasse der p.r. Funktionen uberein. Beweis. Siehe Aufgaben 36 und 37.

Geloste Probleme
33 F r ein Prdikat P (x) kann man das grte x zwischen 0 und n suchen, das P erf llt: u a o u maxP (n) = {x n | P (x)} Geben Sie eine g ltige p.r. Denition f r maxP an. u u 34 F r ein Prdikat P knnen wir pr fen, ob es ein x n gibt, das P (x) erf llt. Denieren u a o u u Sie das p.r. Prdikat ExP (n) = 9x n : P (x). a 35 Geben Sie g ltige p.r. Denitionen f r die Umkehrfunktionen der Cantorschen Diagonaliu u sierungsfunktion ( und !) an. 36 Zeigen Sie, dass f r jedes Loop-Programm P die Funktion fP p.r. ist. u 37 Zeigen Sie, dass jede p.r. Funktion durch ein Loop-Programm berechnet werden kann.

1.4.2

-rekursive Funktionen

Erweitert man die Denition der p.r. Funktionen um einen weiteren Operator (der programmiertechnisch einer While-Schleife entspricht) dann erhlt man eine echte Erweiterung, die a so genannten -rekursiven Funktionen. Wenn g(n, . . .) bereits eine -rekursiv berechenbare Funktion ist, dann wird der Operator wie folgt deniert: Der k -Operator bestimmt zu einer Funktion g und den Argumenten x1 , . . . , xk 1 , xk+1 , . . . , xn den kleinsten Wert xk , so dass g(x1 , . . . , xn ) = 0: f (x1 , . . . , xk 1 , xk+1 , . . . , xn ) = k g(x1 , . . . , xn ) = min{xk | g(x1 , . . . , xn ) = 0} Zustzlich fordern wir, dass alle g(x1 , . . . , xk 1 , m, xk+1 , . . . , xn ) fr m < xk deniert sein a u mssen. u k g ist ein Funktional, das einer n-stelligen Funktion eine n 1 stellige Funktion zuordnet. Falls k = 1 schreiben wir an Stelle von f = 1 g kurz f = g. Satz 1.5. Die Klasse der -rekursiven Funktionen ist gleich der Klasse der While-berechenbaren Funktionen. Beweis. Siehe Probleme 40 und 41. 12

Gelste Probleme o
38 Zeigen Sie, dass die total undenierte Funktion ? -rekursiv ist. 39 Zeigen Sie, dass die nat rlichzahlige Wurzel -rekursiv ist. u 40 Zeigen Sie, dass jedes While-Programm eine -rekursive Funktion berechnet. 41 Zeigen Sie, dass jede g = f durch ein While-Programm berechnet werden kann. 42 Zeigen Sie, dass man mit While-Programmen einen Stack implementieren kann. Beschreiben Sie zum Beweis den Aufbau der Makros, welche die Operationen Push, Pop, Top und Size implementieren (Hinweis: der gesamte Stack wird in einem einzigen Register codiert).

1.5

Turingmaschinen

Das Konzept der Turingmaschinen kann einerseits als eine weitere Formalisierung einer Rechenmaschine angesehen werden und andererseits kann man es als Beschreibungsformalismus fr menschliches Rechnen ansehen. Letzteres war vermutlich der Grund, warum u Kurt Gdel 1936 dieses Modell als gltige Formalisierung des intuitiven Berechenbarkeitso u begris akzeptierte (Zitat? Quelle?) und es sich seitdem als Standard-Formalisierung fr u intuitive Berechenbarkeit durchgesetzt hat. Turingmaschinen formalisieren Algorithmen durch Regelmengen, die in Form einer Tafel dargestellt werden knnen. Jede Berechnung wird in Phasen aufgeteilt, die durch eine o Zustandsmenge reprsentiert werden. Whrend einer Rechnung knnen Zeichen eines Ala a o phabets niedergeschrieben und gelesen werden. Zu jedem Zeitpunkt wird nur ein Zeichen gelesen und geschrieben und das Papier kann nur um ein Kstchen verschoben werden. a Alle erwhnten Mengen (Regeln, Zustnde und Alphabet) sind endlich, auer dem zur a a Verfgung stehenden Papier, davon steht unendlich viel zur Verfgung. u u

1.5.1

Einband-Turingmaschinen

Die einfachste Variante der Turingmaschine ist die deterministische Einband-Turingmaschine (DTM oder kurz TM)1 . Formal ist eine TM ein Tupel: T = (Q, , , , q0 , F ) Q ist eine Menge von Zustnden a das Alphabet, Buchstaben die niedergeschrieben werden knnen. o eine Teilmenge von , das Eingabealphabet.
1 Im Abschnitt Komplexittstheorie werden wir auch nichtdeterministische Turingmaschinen kennenlera nen. Bezogen auf ihre Berechnungsstrke unterscheiden sich NTMs und DTMs jedoch nicht (vgl. Problem a XY: Simulation einer NTM durch ein DTM).

13

die Ubergangsfunktion legt das Verhalten der TM fest ( : Q q0 Startzustand (q0 2 Q) F Menge von Endzustnden (F Q) a

!Q

R)

wobei die Menge R deniert ist als: R = { , , !}. Alle genannten Mengen mssen u endlich sein. enthlt das Sonderzeichen , das nicht Teil der Eingabe sein darf ( 2 \). a Q und mssen durchschnittsfrei sein. u Beispiel T+1 Die Funktionsweise der Turingmaschine erlutern wir an einem Beispiel. a Wir konstruieren eine TM T+1 zur Realisierung des Inkrements. T+1 arbeitet auf binrcodierten a Zahlen. Sie setzt das letzte Null-Bit der Zahl auf Eins und alle Bits dahinter auf Null. Z.B.: 1 0 1 0 1 1 1 1 0 1 1 0 0 z }| { 32 + 0 + 8 + 0 + 2 + 1 + 1 32 + 0 + 8 + 4 + 0 + 0
=4 1

bzw.

Sei ar 1 . . . a1 a0 die Binrzahldarstellung der Eingabezahl n. Sei ak das letzte N ull-Bit, a d.h. a0 = a1 = = ak 1 = 1, ak = 0 und ab ak+1 sind die Werte egal. n =
r 1 X j=0

aj 2 j aj 2 + 0 2 +
j k k 1 X j=0

also: n + 1 =
j

j=k+1

j=k+1

r 1 X

r 1 X r 1 X

aj 2j + 2k aj 2 + 1 2 +
j k k 1 X j=0

12

Man erkennt, dass alle Bits hinter ak auf Null gesetzt sind. Band, Bandalphabet Die Turingmaschine T+1 verfgt uber ein beidseitig unendliches u Band, das in Zellen unterteilt ist, von denen die TM nur jeweils nur eine Zelle sieht2 . Jede Zelle kann ein Zeichen aus dem Alphabet = {0, 1, } aufnehmen, wobei alle leeren Zellen mit dem besonderen Zeichen beschrieben sind. Zustnde T+1 startet in Zustand q0 und das Band ist initial mit der Eingabe der Tua ringmaschine beschrieben. Im vorliegenden Fall ist dies das Wort w = ar 1 . . . a1 a0 . Zur Rechnung verwendet T+1 weitere Zustnde: Q = {q0 , q1 , q2 , q3 }. a Ubergangsfunktion Das Programm der TM wird durch die Ubergangsfunktion anMan spricht hier auch davon, dass die TM einen Schreib-/Lese-Kopf hat, der auf eine bestimmte Zelle zeigt.
2

| {z }
2k 1

j=k+1

0 2j

14

gegeben. Ublicherweise stellt man q0 q1 q2 q3

in Tabellenform dar:

0 1 (q0 , 0, !) (q0 , 1, !) (q1 , , ) (q2 , 1, ) (q1 , 0, ) (q3 , 1, ) (q2 , 0, ) (q2 , 1, ) (q3 , , !)

Die Tabelle liest sich z.B. so: Wenn die TM in Zustand q1 ist und die aktuell betrachtete Zelle eine 1 enthlt, dann bleibt sie in Zustand q1 , uberschreibt die 1 mit einer 0 und a betrachtet als nchstes die linke Nachbar-Zelle. a q3 ist der einzige Endzustand, also F = {q3 }.

Beispielrechnung von T+1 fr das obige Rechenbeispiel arbeitet T+1 in folgenden Schritu ten: anfangs bendet sich die TM im Zustand q0 und das Band ist mit 101011 beschrieben. Die aktuell betrachtete Zelle enthlt die fhrende 1. Wir notieren dies q0 101011 , a u wir notieren also den aktuellen Zustand links von der aktuell betrachteten Zelle und lassen die unendlich vielen Blanks weg. Nun nden folgende Ubergnge (`) statt: a q0 101011 ` 1q0 01011 ` 10q0 1011 ` 101q0 011 ` 1010q0 11 ` 10101q0 1 ` 101011q0 ` Nun ist die TM am Ende der Eingabe angekommen. Sie wechselt den Zustand und uberschreibt nun alle Einsen mit Nullen. 10101q1 1 ` 1010q1 10 ` 1010q1 000 ` Die letzte 0 ist gefunden, wird ersetzt und die TM muss nur noch zum Anfang der Ausgabe 101q2 100 ` 10q2 1100 ` 1q2 01100 ` q2 101100 ` q2 101100 ` q3 101100 Semantik der TM Entsprechend den Variablenbelegungen bei While- und Goto-Programmen, wird die Semantik von Turingmaschinen auf der Belegung des Bands deniert. Wie bei den Goto-Programmen muss man sich auch hier die aktuelle Position merken. Hinzu kommt noch der aktuelle Zustand. Dies lt sich sehr kompakt durch sogenannte a Kongurationen ausdrcken. Eine Konguration ist ein Wort k = vqw bei dem ! vw! u Band-Inschrift ergeben3 und das erste Zeichen von v und das letzte Zeichen von w nicht sind. q ist der aktuelle Zustand der TM und w0 das Zeichen, das gerade betrachtet wird. Die Menge aller Kongurationen von T ist Conf(T ) =
3

Die Notation ! beschreibt eine unendliche Zeichenkette aus s.

15

Das schrittweise Verhalten von T gibt an, welche Konrationen von T aufeinander folgen. Sei v = v0 v1 . . . vk und w = w0 w1 . . . wl dann gilt4 vqw ` xry gdw. (q, w0 ) 2

wobei

Mehrere Schritte der TM beschreibt die reexive transitive Hlle ` u k `0 k k `n k 0 gdw. k `n 1 k 00 und k 00 ` k 0 k ` k 0 gdw. k `n k 0 fr ein n 2 N u

8 < v0 . . . vk r aw1 . . . wl : (q, w0 ) = (r, a, ) v0 . . . vk a r w1 . . . wl : (q, w0 ) = (r, a, !) v 0 . . . vk q w 0 . . . w l ` : v0 . . . r vk aw1 . . . wl : (q, w0 ) = (r, a, )

Falls fr k = vqw kein Ubergang exisitert, also (q, w0 ) 62 , schreibt man k 6`. u Berechnung Eine Berechnung von T fr das Eingabewort w ist eine maximale (nicht u verlngerbare) Folge a q 0 w ` v1 q 1 w 1 ` v2 q 2 w 2 ` . . . von Kongurationen. Es sind drei Flle mglich: a o Die Berechnung ist unendlich. Die Berechnung ist verwerfend, d.h. endet in einer Konguration vn qn wn , mit qn 2 F / q0 w ` vn qn wn 6` Die Berechnung ist akzeptierend, d.h. endet in einer Konguration vn qn wn , mit qn 2 F. Turing Berechenbarkeit Im Gegensatz zu den bisher vorgestellten Maschinenmodellen kennen Turingmaschinen keine natrlichen Zahlen, sondern rechnen auf Wrtern uber dem u o Alphabet . Eine Turingmaschine T berechnet die Funktion fT : ! fT (w) = v gdw. es existiert eine akzeptierende Berechnung q0 w ` xqy 6` wobei x 2
4

beliebig, q 2 F und y beginnt mit v, d.h. y = vv 0 v 2 , v 0 2

Sonderflle treten auf falls v oder w leer sind. Da das leere Band mit Blanks vorbelegt ist, identizieren a wir v = " mit v = (ebenso fr w). u

16

Wir setzen fT (w) = ? falls die Berechnung von T fr das Eingabewort w verwerfend oder u unendlich ist. Eine Funktion5 f : ! heit Turing-berechenbar, wenn es eine TM T gibt mit f = fT Eine Funktion f : Nk ! N heit Turing-berechenbar , wenn es eine Turingmaschine T gibt, die aus einer Binrcodierung des Eingabetupels die Binrcodierung des Funktionsergebnisa a ses berechnet: fT (bink (x1 , . . . , xk )) = bin(y) wenn y = f (x1 , . . . , xk ) wobei bin(. . .) die Binrcodierung der Argumente liefert: a val : {0, 1} ! N,

val(bn . . . b0 ) =

n X i=0

bi 2 i ,

bin = val

Die k-stellige Codierfunktion denieren wir als: bink : Nk ! {0, 1, #} bink (x1 , . . . , xk ) = bin(x1 )# #bin(xk ) valk = bink 1

Eine Funktion f : Nk ! N ist also Turing-berechenbar, wenn es eine Turingmaschine T gibt, so dass: f = val fT bink

Gelste Probleme o
43 Zeigen Sie,dass die Inkrementfunktion f+1 : N ! N, f (x) = x + 1 Turing-berechenbar ist. 44 Zeigen Sie, dass die Dekrementfunktion f
1

Turing-berechenbar ist.

45 Geben Sie eine Turingmaschine T2 an, die die Funktion f (x) = 2 x berechenet und vollziehen Sie die Berechnung von f (17) = 34 nach. 46 Zeigen Sie die Turing-Berechenbarkeit der vollstndig undenierten Funktion f? a ( " falls w ein Palindrom ist 47 Zeigen Sie, dass die Funktion f : {a, b} ! {a, b} , mit f (w) = ? sonst Turing-berechenbar ist.
3 48 Geben Sie eine Turingmaschine T23 an, die die Projektionsfunktion 2 (vgl. S. 10) berechnet.
5

Die Funktion kann partiell sein.

17

1.5.2

Varianten von Turingmaschinen

Mehrband Turingmaschinen unterscheiden sich von Einband Turingmaschinen in der Ubergangsfunktion: : Q k ! Q k Rk In jedem Schritt werden k Felder gelesen und k Kpfe knnen bewegt werden6 . o o Semantik von k-Band TMs Eine Konguration einer k-Band TM ist 0 1 0 1 v1 w1 B . C B . C K 2 ( )k Q ( )k , K = @ . Aq@ . A . . vk wk

Die Relation `, das Akzeptanzverhalten und der Begri der k-Band-Turing-Berechenbarkeit ist analog zu Einband TMs deniert (vgl. Seite 15). Bei k-Band TMs muss allerdings explizit angegeben werden, welches Band das Eingabeband und welches Band das Ausgabeband ist. Satz 1.6. Die Klasse der Turing-berechenbaren Funktionen stimmt mit der Klasse der k-Band-Turing-berechenbaren Funktionen uberein. Beweis. Probleme 51 und 52. Satz 1.7. Die Kosten fr die Simulation einer Mehrband-TM durch eine Einband-TM sind u quadratisch. Beweis. Die Anzahl der Kongurationswechsel, die T 0 zur Simulation eines Schritts von T bentigt, ist beschrnkt durch ein konstantes Vielfaches der Anzahl an Bandquadraten, o a die T bis dahin besucht hat.7 Ist also Nw die gesamte Anzahl an Bandquadraten, die T bei der Berechnung fr das Eingau bewort w benutzt und Mw die Anzahl an Kongurationswechseln, die T bei der Berechnung fr w durchfhrt, u u

dann bentigt T 0 hchstens C Nw Mw Kongurationswechsel, um w zu bearbeiten. Dabei o o ist C eine von w unabhngige Konstante. a Erweiterungen und Einschrnkungen des Bandes a Satz 1.8. Ein linksseitig beschrnktes Band bringt keine Einschrnkung des Berechenbara a keitsbegris mit sich. (Beweis siehe Aufgabe 53) Satz 1.9. Ein zweidimensionales Band bedeutet keine Erweiterung des Berechenbarkeitsbegris (Beweis siehe Aufgabe 54).
Alternativ kann man auch : Q k ! Q ( R)k denieren. T 0 wurde so konzipiert, da zur Simulation jedes Kongurationswechsels von T die Einband-DTM T 0 jeweils den Bandbereich, der die -Markierungen enthlt, von links nach rechts und zurck durchluft. a u a
7 6

18

1.5.3

Simulation von Turingmaschinen durch While-Programme

Um eine Turingmaschine durch While-Programme zu simulieren ist es wesentlich, dass wir die Zustnde von Turing-Programmen nachbilden knnen. Der Zustand von Whilea o Programme ist durch Registerbelegungen gegeben, whrend bei Turingmaschinen Kona gurationen fr die Darstellung der Zustnde verwendet werden. Es ist also nach einer u a Abbildung von Kongurationen K = vqw auf Variablenbelegungen gesucht. Whrend a man allerdings bei v, w 2 keine obere Schranke fr die Lnge der Wrter angeben kann, u a o ist die Zahl der Variablen in einem While-Programm stets a priori festgelegt. Die Lsung besteht darin, v, q und w in jeweils einer Variable abzulegen. Die Wrter o o v = v0 . . . vk und w = w0 . . . wl werden als zwei Stacks in den Variablen xv und xw codiert (vgl. Problem 61), wobei vk und w0 auf der Spitze der Stacks liegt. Sei f : Nk ! N und T eine Turingmaschine mit fT = f . Das While-Programm zur Simulation von T arbeitet hat folgende Struktur (Pseudo Code): push(xw , bin(x1 )); . . . push(xw , bin(xk )); xq := 0; While xq 62 F Do xa := pop(xw ); Zustandsbergang ausfhren u u Od; x0 := val(pop(xw )) // Startkonguration aufbauen

// Startzustand q0 // Berechunung

// Ergebnis in x0 bereitstellen

Beachten Sie, dass die Anweisungen push(xw , bin(x1 )) und x0 := val(pop(xw )) bereits eine Vielzahl an Makro-Ausfhrungen beinhalten (vgl. Aufgaben 61 und 63). u Die Ausfhrung des Zustandsbergangs besteht aus einem sehr groen If-Konstrukt, das u u gem aufgabaut ist und die jeweilen Werte auf die Stacks xv und xw pushed und die a Zustandsvariable xq ggf. ndert (vgl. Problem 62). a Insgesamt knnen wir folgendes Ergebnis festhalten o Satz 1.10. Jedes Turing-Programm kann durch ein While-Programm simuliert werden.

1.5.4

Programmierung von Turingmaschinen

Bemerkung: In diesem Abschnitt numerieren wir die Bnder von k-Band Turingmaschia nen von 0 . . . k 1. In den Aufgaben 43 und 44 haben wir gezeigt, dass Inkrement und Dekrement Turing berechenbar sind. Die in der Lsung angegebene Einband TMs T1 lassen sich direkt in o eine k-Band-TM k TBand i := Band i 1 (fr i k) u 19

umschreiben. Man zeigt leicht, dass die Prfung, ob Band i den Wert 0 hat, ebenfalls Turing berechenbar u ist. Wir zeigen nun, dass man Turingmaschinen wie While-Progamme hintereinander ausfhren kann und, dass man so auch Konstrukte wie If und While nachbilden kann. u Beispiel Seien T1 , T2 zwei TMs. T1 ; T2 bezeichnet diejenige TM, die sich zunchst wie T1 a verhlt und sobald T1 akzeptiert mit der Simulation von T2 beginnt. Die Ausgabe von a T1 dient dabei als Eingabe8 fr T2 . Die von T1 ; T2 berechnete Funktion ist9 u fT1 ;T2 = fT2 f T1 . Dieses Konzept ist fr beliebige Mehrband-TMs anwendbar. u Wir formalisieren die Ideen fr Einband-TMs. Sei Ti = (Qi , , , i , q0,i , Fi ), i = 1, 2, wobei u wir Q1 \ Q2 = ; voraussetzen. Weiter nehmen wir an, da jede akzeptierende Berechnung von T1 in einer Konguration der Form . . . qa1 . . . am . . . endet, wobei a1 , . . . , am 2 . (Insbesondere nehmen wir fT1 (w) 2 [ {?} fr alle w 2 an.) Dann ist u T1 ; T2 = (Q1 [ Q2 , , , , q0,1 , , F2 ), wobei : falls q 2 Q1 \ F1 : falls q 2 Q2 (q, a) = 2 (q, a) : (q0,2 , a, ) : falls q 2 F1
1 (q, a)

8 <

In gleicher Weise knnen bedingte Ausfhrung (vgl. Problem 59) o u If TBand


i=0

Then T1 Else T2 Fi Do T Od

und Schleifen modelliert werden (vgl. Problem 60) While TBand


i=0

Zuweisungen sind ebenfalls leicht durch Turingmaschinen simulierbar (Aufgaben 56, 57 und 58). Damit erhalten wir folgendes wichtige Ergebnis: Satz 1.11. Jedes While-Programm kann durch ein Turing Programm simuliert werden. Universelle Turingmaschinen Wir werden nun zeigen, dass wir Turingmaschinen nicht nur zu neuen Turingmaschinen kombinieren knnen, sondern, dass wir Turingmaschinen auch programmieren knnen. o o Hierzu verwenden wir folgende
8 Genau genommen wird nicht nur die Ausgabe von T1 an T2 ubergeben, sondern T2 ubernimmt die gesamte Bandinschrift von T1 . Alternativ knnen alle Bandinschriften jeweils hintereinander auf einem o Band als Ergebnis zurckgegeben werden. u 9 Vgl. auch die Semantik von While Programmen.

20

Codierung von TMs Sei T = (Q, , , , q0 , F ) eine beliebige TM und Q = {q0 , q1 , . . . , qn }, {a0 , . . . , am } feste Numerierungen der Zustandsmenge und des Alphabets. Wir denieren nun schrittweise eine Codierungsfunktion code: code(qi ) = bin(i) code(aj ) = bin(j) code( ) = 0 code( ) = 1 code(!) = 10 fr i = 0, . . . , n u fr j = 0, . . . , m u

Fr die Ubergnge (qi , aj ) ! (qk , al , r), also die Elemente (ai , qj , ak , ql , r) 2 u a wir:

denieren

code((qi , aj , qk , al , r)) = #code(qi )#code(aj )#code(qk )#code(al )#code(r)# Die gesamte Ubergangsrelation wird codiert, indem die Codierungen der einzelnen Elemente von konkateniert werden10 . code( ) = #code( 1 ) code( p )#, = { 1, . . . , p}

Die doppelten # zwischen den einzelnen Ubergngen trennen diese. a Um nun eine vollstndige TM zu codieren mssen wir neben auch noch die Menge der a u Endzustnde F codieren. Wir denieren: a code(F ) = code({qf1 , qf2 , . . .}) = code(qf1 )#code(qf2 )# Fr T = (Q, , , , q0 , F ) denieren wir: u code(T ) = | bin(n) | bin(m) | code( ) | code(F ) | Die Codierung von T erfolgt also in einem Zwischenschritt uber dem Alphabet {0, 1, #, | }. Gdelisierung In einem zweiten Schritt codieren wir nun noch die vier Zeichen des o Alphabets c(0) = 00 c(T ) = c(code(T )) c(1) = 01 c(#) = 10 c( | ) = 11

Die Codierungsfunktion c bildet also jede Turingmaschine T auf eine Binrfolge ab. Da a diese stets mit 11 beginnt ist damit jeder Turingmaschine eindeutig ein Zahlenwert zugeordnet. Eine Gdelisierung ist eine Abbildung g : M ! N, mit folgenden vier Eigenschaften: o
Diese Beliebigkeit in der Reihenfolge fhrt zu einer nicht eindeutigen Codierung, die jedoch durch u Verwendung der Ordnung auf Q und eindeutig gemacht werden kann.
10

21

i) g ist injektiv ii) g ist berechenbar iii) Die charakteristische Funktion iv) g
1 g

der Bildmenge von g ist berechenbar11 .

ist auf dem Bild von g berechenbar.

Die Codierungsfunktion c ist eine Gdelisierung, denn sie ordnet jeder TM einen eindeuo tigen Wert zu. Ihre schrittweise algorithmische Denition zeigt, dass sie berechenbar ist und durch Umkehren der Konstruktion kann g und g 1 berechnet werden. Bemerkung 1.2. Sei w = code(T ) der Code einer Turingmaschine. Dann ordnen wir umgekehrt w die Turingmaschine Tw = T zu. Die von der Turingmaschine Tw berechnet Funktion fTw bezeichnen wir kurz mit fw . Universelle Turingmaschinen (UTM) akzeptieren als Eingabe binrcodierte Zahlen. a Sie prfen, ob es sich bei den eingegebenen Zahlen um Codierungen von Turingmaschinen u handelt und, falls dies der Fall ist, dekodieren Sie die TMs und simulieren sie. UTMs werden sowohl fr den Nachweis der Unentscheidbarkeit des Halteproblems als auch u fr den Nachweis der Semientscheidkeit des Halteproblems im folgenden Kapitel bentigt. u o Diese erhalten als Eingabe die codierte Darstellung eines Paars (T , x) bestehend aus einer DTM T und einer zugehrigen Eingabe x o und simulieren T bei Eingabe x. Wir skizzieren, wie man eine Vierband-UTM U entwerfen kann, die bei Eingabe (T , x) eine schrittweise Simulation von T bei Eingabe x durchfhrt. Wir verwenden das Eingabealu phabet = {0, 1, #, | } und stellen des Paar (T , x) durch das Wort c(T )#x dar. Auf Band 1 steht das Eingabewort, von dem wir annehmen, da es die Form c(T )#x hat (mit x 2 {0, 1} ). Band 2 dient zur Darstellung des aktuellen Zustands von T . Band 3 enthlt eine Codierung der Bandinschrift von T . a
11

Band 4 benutzen wir als Hilfsband.


Vergleiche Abschnitt 2.1

22

In einem Inititalisierungsschritt kopiert die UTM U das Wort x (am Ende der auf Band 1 stehenden Eingabe) auf Band 3 und decodiert c(T ) zu code(T ), in dem jeweils zwei Bits von c(T ) zu einem Zeichen aus {0, 1, #, | } ersetzt werden. Abschlieend prft U noch, ob u es sich um eine korrekte Codierung code(T ) von T handelt. Wenn T in Zustand qi ist, dann steht bin(i) auf Band 2 von U . Sei aj das Zeichen unter dem Kopf von T . U kann so konzipiert werden, da der Kopf fr Band 3 auf das erste u Zeichen der Codierung von aj zeigt. U sucht nun auf Band 1 einen Eintrag uber (qi , aj ); d.h. sucht ein Wort der Gestalt ##bin(i)#bin(j)#bin(I)#bin(J)#bin(X)## Ist kein solcher Eintrag auf Band 1 vorhanden, dann ist (qi , aj ) = ?; T hlt also an. a Entsprechend verhlt sich U . Andernfalls wechselt T in den Zustand qI , uberschreibt das a gelesene Zeichen aj mit aJ und andert die Position des Lese/Schreibkopfs gem X. Diesen a Kongurationswechsel von T kann U simulieren, in dem die Inschrift von Band 2 durch bin(I) ersetzt, die Codierung bin(j) von aj durch die Codierung bin(J) von aJ ersetzt und die Position des Lese/Schreibkopfs auf Band 3 gem X verndert a a wird. Die so konzipierte Vierband-UTM U kann durch eine quivalente Einband-TM ersetzt a werden (Satz 1.6, Seite 18). UTM- und SNM-Theorem Siehe [VW06, Abschnitt 9.6, Seite 302-317].

Gelste Probleme o
49 Zeigen Sie, dass die Addition Mehrband-Turing-berechenbar ist. 50 Vollziehen Sie die Additionen 5 + 15 und 21 + 3 anhand der Lsung aus Aufgabe 49 nach. o Geben Sie die Berechnung der TM (Kongurationsfolge) an. 51 Zeigen Sie: jede Einband-TM kann durch eine k-Band-TM simuliert werden. 52 Geben Sie an, wie eine Einband-TM eine k-Band TM simulieren kann. 53 Zeigen Sie, dass ein linksseitig beschrnktes Band keine Einschrnkung des Berechenbara a keitsbegris mit sich bringt. 54 Zeigen Sie, dass ein zweidimensionales Band keine Erweiterung des Berechenbarkeitsbegris bedeutet. Hinweis: Sie d rfen die Einschrnkung machen, dass das Band nur nach rechts u a und unten unendlich ist.

23

55 Geben Sie eine Familie von Turingmaschinen TBand i=0 an, die mit der Ausgabe 1 auf Band 0 akzeptiert12 , falls Band i = 0 und die mit der Ausgabe 0 akzeptiert, falls Band i 6= 0 56 Geben Sie eine Turingmaschine Tik (Band Inschrift von Band i von der Form
i)

an, die folgende Funktion ausf hrt: Wenn die u

bin(x1 )#bin(x2 )# #bin(xk ) ist, akzeptiert Tik (Band


i)

mit der Ausgabe bin(xi ) auf Band 0.

57 Geben Sie eine Turingmaschine an, die die Inschrift von Band 0 auf das Band i kopiert (Eingabeband: Band 0, Ausgabeband: Band i). 58 Geben Sie eine Turingmaschine an, die Band i lscht und mit dem Wert 0 beschreibt. (Sie o knnen davon ausgehen, dass Band i zuvor nur mit w 2 {0, 1} beschrieben ist.) o 59 Zeigen Sie, wie die bedingte Ausf hrung u If TBand implementiert werden kann. 60 Zeigen Sie wie man eine While-Schleife While TBand implementieren kann. 61 Zeigen Sie, dass man mit While-Programmen einen Stack implementieren kann. Beschreiben Sie zum Beweis den Aufbau der Makros, welche die Operationen Push, Pop, Top und Size implementieren (Hinweis: der gesamte Stack wird in einem einzigen Register codiert). Im Gegensatz zu Aufgabe 42 d rfen Sie hier davon ausgehen, dass die Elemente, die auf u dem Stack abgelegt werden sollen aus einem endlichen Wertebereich {1, . . . , n} sind. 62 Beschreiben Sie am Beispiel von (q1 , 0) = (q2 , 1, ), wie das While-Programm aus Abschnitt 1.5.3 den Zustands bergang der Turingmaschine simuliert. u 63 Beschreiben Sie im Pseudocode, wie das Makro x0 := val(pop(xw )) implementiert werden kann. (Hinweis, Sie d rfen Makros aus vorangegangenen Ubungsaufgaben verwenden). u 64 (a) Geben Sie eine Ein- oder Mehrband-DTM T an, die die Additionsfunktion fADD : N N ! N, in polynomieller Zeit berechnet.
12

i=0

Then T1 Else T2

i=0

Do T Od

fADD (n, m) = n + m

Wir knnen die Bandnummern auch mit 0 beginnen lassen. o

24

(b) Geben Sie jeweils eine Ein- oder Mehrband-DTM an, die die Funktionen ffak : N ! N, ffak (n) = n! blog nc : falls n fLOG : N ! N, fLOG (n) = ? : sonst 1

berechnet. (Zur Erinnerung: 0! = 1.) Geben Sie jeweils die Grenordnungen der Kostenfunktionen (Zeit und Platz, in o Abhngigkeit der Eingabegre) der konzipierten DTMs an. a o 65 Geben Sie f r die Turingmaschine aus Problem 45 die Codierung c(T2 ) an. u 66 Vollziehen Sie die Initialisierung und die ersten Schritte der UTM U f r das Beispiel u c(T2 )#9 nach. Sie m ssen dabei nicht jenden Kongurations bergang notieren, ein inu u formelles Vorgehen, bei dem Sie sich klar machen, wann welche Bandinschriften vorliegen und welche Kopfbewegungen stattnden reicht aus.

1.6
1.6.1

Weitere Formalismen
Registermaschinen

Siehe [AB02, Abschnitt 1.1, Seite 18-35].

1.6.2

-Kalkul

1.7

Church-Turing-These

In den vorangegangenen Abschnitten haben wir gesehen, dass unterschiedlichen Formalisierungen des Berechenbarkeitsbegris jeweis zum gleichen Ergebnis gefhrt haben. Wir u halten dieses Ergebnis an dieser Stelle noch einmal explizit fest:

25

Satz 1.12. Die durch Turingmaschinen (LBB, Einband, Mehrband, mehrdim. Band) While-Programme Goto-Programme -rekursive Funktionen Registermaschinen Lambda-Kalkl u formalisierten Berechenbarkeitsbegrie stimmen uberein. Dieses zentrale Ergebnis der Informatik wird als Church-Turing-These bezeichnet: Die Klasse der Turing-berechenbaren Funktionen ist genau die Klasse der intuitiv berechenbaren Funktionen.

26

Kapitel 2 Entscheidbarkeit
Eine Funktion heit berechenbar, wenn es eine Turingmaschine gibt, die sie berechnet. Der Berechenbarkeits-Begri wird verwendet, um eine Aussage uber die algorithmische Lsbarkeit von Problemen zu treen. Hierbei beschrnken wir uns zunchst auf so genannte o a a 1 Entscheidungsprobleme . Bei diesen wird eine Frage gestellt, die mit Ja oder Nein beantwortet werden kann. Beispiel: Beim Traveling-Sales-Person-Problem (TSP) wird die Frage gestellt, ob man in einem gegeben Netz aus Stdten und Wegen, die diese verbinden, eine Rundreise nden a kann, die jede Stadt genau einmal besucht und die krzer als eine gegebene obere Schranke u ist. Ist ein gewichteter Graph aus Stdten und Wegen, sowie eine Schranke gegeben, so kann a diese Frage mit Ja oder Nein beantwortet werden2 . Formalisieren knnen wir dies durch die Menge L aller Probleminstanzen, fr die die Frage o u mit Ja zu beantworten wre. Die weitere Formalisierung erfordert, dass wir diese Problea minstanzen codieren. Wir werden daher fordern, dass die Beschreibung der Probleminstanzen uber einem endlichen Alphabet erfolgt, dass also L .

2.1

Entscheidbare Mengen

Eine Menge, L heit entscheidbar, wenn ihre charakteristische Funktion ( 1:w2L L : ! {0, 1} L (w) = 0 : w 62 L
Von Optimierungsproblemen und Approximationsproblemen kann man zeigen, dass deren Lsung uno ter bestimmten Randbedingungen auf die Lsung des zugehrigen Entscheidungsproblems zurckgefhrt o o u u werden kann. 2 Das zugehrige Optimierungsproblem wre die Frage nach einem krzesten Hamilton-Kreis durch o a u diesen Graph.
1

27

berechenbar ist, das heit, wenn es eine Turingmaschine T gibt, mit fT =


L

Turingmaschinen knnen endlos laufen, oder nichtakzeptierend anhalten, d.h. sie berechnen o partielle Funktionen. Fordert man nur die Berechenbarkeit der partiellen Funktion ( 1:w2L 0 0 L : ! {0, 1} L (w) = ? : w 62 L so nennt man L semi-entscheidbar. Entscheidbarkeit ist oensichtlich eine strkere Forderung als Semi-Entscheidbarkeit(vgl. a Problem 67). Genauer gilt folgender Zusammenhang: Satz 2.1. Eine Menge L ist entscheidbar genau dann wenn sowohl L, als auch L semientscheidbar sind.(Beweis ! P.68) Ein weiterer Begri, der mit Entscheidbarkeit verbunden ist, ist rekursive Aufzhlbarkeit. a L heit rekursiv aufzhlbar, wenn a L=; oder wenn es eine berechenbare totale Funktion3 f : N ! gibt, so dass L = {f (0), f (1), . . .} = f (N) Es gilt: Satz 2.2. L ist semi-entscheidbar gdw. L ist rekursiv aufzhlbar. (Beweis ! P.69) a Fr Turingmaschinen nennt man die Menge der Wrter w 2 , fr die eine akzeptierende u o u Berechnung existiert die Sprache von T : LT = { w 2 | w ` vn qn wn mit qn 2 F } Der berechnete Wert ist hier irrelevant. Es gilt Satz 2.3. L ist semi-entscheidbar gdw. L = LT fr eine Turingmaschine T . (Beweis u ! P. 70)) Satz 2.4. L ist entscheidbar gdw. L = LT fr eine Turingmaschine ohne unendliche u Berechnungen, d.h. alle w 62 L werden verworfen.
3

Die Funktion muss nicht injektiv sein.

28

Gelste Probleme o
67 Sei L eine entscheidbare Menge, zeigen Sie, dass L auch semi-entscheidbar ist. 68 Beweisen Sie Satz 2.1. 69 Beweisen Sie Satz 2.2. 70 Beweisen Sie Satz 2.3 71 Zeigen Sie, dass das Primzahlproblem Lprim = {bin(n) | n ist eine Primzahl} rekursiv aufzhlbar ist. a

2.2

Unentscheidbare Probleme

Tatschlich gilt fr viele Probleme, dass sie nicht entscheidbar sind. In einigen Fllen kann a u a jedoch ein Semi-Entscheidungsverfahren angegeben werden. Solche Probleme sind dann also unentscheidbar aber semi-entscheidbar. Das wohl berhmteste Beispiel eines solchen u Problems ist das Halteproblem.

2.2.1

Das Halteproblem

Unter Halteproblem versteht man die Frage, ob eine Programm bei einer gegebenen Eingabe anhlt oder nicht. Formalisiert man diese Frage unter Verwendung von Turingmaschia nen, so erhlt man das Halteproblem a H = { w#x | Tw hlt bei Eingabe x } a Das Halteproblem ist unentscheidbar aber semi-entscheidbar. Dies werden wir in den folgenden Abschnitten schrittweise herleiten. Unentscheidbarkeit des speziellen Halteproblems Das spezielle Halteproblem H0 = { w | Tw hlt bei Eingabe w an } a stellt die Frage, ob ein Programm mit sich selbst als Eingabe4 anhlt oder nicht. Es gilt: a Satz 2.5. H0 ist unentscheidbar. Dies zeigen wir durch einen einfachen Widerspruchsbeweis: Angenommen H0 wre entscheidbar, dann folgt zwingend ein Widerspruch. a
4

Genau genommen mit seinem Codewort als Eingabe.

29

Wenn H0 entscheidbar ist, dann gibt es eine Turingmaschine T 0 die H0 entscheidet, also
H0

= fT 0

In Abschnitt 1.5.4 haben wir gezeigt, dass wir Turingmaschinen zusammensetzen knnen. o Es ist also mglich folgende Konstruktion vorzunehmen: o
w T T0 1
hlt Tw bei Eingabe w?

akzeptiere

Abbildung 2.1: Konstruktion der Turingmaschine T , basierend auf der Annahme, dass T 0 existiert, das H0 entscheidet. Da T 0 H0 entscheidet, berechnet T 0 die charakteristische Funktion von H0 und hlt stets a 0 mit der Ausgabe 1 oder 0 an. Die konstruierte TM T luft endlos, falls T eine 1 ausgibt a und akzeptiert (z.B. mit Ausgabe 0), wenn T 0 eine 0 ausgibt. Beweis. Sei w = code(T ) T hlt bei Eingabe w a , w 2 H0 , fT 0 = 1 , T hlt nicht bei Eingabe w a Widerspruch! wegen T = Tw T 0 entscheidet H0 und Konstruktion von T

H0

(w) = 1

Der gleiche Widerspruch ergibt sich, falls T nicht hlt.5 a Das Reduktionsprinzip Oft kann man fr zwei Sprachen (Probleme) A und u B eine berechenbare totale Funktion f : ! angeben6 , so dass a 2 A , f (a) 2 B Ist dies der Fall, so nennt man A reduzierbar auf B und schreibt: AB Satz 2.6. Wenn A B und B (semi-) entscheidbar, dann ist auch A (semi-) entscheidbar. (Beweis ! P.72)
Durch die Aquivalenzen kann man den Beweis auch rckwrts lesen. u a Dies geschieht durch Angabe eines Algorithmus P , so dass f = fP . Der Algorithmus transformiert eine Instanz des Problmes A in eine Instanz des Problems B.
5 6

30

Die Unentscheidbarkeit des Halteproblems ergibt sich nun einfach durch die Reduktion H0 H und somit: Satz 2.7. Das Halteproblem H ist unentscheidbar. (Beweis ! P. 73) Semientscheidbarkeit des Halteproblems H ist zwar unentscheidbar, jedoch kann mit Hilfe universeller Turingmaschinen (vgl. Abschnitt 1.5.4) fr jedes Wort w#x geprft u u werden, ob Tw bei Eingabe x anhlt. Hierzu muss nur Tw bei Eingabe x simuliert werden. a Damit ergibt sich Satz 2.8. Das Halteproblem H ist semi-entscheidbar. Bemerkung 2.1. Das Komplement des Halteproblems (die Frage ob ein Programm nicht hlt) ist nicht semi-entscheidbar. a Whre H semi-entscheidbar, dann wre H entscheidbar (vgl. Satz 2.1) a a

2.2.2

Der Satz von Rice

Satz 2.9. Sei R die Klasse der berechenbaren Funktionen und sei S ( R eine nichtleere Teilmenge von R. Dann ist die Sprache LS = { w | Die von Tw berechnete Funktion liegt in S } unentscheidbar. Der Satz besagt: wenn wir eine Spezikation S gegeben haben und eine Implementierung Tw vorliegt, die angeblich diese Spezikation erfllt, so gibt es keinen Algorithmus, der u dies bei Eingabe S und w uberprfen kann. D.h. es kann nicht entschieden werden ob ein u Programm seine Spezikation erfllt oder nicht.7 u Um diesen zentralen Satz der Informatik zu beweisen, sind einige Vorarbeiten notwendig: Beweis. Wir fhren zwei getrennte Beweise, jenachdem ob die Spezikation die vollstndig u a undenierte Funktion enthlt oder nicht. a Sei zunchst f? 2 S. a Sei fr s eine Funktion aus R \ S eine Funktion auerhalb der Spezikation und Tr s die TM, die fr s berechnet. Sei Tbeliebig , kurz Tb eine beliebige Turingmaschine Konstruiere TM Tu (u fr unentscheidbar), die folgendes Verhalten zeigt: u
Gleichwohl kann fr ein konkretes Programm und eine konkrete Spezikation dieser Beweis gelingen. u Daher muss er im Zweifelsfall durch einen Beweis (z.B. im Hoare-Kalkl) erbracht werden. u
7

31

Bei Eingabe y ignoriert Tu diese zunchst und verhlt sich wie Tb . Akzepa a tiert Tb , verhlt sich Tu danach wie Tr s , luft Tb endlos, so luft auch Tu a a a endlos. Wir beobachten folgendes: 1. Die Konstruktion von Tu ist einfach. 2. Das Codewort u von Tu kann berechnet werden. 3. u = (b) fr eine geeignete berechenbare Transformations-Funktion u fr s : falls Tb bei leerem Band akzeptiert fu = f? : falls Tb bei leerem Band endlos luft a Mit Hilfe der so konstruierten Funktion knnen wir nun die Unentscheidbarkeit von LS o durch die Reduktion H" LS zeigen. Wir fhren folgende Fallunterscheidung durch: u Fall 1 b 2 H" b 2 H" ) ) ) ) Fall 2 b 62 H" b 62 H" ) ) ) ) Tb stoppt nicht bei leerem Band Tu berechnet f? fu liegt in S u = (b) 2 LS Tb stoppt bei leerem Band Tu berechnet fr s fu liegt nicht in S u = (b) 62 LS

Insgesamt erhalten wir: b 2 H" , (b) 62 LS also: b 2 H" , (b) 2 LS

) H" LS also LS unentscheidbar. Satz von Rice (Beweis - Fall 2: f? 62 S) (Beweis ! P. 76)

32

Gelste Probleme o
72 Beweisen Sie Satz 2.6. 73 Beweisen Sie Satz 2.7. 74 Das Komplement des Halteproblems ist nicht semi-entscheibar. Beweisen Sie dies. 75 Das Problem H" = { w | Tw hlt bei leerer Eingabe } ist unentscheibar. Beweisen Sie dies. a 76 Beweisen Sie den zweiten Teil (f? 62 S) des Satz von Rice. 77 Zeigen Sie, da folgende Sprachen unentscheidbar sind: (b) H9 = {w | es gibt eine Eingabe x, f r die Tw anhlt} u a (d) H9 Hinweis: Mit einer Reduktion des Halteproblems auf die in (a) und (b) genannten Probleme ist man gut beraten. 78 Zeigen Sie, da das Aquivalenzproblem f r TMs u Aquiv = {w#v : w, v 2 {0, 1} , fTw = fTv } nicht semientscheidbar ist. Hinweis: Benutzen Sie das Reduktionsprinzip f r semientscheidbare Sprachen (Satz 2.6) in u der Form L K und L nicht semientscheidbar =) K nicht semientscheidbar. 79 Zeigen Sie die Aquivalenz der folgenden Aussagen. (a) L ist semientscheidbar (b) es gibt eine partielle berechenbare Funktion f : ! , so da f r alle x 2 gilt: u (c) es gibt eine totale berechenbare Funktion g : N ! mit g(N) = L. Dabei ist ein Alphabet und ; = L . 6 80 Geben Sie ein deterministisches Semientscheidungsverfahren und ein (rekursives) Aufzhlungsverfahren a f r die Sprache u H9 = {w 2 {0, 1} : es existiert ein x 2 {0, 1} , so da Tw bei Eingabe x anhlt} a an. Es gen gt eine verbale Beschreibung der Verfahren, in der die wesentlichen Ideen skizu ziert sind. 33 f (x) 6= ? gdw x2L (c) H8 (a) H8 = {w | Tw hlt f r alle Eingaben an} a u

Kapitel 3 Komplexitt a
In diesem Kapitel werden wir entscheidbare Probleme genauer untersuchen. Dabei werden wir insbesondere den Zeit- und Platz-Bedarf betrachten, den ein Algorithmus zur Lsung o bentigt. o

3.1

Nichtdeterminismus
T = (Q, , , , q0 , F )

Eine nichtdeterministische Turinmaschine

ist deniert wie eine deterministische TM, mit Ausnahme von , das nun keine Funktion, sondern eine Relation Q Statt (q, a, q1 , a1 , r1 ) 2 Q R, mit R = { , , !}

werden wir folgende quivalente Schreibweise bevorzugen a (q, a) = {(q1 , a1 , r1 , ), . . .}

und die Menge aller Ubergnge notieren. a Kongurationen, Berechnungsbume, akzeptierte Sprache a Kongurationen von NTMs: Die Kongurationsrelation `T (oder `) und deren reexive Hlle `T (oder ` ) sind wie fr deterministische TMs deniert. Maximale Folgen u u von Kongurationswechseln heien Berechnungen. Man beachte, da es fr NTMs im allgemeinen zu jeder Konguration k = vqw mehrere u Nachfolgekongurationen gibt. Insbesondere kann es zu jedem Wort viele Berechnungen geben. Berechnungsbume: Jedem Eingabewort w 2 kann man einen Berechnungsbaum a zuordnen, dessen maximalen Pfade den mglichen Berechnungen entsprechen. o 34

Die Wurzel des Berechnungbaums ist mit der Anfangskonguration q0 w beschriftet.1 Fr innere Knoten, die mit k = vqbw markiert sind und gilt u (q, b) = {(q1 , b1 , R1 ), . . . , (qk , bk , Rk )}, dann besitzt der Konten genau k Shne, die jeweils mit den Nachfolgekongurationen o von k bzgl. (qi , bi , Ri ) beschriftet sind (i = 1, . . . , k). Man beachte, da der Berechnungsbaum sowohl akzeptierende als auch verwerfende als auch unendliche Berechnungen enthalten kann. Akzeptierte Sprache: Die von einer NTM T akzeptierte Sprache ist L(T ) = {w 2 : es gibt eine akzeptierende Berechnung von T fr w} u Wie fr TMs gilt also: u w 2 L(T ) gdw q0 w ` v 0 q w0 fr ein q 2 F . u Umgekehrt gilt w 2 \L(T ) genau dann, wenn alle Berechnungen von T fr w verwerfend u oder endlos sind. Nichtdeterministisches Entscheidungsverfahren: Eine NTM T entscheidet eine Sprache L, falls L(T ) = L und der Berechnungsbaum jedes Eingabeworts endlich ist. Bemerkung 3.1. T entscheidet also genau dann die Sprache L, wenn L = L(T ) und alle mglichen Berechnungen von T verwerfend oder akzeptierend sind. o Aquivalenz von NTMs und TMs Oenbar knnen TMs als Spezialfall von NTMs angesehen werden, in denen die Mengen o (q, a) stets hchstens einelementig sind.2 Wir zeigen nun, da NTMs durch TMs simuliert o werden knnen. o Satz 3.1. Zu jeder NTM T gibt es eine TM T 0 mit L(T ) = L(T 0 ). Beweis. Die Grundidee der Simulation besteht darin, den Berechnungsbaum mit einer Breitensuche (BFS) zu durchlaufen.3 Sobald eine akzeptierende Berechnung (ein akzeptierendes Blatt) gefunden ist, halten wir akzeptierend an.
Ist w = ", dann identizieren wir q0 w mit q0 . Falls (q, a) 6= ;, dann identizieren wir (q, a) mit der Menge { (q, a)}. Weiter identizieren wir ? mit der leeren Menge. 3 Der Berechnungsbaum ist endlich verzweigend. Die Breitensuche (gestartet in der Wurzel) ndet stets jedes Blatt. Diese Aussage gilt nicht fr die Tiefensuche (DFS). u
1 2

35

Wenn T eine akzeptierende Berechnung fr ein Wort x hat, dann ist sichergestellt, da diese u akzeptierende Berechnung mit der Breitensuche gefunden wird. Es gilt also L(T ) = L(T 0 ), wenn wir T 0 gem Algorithmus des skizzierten Algorithmus konzipieren (vgl. auch [AB02, a S. 112])

3.2
3.2.1

Zeitkomplexittsklassen a
Kostenmae fur TMs

Die E zienz einer Turingmaschine T wird an den Kostenfunktionen tT und sT gemessen, die die bentigte Rechenzeit bzw. den bentigten Platzbedarf angeben. Im folgenden sei o o T eine Einband- oder Mehrband-Turingmaschine mit dem Eingabealphabet .4 Zeit- und Platz-Komplexitt von TMs: Die Funktion tT : ! N [ {1} zhlt fr a a u jedes Eingabewort w 2 die Lnge der Berechnung von T fr w. a u tT (w) = Anzahl der Kongurationswechsel, die T bei Eingabe w durchfhrt u Falls T bei Eingabe w endlos luft, dann ist tT (w) = 1. a Die Funktion sT : ! N [ {1} zhlt die Anzahl an Bandzellen, die bei der Berechnung a von T fr das Eingabewort besucht werden. u sT (w) = Anzahl an Bandzellen, die T bei der Eingabe w besucht. Als besucht gilt eine Bandzelle genau dann, wenn zu irgendeinem Zeitpunkt whrend a der Berechnung von T der Kopf auf die betreende Bandzelle zeigt. Bei Zeit- und Platzanalysen ist es ublich, von den konkreten Eingabedaten zu abstrahie ren und stattdessen auf die Eingabegre zurckzugreifen. Fr Turingmaschinen wird die o u u Eingabegre an der Lnge des Eingabewortes gemessen. o a Wir verwenden Kleinbuchstaben t, s fr Zeit- und Platzkomplexitt in Abhngigkeit konu a a kreter Eingaben, whrend die Grobuchstaben T, S Komplexitten in Abhngigkeit von a a a der Eingabegre kennzeichnen. o Zeit- und Platzkomplexitt in Abhngigkeit der Eingabegre: Die Abbildungen a a o TT , ST : N ! N [ {1} seien gegeben durch TT (n) = max{tT (w) : w 2 , |w| n}, ST (n) = max{sT (w) : w 2 , |w| n}.
4 Fr manche Komplexittsklassen ist es entscheidend, da man Turingmaschinen mit separatem Einu a gabeband betrachtet. Die durch die Eingabe belegten Bandzellen werden dann in der Platzanalyse nicht bercksichtigt. Beispielsweise macht der Begri logarithmischer Platzbedarf nur fr Turingmaschinen u u mit separatem Eingabeband Sinn; da dann nur die besuchten Zellen der Arbeitsbnder in die Platzfunktia on sT eingehen. Fr die Komplexittsklassen, die wir in diesem Buch betrachten, ist es jedoch irrelevant, u a ob wir Turingmaschinen mit separatem Eingabeband betrachten oder nicht.

36

Wir nennen T polynomiell zeitbeschrnkt, wenn es ein Polynom p gibt, so da a TT (n) p(n) fr alle n 2 N. u und polynomiell platzbeschrnkt, a ST (n) p(n) fr alle n 2 N. u Bemerkung 3.2. [Zusammenhang Zeit- und Platzkomplexitt] Oensichtlich gilt: a sT (w) tT (w) + 1 fr alle Eingabewrter w. Somit ist ST (n) TT (n) + 1 fr alle n 2 N. u o u Rechenzeit von NTMs: Sei T eine Einband-NTM mit dem Eingabealphabet . Wir denieren die Funktion tT : ! N [ {1} durch tT (x) = maximale Lnge einer Berechnung von T fr x. a u Oenbar ist tT (x) die Hhe des Berechnungsbaums von T fr x. Wir erweitern tT zu einer o u Abbildung TT : N ! N [ {1} in Abhngigkeit der Eingabegre. a o TT (n) = max {tT (x) : x 2 , |x| n} .

Gelste Probleme o
81 Geben Sie einen nichtdeterministischen Algorithmus an, der das Erf llbarkeitsproblem der u Aussagenlogik lst. o

3.2.2

Komplexittsklassen a

Zeitkomplexittsklassen: Sei ' : N ! N eine totale Funktion. a DTIME('(n)) bezeichnet die Klasse aller Sprachen L , fr die es eine Ein- oder Mehrband-TM T u gibt, so da gilt: T entscheidet L TT (n) = O('(n))

37

Entsprechend ist NTIME('(n)) die Klasse aller Sprachen L , fr die es eine NTM T u gibt, die L entscheidet und fr die TT (n) = O('(n)) gilt. u Man beachte, da Elemente der Zeitkomplexittsklassen DTIME('(n)), NTIME('(n)) a stets entscheidbare Sprachen sind. Die Klassen P, NP und EXPTIME: P bezeichnet die Klasse aller mit einer TM in polynomieller Zeit lsbaren Probleme; NP die Klasse aller mit einer NTM in polynomieller o Zeit lsbaren Probleme. o [ P = PTIME = DTIME nk
k 1

NP = NPTIME =

k 1

NTIME nk

Eine weitere wichtige Zeitkomplexittsklasse ist a k [ [ EXPTIME = DTIME cn ,


c>1 k 1

die alle Probleme erfat, die sich in exponentieller Zeit mit einer TM lsen lassen. o Beispielsweise liegt SAT (das Erfllbarkeitsproblem der Aussagenlogik) in u EXPTIME (da SAT z.B. durch einen Backtracking Algorithmus exponentieller Laufzeit gelst werden kann), o NP da wir einen nichtdeterministische Algorithmus angeben knnen, der polynomio elle Laufzeit hat (! P. 84). Satz 3.2. Es gilt: P NP PSPACE = NPSPACE EXPTIME Beweis. Oensichtlich gilt P NP und da jede NTM mit exponentiellem Aufwand durch eine det. TM simuliert werden kann gilt ebenfalls NP EXPTIME. Weiter gilt oensichtlich P PSPACE und NP NPSPACE (vgl. Bemerkung 3.2). Der Satz von Savitch (den wir nicht beweisen werden) besagt, dass PSPACE = NPSPACE. Zum Beweis von NP PSPACE simulieren wir eine polynomiell zeitbeschrnkte NTM T a durch eine det. TM, die den Berechnungsbaum von T mit einer Tiefensuche durchluft. a Sei p ein Polynom, so da TT (n) p(n) fr alle n 2 N. u Zur Durchfhrung der DFS ist polynomieller Platz ausreichend, da die Rekursionstiefe u durch p(n) beschrnkt ist, wenn n die Lnge des Eingabeworts ist. a a Wir zeigen nun die Inklusion PSPACE EXPTIME . Hierzu betrachten wir eine polynomiell platzbeschrnkte det. TM T . Sei p ein Polynom, so da T fr die Eingabe x 2 a u 38

hchstens p(|x|) Bandzellen besucht. Die Gesamtanzahl an mglichen Kongurationen, die o o T bei der Bearbeitung von x durchluft, ist durch a p(|x|) |Q| | |p(|x|) beschrnkt, wobei Q der Zustandsraum und a das Bandalphabet von T ist. Der Faktor p(|x|) steht fr die mglichen Positionen des Lese/Schreibkopfs und | |p(|x|) fr die u o u mglichen Belegungen der p(|x|) Bandzellen. o Wir whlen eine Konstante c 1 und ein Polynom q, so da a cq(n) p(n) |Q| | |p(n)

fr alle n 2 N. Da T deterministisch ist und fr alle Eingaben anhlt, kann keine Konguu u a ration wiederholt whrend der Berechnung fr x auftreten. Daher ist die Rechenzeit von T a u durch die Gesamtanzahl an durchlaufenen Kongurationen bestimmt. Hieraus folgt, da T exponentiell zeitbeschrnkt ist. a

Gelste Probleme o
82 Bestimmen Sie f r die Turingmaschinen T+1 Laufzeit und Platzbedarf f r die Eingabe 17 u u an. 83 Wie ist die sind Laufzeit TT+1 (n) und Platzbedarf ST+1 (n)? 84 Geben Sie einen nichtdeterministischen Algorithmus an, der das Erf llbarkeitsproblem der u Aussagenlogik in polynomieller zeit lst. . o 85 Zeigen Sie, dass der Test auf Zusammengesetztheit, also die Frage: Besitzt die Eingabe n einen Teiler t 62 {1, n}?, in NP liegt.

3.3
3.3.1

Das P=NP-Problem
Polynomielle Reduktion

Polynomielle Unterschiede in der Laufzeit- oder Platz-Komplexitt knnen in den eina o gefhrten Komplexittsklassen nicht unterschieden werden. Daher kann die Zugehrigkeit u a o eines Problem zu einer Komplexittsklasse durch die folgende Vorgehensweise nachgewiea sen werden: Seien A und B zwei Entscheidungsprobleme (Sprachen). A heit polynomiell auf B reduzierbar: A p B

39

wenn eine berechenbare totale Funktion f : ! und ein Polynom p(n) existieren, so dass a 2 A , f (a) 2 B und die Laufzeit der TM Tf , die f berechnet, polynomiell begrenzt ist: TTf (n) p(n), fr alle n 2 N u Satz 3.3. Sei A p B dann gilt: i) B 2 P ) A 2 P ii) B 2 NP ) A 2 NP iii) B 2 PSPACE ) A 2 PSPACE Bemerkung 3.3. A p B knnte man umgangssprachlich als A ist nicht schwieriger als o B lesen. Wenn nmlich B mit polynomiellem Aufwand gelst werden kann und A durch eine polya o nomielle Reduktion auf B lsbar ist, dann ist auch A mit polynomiellem Aufwand lsbar. o o A knnte aber durch einen klugen Algorithmus e zienter lsbar sein als B. o o

3.3.2

NP-Hrte, NP-Vollstndigkeit a a

Aufgrund einer falschen Ubersetzung bezeichnet man Probleme, die mindestens so schwierig sind wie alle Probleme der Komplexittsklasse NP als NP-hart (auch NP-schwierig). a Prziser deniert man: B heit NP-hart, gdw. fr alle Probleme A 2 NP gilt: a u A p B B heit NP-vollstndig, wenn B zustzlich in NP liegt. Die Klasse der NP-Vollstndigen a a a Probleme bezeichnet man mit NPC. Bemerkung 3.4. Die NP-vollstndigen Probleme sind die schwierigsten Probleme in NP a

3.3.3

Das P =NP-Problem

Es ist ungelst, ob P 6= NP. Vielversprechende Kandidaten fr Probleme aus NP \ P sind o u alle Probleme aus NPC. Es ist daher interessant diese zuvor charakterisierte Klasse genau zu bestimmen.

40

3.3.4

Reduktionsbeweise zum Nachweis der NP-Vollstndigkeit a

Das erste Problem, von dem nachgewiesen werden konnte, dass es NP-vollstndig ist, war a das Erfllbarkeitsproblem er Aussagenlogik SAT. Der Beweis geht auf Cook zurck (vgl. u u Abschnitt 3.3.5). Nachdem nun ein Problem aus NPC bekannt war, war der Nachweis der NP-Vollstndigkeit a fr weitere Probleme nun weniger schwierig. u Satz 3.4. Sei A ein NP-hartes Problem und A p B, dann ist auch B NP-hart. Zum Nachweis der NP-Vollstndigkeit eines Problems B gengt also die Reduktion eines a u Problems A 2 NPC auf B sowie die Angabe eine nichtdet. Algorithmus zur Lsung von o B. Bemerkung 3.5. Wichtig: beachten Sie die Richtung der Reduktion! Die Probleme aus NPC sind Kandidaten fr Probleme, die sich nicht deterministisch in u Polynomialzeit lsen lassen. Es gilt o Satz 3.5. Sei L 2 NPC, dann gilt L 2 P , P = NP Beweis. Wenn NP = P ist, dann ist nichts zu zeigen. Wir nehmen an, da K eine NPvollstndige Sprache mit K 2 P ist. Wir zeigen, da dann P = NP gilt. a Sei K 2 NP. Da L NP-hart ist, gilt K p L. Aus Teil (i) von Satz 3.3 folgt K 2 P . Da K beliebig whlbar ist gilt somit P = NP a Als Beispiel fr eine polynomielle Reduktion betrachten wird die Reduktion SAT p 3SAT u und zeigen: Satz 3.6. 3SAT 2 N P C Oenbar liegt 3SAT in NP (Guess& Check-Methode). Wir zeigen, da sich SAT auf 3SAT polynomiell reduzieren lt, d.h. a SAT p 3SAT. Wir geben ein Polynomialzeitverfahren an, das eine gegebene aussagenlogische Formel in eine erfllbarkeitsquivalente Formel 0 in 3KNF uberfhrt. In einem ersten Schritt u a u erstellen wir in O(||) Schritten den Syntaxbaum fr , der die Operatoren , ^ und _ u benutzt. 41

Durch Anwenden der de Morganschen Regeln (


1

2)

_ 2,

2)

und der Regel fr doppelte Verneinung u

knnen wir die Negationsknoten des Syntaxbaums eliminieren und erhalten einen modio zierten Baum T , dessen innere Knoten mit ^ oder _ beschriftet sind und dessen Bltter a Literale reprsentieren. a Die Kosten der beschriebenen Transformation sind linear in der Gre des Syntaxbaums, o also O(||). Wir ordnen jedem Knoten v des Baums T ein neues Aussagensymbol zu. Zur Vereinfachung der Formalismen verwenden wir die Knotennamen als Aussagensymbole.
Syntaxbaum: Eliminieren vom Negationsknoten v0 v z

v z

y z x y

y v0 (v0 v z) (v x y

Abbildung 3.1: Transformation des Syntaxbaumes fr = ((x_y)_z) (x_y)^z u Ist v ein innerer Knoten mit den beiden Shnen vL und vR und ist op der Verknpfungsoperator, o u mit dem v beschriftet ist (also entweder op = ^ oder op = _), dann ordnen wir v die Formel v = v $ (vL op vR ) zu. Dabei steht $ fr den Aquivalenzoperator 1 $ 2 = ( 1 ^ 2 ) _ ( 1 ^ 2 ). Die u 0 Formel v kann in konstanter Zeit in eine quivalente Formel v in 3KNF gebracht werden. a Dazu benutzen wir die folgenden Regeln: v $ (vL _ vR ) (v _ vL ) ^ (v _ vL _ vR ) ^ (v _ vR ) v $ (vL ^ vR ) (v _ vL ) ^ (v _ vR ) ^ (v _ vL _ vR ) 42

Man beachte, da die Formeln auf der rechten Seite eine feste Lnge (nmlich 9 bzw. 10) a a haben und daher nur konstante Kosten entstehen.5 Ist v ein Blatt, dann identizieren wir v mit dem Literal, mit dem v beschriftet ist. Sei ! ^ 0 0 = v ^ v0 ,
v

wobei v0 den Wurzelknoten bezeichnet. (Dabei quantiziert v uber alle inneren Knoten des modizierten Syntaxbaums.)

Geloste Probleme
86 Beweisen Sie Satz 3.3. 87 Beweisen Sie Satz 3.4. 88 Beweisen Sie die Korrektheit der Konstruktion zur Reduktion SAT p 3SAT (vgl. Satz 3.6).

3.3.5

Satz von Cook

(Vergleiche [AB02] und [Sch92]) Satz 3.7. SAT 2 N P C Das Erfllbarkeitsproblem (SAT fr satisability problem) der Aussagenlogik fragt, ob eine u u gegebene aussagenlogische Formel erfllbar ist6 . Eine przise Formulierung als Wortprou a blem verwendet eine Codierung der Formeln, z.B. mit dem Alphabet {, ^, (, ), 0, 1}, wobei die Binrziern 0, 1 zur Codierung der in vorkommenden Aussagensymbole x1 , . . . , xn a verwendet werden. Man macht sich leicht klar, wie diese Codierung przisiert werden kann. a Zur besseren Lesbarkeit werden wir im folgenden mit nicht-codierten Formeln arbeiten. SAT (Erfullbarkeitsproblem der Aussagenlogik) Gegeben: aussagenlogische Formel Gefragt: Ist erfllbar? u Beweis. Ein nichtdeterministischer Algorithmus mit polynomieller Laufzeit kann basierend auf der Guess&Check-Methode angegeben werden. Damit ist SAT 2 NP.

5 Selbstverstndlich ist der Umweg uber die Formel v unntig. Jedoch ist die Semantik von v oena o 0 sichtlicher als die der angegebenen aquivalenten Formeln v in 3KNF. 6 In Anhang ref Seite 43 . werden die notwendigen Grundbegrie der Aussagenlogik kurz wiederholt. Leserinnen und Leser, die diese nicht mehr parat haben, knnen ihre Kenntnisse dort aurischen. o

43

Wir zeigen nun, da SAT NP-hart ist. Hierzu mssen wir nachweisen, da jedes NPu Problem L auf SAT polynomiell reduzierbar ist. Sei L eine Sprache in NP und sei T = (Q, , , , q0 , , F ) eine polynomiell zeitbeschrnkte a NTM, die L entscheidet. Wir knnen o.E. annehmen, da (q, a) = {(q, a, N )} fr alle o u q 2 F . Sei p ein Polynom, das die Laufzeit von T beschrnkt, also a tT (x) p(|x|) fr alle x 2 . Wir knnen o.E. voraussetzen, da alle Koe zienten von p ganze Zahlen u o 0 sind und da p(n) n fr alle n 2 N. Wir zeigen, da u L = L(T ) poly SAT. Hierzu geben wir eine in Polynomialzeit durchfhrbare Transformation an, die zu gegebener u Eingabe x 2 eine Formel konstruiert, so da genau dann erfllbar ist, wenn x 2 u L(T ). Im wesentlichen codiert die Formel das Verhalten von T bei Eingabe x, wobei lediglich die ersten p(|x|) Schritte von T bercksichtigt werden. Tatschlich wissen wir ja, da T nach u a sptestens p(|x|) Kongurationswechseln terminiert; unabhngig davon, wie der Nichtdea a terminismus aufgelst wird. Desweiteren nutzen wir im folgenden die Beobachtung aus, o da T zur Bearbeitung von x hchstens tT (|x|) Bandquadrate besucht. Insbesondere sind o hchstens die Bandquadrate mit den Nummern p(|x|), . . . , 0, 1, . . . , p(|x|) von Belang. o Die Formel setzt sich wie folgt zusammen: = A ^ Ub ^ E ^ R.

u Intuitiv steht A fr die Anfangsbedingung, Ub fr die Ubergangsfunktion, E fr die Endu u bedingung und R fr gewisse Randbedingungen. Die Konstruktion von beginnt mit der u Berechnung des Werts p(|x|).7 In Abb. 3.3.5 (Seite 45) sind die verwendeten Aussagensymbole erlutert. a Aussagensymbol zt,q Schreibweise Intuitive Bedeutung

zustand (t) = q

nach t Schritten ist T in Zustand q nach t Schritten zeigt der Lese/Schreibkopf von T auf Bandzelle i nach t Schritten ist der Inhalt von Bandzelle i gleich a

yt,i

position(t) = i

xt,i,a

band (t, i) = a

Auch wenn wir das Polynom p nicht kennen, so ist p dennoch berechenbar.

44

Dabei ist q 2 Q, a2 , i 2 { p(|x|), . . . , 0, 1, . . . , p(|x|)} und t 2 {0, 1, . . . , p(|x|)}. Whrend i uber die Nummern der eventuell besuchten Bandzellen quantiziert, steht der a Index t fr die jeweiligen Zeitpunkte. Wir benutzen intuitive Schreibweisen wie u zustand (t) 6= q anstelle von zt,q . Zur Vereinfachung der folgenden Formeln verwenden wir Kurzschreibweisen wie wobei q alle Zustnde durchluft und i alle Werte aus dem Zahlenbereich a a { p(|x|), . . . , 0, . . . , p(|x|)}. Man beachte, da die Aussagensymbole vom Wert p(|x|) abhngig sind, der eine obere a Schranke fr die Anzahl der Kongurationswechsel von T vorgibt. Die Anzahl der Aussau gensymbole ist in p(|x|) |Q| + | | p(|x|)2 also polynomiell in |Q|, | | und |x|. Da und Q von der Eingabe x unabhngig sind, a knnen wir |Q| und | | als Konstanten auassen. Somit ist die Zahl der Aussagensymbole o polynomiell in der Eingabelnge |x|. a Im folgenden nehmen wir an, da x = a1 a2 . . . an , wobei ai 2 . Insbesondere ist |x| = n. Die Anfangsbedingung A codiert die Anfangskonguration q0 a1 . . . an von T fr Einu gabe x. A legt die Komponenten fr den Zeitpunkt t = 0 fest. u A = ( zustand (0) = q0 ) ^ ( position(0) = 0) ^ ^ ( band (0, i 1) = ai ) ^ ^ ( band (0, i) = ) V

q,i

. . .,

1in

p(n)ip(n)

i2{0,1,...,n 1} /

Intuitiv beschreibt A, da T im Zustand q0 startet und da der Lese/Schreibkopf auf das Bandquadrat 0 zeigt. Die letzten beiden Konjunktionen legen die Inhalte der Bandquadrate fest. Die Bandquadrate 0, 1, . . . , n 1 sind mit den Eingabesymbolen belegt; alle anderen Bandquadrate enthalten Blanks.

45

Die Ubergangsbedingungen werden durch die Teilformel Ub beschrieben. Diese setzt sich aus zwei Teilen zusammen. Ub = Ub1 ^ Ub2 . Die Formel Ub1 beschreibt die Ubergangsmglichkeiten von Zeitpunkt t zu Zeitpunkt t + 1; o 2 aussagt, da sich die Inhalte aller Bandzellen, auf die der Lese/Schreibkopf whrend Ub a nicht zeigt, unverndert bleiben. a 1 nehmen wir eine leichte Modikation an der Ubergangsfunktion vor, Fr die Formel Ub u um Berechnungen, die zu einem Zeitpunkt t < p(|x|) anhalten, leichter handhaben zu knnen. Wir setzen o {(q, a, N )} : falls (q, a) = ; (oder q 2 F ) 0 (q, a) = (q, a) : sonst. Der Ubergang von zu 0 hat lediglich technische Grnde. Im wesentlichen verlngert 0 u a die frhzeitig terminierenden Berechnungen von T durch Kongurationswiederholungen u (bis zum Zeitpunkt t = p(n)). Die Formel Ub1 ist nun wie folgt deniert: V 1 = Ub ( zustand (t) = q) ^ ( position(t) = i) ^ t<p(n)
p(n)<i<p(n)

q,a

( band (t, i) = a)

(t, q, i, a)

(Der Pfeil ! steht fr den Implikationsoperator u ! = _ .) Intuitiv steht die Teilformel (t, q, i, a) fr die Menge 0 (q, a) aller mglichen Ubergnge u o a im Zustand q bei gelesenem Zeichen a. W (t, q, i, a) = ( zustand (t + 1) = q 0 ) ^ ( position(t + 1) = i + X)
(q 0 ,b,X)2 0 (q,a)

^ ( band (t + 1, i) = b)

Die durch die Komponente X 2 {L, R, N } angegebene Bewegungsrichtung des Lese/Schreibkopfs fassen wir als Zahl auf: L entspricht -1, N entspricht 0, R entspricht 1. Der zweite Teil der Formel fr die Ubergangsfunktion drckt aus, da die Inschrift aller u u Bandquadrate, auf die der Lese/Schreibkopf nicht zeigt, unverndert bleiben. a ^ Ub2 = ( position(t) 6= i) ^ (band (t, i) = a) ! (band (t + 1, i) = a)
t<p(n)

i,a

Die Endbedingung charakterisiert die akzeptierenden Kongurationen. Dabei gengt es u 0 den Zeitpunkt t = p(n) zu betrachten, da wir zu einer totalen Funktion modiziert 46

haben, fr die smtliche Endzustnde Fangzustnde. u a a a _ E = ( zustand ( p(n) ) = q).


q2F

Die Randbedingungen werden durch R = R1 ^ R2 ^ R3 festgelegt. R1 besagt, da sich T zu jedem Zeitpunkt t in genau einem Zustand bendet. ^ _ ^ 0 R1 = ( zustand (t) = q) ^ (zustand (t) 6= q ) .
t q q 0 2Q\{q}

In Analogie sind die beiden anderen Teilformeln R2 und R3 deniert. Diese garantieren, da fr jeden Zeitpunkt t der Lese/Schreibkopf von T auf genau ein Bandquadrat zeigt u (R2 ) und da zu jedem Zeitpunkt t genau ein Zeichen a 2 in jeder Bandzelle i steht (R3 ) (vgl. auch Ubungsaufgabe 4.1). Korrektheit der Konstruktion: Wir zeigen, da x 2 L(T ) genau dann gilt, wenn erfllbar ist. u Ist x 2 L(T ) = L, dann kann man eine erfllende Belegung fr aus einer u u akzeptierenden Berechnung von T fr x konstruieren. Die Wahrheitwerte der Aussau gensymbole unter der erfllenden Belegung ergeben sich, in dem wir die intuitive u Interpretation einsetzen. Z.B. ist der Wahrheitswert von zt,q genau dann gleich 1 gesetzt, wenn in der akzeptierenden Berechnung der Zustand q nach dem t-ten Kongurationswechsel erreicht ist. Umgekehrt: Ist erfllbar, dann ergibt sich eine akzeptierende Berechnung aus einer u erfllenden Belegung fr . An dieser Stelle sind die durch die Teilformel R angegeu u benen Randbedingungen entscheidend. Diese stellen sicher, da wir jedem Zeitpunkt t genau eine Konguration zuordnen knnen. Hieraus ergibt sich eine Berechnung o 8 fr T bei Eingabe x. Diese Berechnung ist akzeptierend, da durch die Formel E u sichergestellt wird, da ein Endzustand erreicht wurde. Somit gilt: x 2 L = L(T ) gdw erfllbar. u Kosten der Konstruktion: Abschlieend mssen wir uns uberlegen, da aus x in u polynomieller Zeit berechnet werden kann. Die Berechnung des Werts p(n) erfordert polynomielle Zeit. Fr die eigentliche Konstruktion von mssen wir uns lediglich davon u u uberzeugen, da die Lnge von polynomiell in |x| = n ist.9 Oenbar ist a |A| = O(p(n)) und |E| = O(|F |) = O(1),
8 Bei der Rekonstruktion der Berechnung ist zu beachten, da nichtexistente Ubergnge mit der modia zierten Ubergangsfunktion 0 fr frhzeitig terminierende Berechnungen stehen. u u 9 Wir haben uns oben bereits klargemacht, da die Anzahl an Aussagensymbolen polynomiell in n ist. Die Codierungslnge von ist daher polynomiell in Anzahl an Operatoren von und der Lnge von x. a a

47

da |F | als konstant angesehen werden kann. Die Formeln zur Darstellung der Ubergangsfunktion haben die Lnge a |Ub1 | = O(p(n) |Q| p(n) | |) = O p(n)2 |Ub2 | = O(p(n) p(n) | |) = O p(n)2 Auch hier machen wir davon Gebrauch, da |Q| und | | als konstant angesehen werden. Die Lnge der Formeln (t, q, i, a) ist daher jeweils konstant. Fr die Formel R kann man a u zeigen, da sie kubisch in p(n) beschrnkt ist (d.h. |R| = O (p(n)3 )). a .mine

3.3.6

Weitere Beispiele NP-vollstndiger Probeme a

Gelste Probleme o
89 Zeigen Sie 2SAT 2 P 90 Zeigen Sie 3SAT p Clique 91 Zeigen Sie 3SAT p DHC p HC p T CP 92 Zeigen Sie 3GC 2 N P C 93 Zeigen Sie, dass die unterschiedelichen Varianten des Rucksackproblems in NPC liegen (mit Ausnahme des rationalen Rucksackproblems). =======

3.3.7

Weitere Beispiele NP-vollstndiger Probeme a

Gelste Probleme o
94 Zeigen Sie 2SAT 2 P 95 Zeigen Sie 3SAT p Clique 96 Zeigen Sie 3SAT p DHC p HC p T CP 97 Zeigen Sie 3GC 2 NPC 98 Zeigen Sie, dass die unterschiedelichen Varianten des Rucksackproblems in NPC liegen (mit Ausnahme des rationalen Rucksackproblems).

48

Literaturverzeichnis
[AB02] Alexander Asteroth and Christel Baier. Theoretische Informatik. Eine Einfhrung u in Berechenbarkeit, Komplexitt und formale Sprachen mit 101 Beispielen. Peara son Studium, 2002. [Her71] Hans Hermes. Aufzhlbarkeit, Entscheidbarkeit, Berechenbarkeit. Springer Verlag, a 1971. [Koz97] Dexter Kozen. Automata and Computability. Springer-Verlag, New York, 1997. [Sch92] Uwe Schning. Theoretische Informatik kurz gefat. BI Wissenschaftsverlag, Unio versitt Ulm, 3 edition, 1992. a [VW06] Gottfried Vossen and Kurt-Ulrich Witt. Vieweg Verlag, 2006. Grundkurs Theoretische Informatik.

49

Kapitel 4 Lsungen o

50

Index
F , 12 O(x), 8 Q, 12 S(x), 8 Conf(T ), 14 EXPTIME, 37 , 12 NP, 37 P, 37 , 12 Tw , 21 T+1 , 14 , 10 k , 10 , 12 n ,9 2 -rekursive Funktionen, 11 !, 10 n i , 9 k -Operator, 11 `, 15 ` , 15 `T , 33 ` , 33 T bin, 16 bink , 16 c(x, y), 10 ck (n1 , . . . , nk ), 10 val, 16 Aquivalenz Berechenbarkeit Einband-TM und k-Band-TM, 17, 22 GOTO und WHILE, 5, 6 LOOP und p.r., 11 TM und LBB-TM, 17, 22 TM und TM mit mehrdim. Band, 17, 22 WHILE und -rekursiv, 11, 12 WHILE und Turing, 18, 19, 23 NTM TM, 34 Ubergangsfunktion, 13 NP-vollstndig, 39 a NP-hart, 39 Ackermannfunktion, 7 Alphabet, 12 Anfangsbelegung, 3 Band, 13 Bandalphabet, 13 Bedingte Ausfhrung, 2, 3 u Belegung, 3 berechenbar, 26 Berechenbarkeit -rekursiv berechenbare Funktion, 11 Goto, 5 Aquivalenz Einband-TM und k-Band-TM, 17, 22 GOTO und WHILE, 5, 6 LOOP und p.r., 11 TM und LBB-TM, 17, 22 TM und TM mit mehrdim. Band, 17, 22 WHILE und -rekursiv, 11, 12 WHILE und Turing, 18, 19, 23 Loop, 7 While, 4 primitiv rekursive Funktion, 9 Turing, 15, 16 k-Band, 17 Berechnung 51

akzeptierend, 15 einer NTM, 33 einer TM, 15 unedlich, 15 verwerfend, 15 Berechnungsbaum, 33 Cantorschen Diagonalisierungsfunktion, 10 Church-Turing-These, 25 Codierfunktion ck , 10 Dekrement, 4 DTM, 12 Eingabealphabet, 12 Einsetzung, 9 Endzustnde, 13 a entscheidbar, 26 Entscheidungsprobleme, 26 Entscheidungsverfahren nichtdeterministisch, 34 Funktion -rekursive, 11 partielle, 27 primitiv rekursive, 8 Gdel, 12 o GOTO Berechenbarkeit, 5 Programm, 5 Semantik, 5 Syntax, 5 Identittsfunktion, 9 a Inkrement, 2 Kleenesche Normalform, 6 Komplexitt, 36 a Komplexittsklasse, 36 a EXPTIME, 37 NP, 37 P, 37 Komposition, 2, 3 Konguration, 14

einer NTM, 33 Kongurationsrelation erweiterte, 33 Laufzeit, 4 LOOP Berechenbarkeit, 7 Programm, 6 Schleife, 2 Syntax, 6 Nachfolgerfunktion, 8 Normalform Kleenesche, 6 Nullfunktion, 8 p.r., 8 der Grundrechenarten, 9 partielle Funktion, 27 Polynomielle Reduktion, 38 Prdikate a primitiv rekursive, 10 primitiv rekursive Funktion, 8 primitive Rekursion, 8, 9 Problem SAT, 42 Programm While, 2 GOTO, 5 LOOP, 6 Projektionsfunktionen, 9 Reduktion polynomielle, 38 Reduktionsprinzip, 29 reduzierbar, 29 Rekursion primitive, 8, 9 rekursive Aufzhlbarkeit, 27 a SAT, 42 Schleife LOOP, 2 52

WHILE, 2, 3 Schrittweises Verhalten von T , 15 Semantik GOTO, 5 Turingmaschine, 14 WHILE, 3 semi-entscheidbar, 27 Sprache einer TM, 27 Startzustand, 13 Syntax GOTO, 5 LOOP, 6 WHILE, 2 TM, 12 Sprache, 27 Turing Berechenbarkeit, 15 Turingmaschine, 12 deterministische, 12 Einband, 12 Mehrband, 17 Variablenbelegung, 3 WHILE Berechenbarkeit, 4 Grundrechenarten, 4 Programm, 2 Schleife, 2, 3 Semantik, 3 Syntax, 2 Zeitkomplexittsklassen, 36 a Zustnde, 13 a Zuweisung, 2, 3

53

También podría gustarte