• Keine Ergebnisse gefunden

Berechenbarkeit und Komplexit¨at Vorlesung 12

N/A
N/A
Protected

Academic year: 2022

Aktie "Berechenbarkeit und Komplexit¨at Vorlesung 12"

Copied!
22
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Berechenbarkeit und Komplexit¨at Vorlesung 12

Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7

RWTH Aachen

8. Dezember 2014

(2)

M¨achtigkeit der LOOP-Programme

Wir fragen, ob sich das while-Konstrukt durch loop ersetzen l¨asst.

Die erste Antwort lautet: Nein, denn mit WHILE-Programmen lassen sich nicht-totale Funktionen berechnen, w¨ahrend mit LOOP-Programmen nur totale Funktionen berechenbar sind.

Beispiel:x1 :=x1+ 1; whilex1 6= 0 dox1 :=x1+ 1 endwhile Man zeigt duch Induktion ¨uber den Aufbau der LOOP-Programme:

IstP ein LOOP-Programm (etwa mit den Variablen

x1, . . . ,xk), dann ist die semantische Funktion [P] :Nk →Nk total.

Also ist auch eine durch ein LOOP-ProgrammP berechnete FunktionfP(n) :Nn→Ntotal.

(3)

Die Ackermann-Funktion

Wir zeigen jetzt, dass sogar bei der Berechnung totaler Funktionen das while-Konstrukt nicht durch loop ersetzt werden kann.

Dazu betrachten wir die sog. Ackermann-FunktionA:N2 →N, definiert (durch Wilhelm Ackermann 1928) wie folgt:.

(1)A(0,n) = n+ 1 f¨urn ≥0

(2)A(m+ 1,0) = A(m,1) f¨urm≥0

(3)A(m+ 1,n+ 1) = A(m,A(m+ 1,n)) f¨urm,n≥0 Satz

Die Ackermann-FunktionA ist total und WHILE-berechenbar, aber nicht LOOP-berechenbar.

(4)

Berechnung von A -Werten

Wir wenden die Gleichungen (1), (2), (3) in einem Beispiel an:

A(1,3) =A(0,A(1,2))

=A(0,A(0,A(1,1)))

=A(0,A(0,A(0,A(1,0))))

=A(0,A(0,A(0,A(0,1))))

=A(0,A(0,A(0,A(0,1))))

=A(0,A(0,A(0,2)))

=A(0,A(0,3))

=A(0,4)

= 5

(5)

Totalit¨at und Berechenbarkeit von A

Satz

Die Ackermann-Funktion ist total und berechenbar:

Der eindeutige Auswertungsprozess gem¨aß (1), (2), (3) terminiert f¨ur alle (x,y)∈N2 mit einer nat¨urlichen Zahl

(wir sagen hierf¨ur kurz “A(x,y) ist definiert”).

Beweis durch Induktion ¨uberx f¨ur folgende Behauptung:

F¨ur alley gilt:A(x,y) ist definiert.

Ind.anfangx= 0 ist klar wegen (1)

(6)

Fortsetzung des Beweises

Ind. Vor.:A(x,y) sei definiert f¨ur alle y Ind. Beh.:A(x+ 1,y) ist definiert f¨ur alle y Beweis der Ind. beh. durch Induktion ¨ubery.

ind.anfang:y = 0 klar wegen (2)A(x+ 1,0) =A(x,1) und Ind. Vor. ¨uberA(x,1).

ind.vor.:A(x+ 1,y) ist definiert.

ind. beh.:A(x+ 1,y+ 1) ist definiert.

Wegen (3) ist A(x+ 1,y+ 1) =A(x,A(x+ 1,y)).

A(x+ 1,y) ist definiert nach ind.vor.

A(x,A(x+ 1,y)) ist dann definiert nach Ind.Vor. ¨uber x

Wir ¨uberschlagen hier die ¨Ubersetzung des Auswertungsverfahrens in ein konkretes WHILE-Programm.

(7)

Die Ackermann-Funktion – Eigenschaften

Monotonie

A(m+ 1,n)>A(m,n) A(m,n+ 1)>A(m,n)

A(m+ 1,n−1)≥A(m,n) (¨Ubungsaufgabe) Wenn man den ersten Parameter fixiert ...

A(1,n) =n+ 2, A(2,n) = 2n+ 3, A(3,n) = 8·2n−3,

A(4,n) = 22··

·2

| {z } n+ 2 viele

Potenzen

−3,

BereitsA(4,2) = 265536−3 ist gr¨oßer als die (vermutete) Anzahl der Atome im Weltraum.

(8)

Wachstum der Variableninhalte in einem LOOP-Programm

Definition der FunktionFP Sei P ein LOOP-Programm

Seien x1, . . . ,xk die Variablen inP.

Wenn die Variablen initial die Werte a= (a0, . . . ,ak)∈Nk haben, dann sei fP(a) das k-Tupel der Variablenwerte nach Ausf¨uhrung von P.

Sei |fP(a)|die Summe der Eintr¨age im k-Tupel fP(a).

Wir definieren nun die Funktion FP :N→Ndurch FP(n) = max

(

|fP(a)|

a∈Nk mit Xk

i=0

ain )

.

Intuitiv beschreibt die FunktionFP das maximale Wachstum der Variablenwerte im LOOP-ProgrammP.

(9)

Ackermannfunktion versus F

P

Wir zeigen nun, dassFP(n) f¨ur allen ∈Necht kleiner ist als A(m,n), wenn der Parameter m gen¨ugend groß in Abh¨angigkeit vonP gew¨ahlt wird.

Lemma

F¨ur jedes LOOP-Programm P gibt es eine nat¨urliche Zahl m, so dass f¨ur alle n gilt: FP(n)<A(m,n).

Beachte: F¨ur ein festes ProgrammP ist der Parameter m eine Konstante.

(10)

Beweis durch Strukturelle Induktion (¨ Uberblick)

Induktionsanfang

Sei P von der Formxi :=xj +c f¨ur c ∈ {−1,0,1}.

Wir werden zeigen: FP(n)<A(2,n).

Induktionsschritt (1. Art) Sei P von der FormP1;P2.

Induktionsannahme:∃q ∈N:FP1(ℓ)<A(q, ℓ) und FP2(ℓ)<A(q, ℓ).

Wir werden zeigen: FP(n)<A(q+ 1,n).

Induktionsschritt (2. Art)

Sei P von der Form LOOP xi DOQ END.

Induktionsannahme:∃q ∈N:FQ(ℓ)<A(q, ℓ).

Wir werden zeigen: FP(n)<A(q+ 1,n).

(11)

Beweis des Lemmas

Der Induktionsanfang

Sei P von der Formxi :=xj +c f¨ur c ∈ {−1,0,1}.

Dann gilt FP(n)≤2n+ 1.

Somit folgtFP(n)<A(2,n).

Erl¨auterung:Vor Ausf¨uhrung von P k¨onnte geltenxj =n und alle anderen Variablen haben den Wert 0. Ferner k¨onntec den Wert 1 haben. Nach Ausf¨uhrung vonP gilt somitxi =n+ 1 und somit ist die Summe der Variableninhaltexi+xj = 2n+ 1. Ein gr¨oßeres Wachstum der Variableninhalte ist nicht m¨oglich.

(12)

Beweis des Lemmas

Der Induktionsschritt (1. Art) Sei P von der FormP1;P2.

Induktionsannahme:∃q ∈N:FP1(ℓ)<A(q, ℓ) und FP2(ℓ)<A(q, ℓ).

Somit gilt

FP(n) ≤ FP2(FP1(n)) < A(q,A(q,n)) .

Wir verwenden die Absch¨atzung A(q,n)A(q+ 1,n−1).

Es folgt

FP(n) < A(q,A(q+ 1,n−1)) = A(q+ 1,n) .

(13)

Beweis des Lemmas

Der Induktionsschritt (2. Art)

Sei P von der Form LOOP xi DOQ END.

Induktionsannahme:∃q ∈N:FQ(ℓ)<A(q, ℓ).

Sei α=α(n) derjenige Wert f¨ur xi derFP(n) maximiert.

Dann gilt

FP(n) ≤ FQ(FQ(. . .FQ(FQ(n−α)). . .)) +α , wobei die Funktion FQ(·) hierα-fach ineinander eingesetzt ist.

(14)

Beweis des Lemmas

Der Induktionsschritt (2. Art) – Fortsetzung Bisher haben wir gezeigt

FP(n) ≤ FQ(FQ(. . .FQ(FQ(n−α)). . .)) +α , wobei die Funktion FQ(·) hierα-fach ineinander eingesetzt ist.

Aus der Induktionsannahme folgt FQ(ℓ)≤A(q, ℓ)−1.

Dies wenden wir auf die ¨außerste Funktion FQ an und erhalten FP(n) ≤ A(q,FQ(. . .FQ(FQ(n−α)). . .)) +α−1 . Wiederholte Anwendung liefert

FP(n) ≤ A(q,A(q, . . .A(q,A(q,n−α)). . .))

A(q,A(q, . . .A(q,A(q+ 1,n−α)). . .)) .

(15)

Beweis des Lemmas

Der Induktionsschritt (2. Art) – Fortsetzung Bisher haben wir gezeigt

FP(n) ≤ A(q,A(q, . . .A(q,A(q+ 1,n−α)). . .)) . Der Definition der Ackermannfunktion entnehmen wir A(q+ 1,y+ 1) =A(q,A(q+ 1,y)).

Auf die innere Verschachtelung angewendet ergibt sich FP(n) ≤ A(q,A(q, . . .A(q+ 1,n−α+ 1). . .)) , wobei die Schachtelungstiefe nur noch α−1 ist.

Nach weiteren α−2 vielen Anwendungen, folgt FP(n) ≤ A(q+ 1,n−1) < A(q+ 1,n) .

(16)

Ackermann-Funktion nicht LOOP-berechenbar

Wir nutzen das Lemma f¨ur die schon formulierte Behauptung:

Satz

Die Ackermann-Funktion ist nicht LOOP-berechenbar.

Beweis:

Angenommen die Ackermannfunktion ist durch ein LOOP-Programm berechenbar.

Dann sei P ein LOOP-Programm f¨ur die Fkt B(n) =A(n,n).

Es gilt B(n)FP(n).

Aus dem Lemma folgt, es gibt m∈Nmit FP(n)<A(m,n).

F¨ur m=n gilt somit

B(n)FP(n) < A(m,n) = A(n,n) = B(n) .

Widerspruch! Also folgt der Satz.

(17)

Die Busy Beaver Funktion

Wir definieren eine Funktion, die zu gegebenemn die maximale Anzahl der Striche angibt, die eine TM mitn Zust¨anden (plus Stoppzustand) bei Termination auf dem Band liefert.

Genauer:

Einn-Biber ist eine TM mit Zust¨andenq1, . . . ,qn,q ¨uber dem Alphabet{|,B}, die angesetzt auf das leere Band stoppt.

Ein fleißigern-Biber ist einn-Biber, der unter allen n-Bibern bei Termination die maximale Anzahl von Symbolen|liefert

(gegebenenfalls auch unterbrochen durch SymboleB).

Die busy beaver Funktionβ:N→Nist definiert durch

β(n) = Strichzahl, die ein fleißigern-Biber bei Termination liefert.

(18)

Nicht-Berechenbarkeit von β

Es ist klar, dassβ wohldefiniert und total ist.

Satz

Die beasy beaver Funktionβ ist nicht berechenbar.

Vor dem Beweis eine Bemerkung:β(n)< β(n+ 1).

Dies ist klar durch Umwandlung des Stoppzustands eines fleißigen n-Bibers in den Zustandqn+1 und Hinzuf¨ugung der Instruktionen (qn+1 |qn+1|R) und (qn+1 B q |R). Es entsteht ein

(n+ 1)-Biber, der einen Strich mehr liefert als ein fleißigern-Biber.

Man hat Werte vonβ bisher wie folgt bestimmt:

β(1) = 1, β(2) = 4, β(3) = 6, β(4) = 13, β(5)≥4096

β(12)>6·40964096...4096 mit einem Potenzturm der H¨ohe 164

(19)

Ansatz f¨ur die Nicht-Berechenbarkeit

Lemma

β w¨achst st¨arker als jede berechenbare streng monotone Funktion f, in folgendem Sinne:

Seif :N→Nstreng monoton und berechenbar durch eine TM mit Eingabe und Ausgabe nat¨urlicher Zahlen in Un¨ardarstellung.

Dann gibt es einn0, so dass f¨ur nn0 gilt: f(n)< β(n) Insbesondere istβ verschieden von jeder streng monotonen berechenbaren Funktion.

Zum Beweis: Seif berechenbar gegeben. Betrachteg, definiert durchg(n) =f(2n+ 2).

Mitf ist auchg berechenbar (mit un¨arer Darstellung von Zahlen), etwa durch die TMMg mitk Zust¨anden.

OBdA liefertMg bei Termination keine anderen Striche als

(20)

Zur TM M

g

Wir definieren f¨urm≥1 eine Variante Mgm von Mg, mit zus¨atzlichen Zust¨andenp0, . . . ,pm:

Wir stellen den Instruktionen vonMg die Instruktionen (p0 B p1 |R), . . . ,(pm−1 B pm |L)

voran, diem Striche drucken; ferner zwei Instruktionen f¨ur den R¨ucklauf auf den ersten Strich in den Anfangszustandq0 von Mg: (pm |pm |L),(pm B q0 B R).

Die TMMgm hat k+ (m+ 1) Zust¨ande und arbeitet auf dem leeren Band wieMg mit Eingabem.

(21)

Eine Absch¨atzung

Wir erhalten f¨urnk (k = Anzahl derMg-Zust¨ande):

f(2n+ 1)<f(2n+ 2) (da f streng monoton ist)

=g(n) = Anzahl der Striche, dieMgn

angesetzt auf das leere Band bei Termination liefert

≤β(k+ (n+ 1)) (da Mgm k+ (n+ 1) Zust¨ande hat)

≤β(2n+ 1) (wegennk)

< β(2n+ 2) gem¨aß Vorbemerkung Also giltf(x)< β(x) , wennx ≥2n+ 1:

F¨urx gerade nimmt man oben den ersten und vorletzten Term, f¨ur x ungerade den zweiten und letzten Term.

(22)

Zur strengen Monotonie von f

Das Lemma gilt zun¨achst nur f¨ur streng monotone berechenbaref. F¨ur beliebige berechenbare Funktionenh bildet man zunn¨achst eine streng monotone Funktionf mith(n)f(n) und erh¨alt dann f¨ur großen, dass h(n)f(n)< β(n).

Von einer beliebigen berechenbaren Funktionh k¨onnen wir durch Ersatz des Funktionswerts 0 durch 1 ¨ubergehen

zu einer berechenbaren Funktion h ohne Wert 0 mit h(n)h(n)

und dann zu einer streng monotonen berechenbaren Funktion f durch

f(n) =Pn

i=0h(i).

Somit istβ verschieden von jeder totalen berechenbaren Funktion h, also nicht berechenbar.

Referenzen

ÄHNLICHE DOKUMENTE

Welche Funktionen sind durch einen Algorithmus

Falls dieses Zeichen eine 1 ist, so l¨osche es, gehe nach links, und wechsel in den Zustand

F¨ur jeden m¨oglichen Zustand, gibt es dann eine zweite Stufe von |Γ| vielen if-Abfragen, die das gelesene Zeichen selektieren. Durchf¨uhrung des

Als Eingabe erh¨alt die universelle TM U ein Wort der Form hMiw f¨ur beliebiges w ∈ {0, 1} ∗.. Mit der Eingabe hMiw verf¨ahrt U so, wie M dies mit

Auf diese Weise entsteht die “arithmetische Hierarchie”, eine Abstufung der unentscheidbaren Sprachen nach wachsender logischer Komplexit¨ at. Auf der n-ten Stufe sind Sprachen

Wir m¨ussen also nur noch zeigen, dass jede Funktion, die durch eine eingeschr¨ankte RAM berechnet werden kann, auch durch ein WHILE-Programm berechnet werden kann... Beweis

NP ist die Klasse der Entscheidungsprobleme, die durch eine NTM M erkannt werden, deren worst case Laufzeit t M (n) polynomiell beschr¨ankt ist. NP steht dabei f¨ur

CLIQUE ist NP-vollst¨andig... Identifiziere Literale und Knoten, d.h. Zwei Knoten werden durch eine Kante verbunden, wenn.. 1) die assoziierten Literale geh¨oren zu