• Keine Ergebnisse gefunden

Schl¨ usselw¨ orter: LOOP DO END

N/A
N/A
Protected

Academic year: 2021

Aktie "Schl¨ usselw¨ orter: LOOP DO END"

Copied!
14
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

1.5 LOOP-Berechenbarkeit

LOOP-Programme sind wie folgt definiert:

Variablen: x 1 , x 2 , x 3 , . . . Konstanten: 0, 1, 2, . . . Trennsymbole: ; :=

Operatoren: + -

Schl¨ usselw¨ orter: LOOP DO END

Info IV 1.5 LOOP-Berechenbarkeit 207/217

c

Ernst W. Mayr

(2)

Der Aufbau von LOOP-Programmen:

x i := c, x i := x j + c, x i := x j − c sind LOOP-Programme.

Die Interpretation dieser Ausdr¨ ucke erfolgt, wie ¨ ublich, mit der Einschr¨ ankung, dass x j − c als 0 gewertet wird, falls c > x j . Sind P 1 und P 2 LOOP-Programme, so ist auch

P 1 ; P 2 ein LOOP-Programm.

Interpretation: F¨ uhre zuerst P 1 und dann P 2 aus.

Ist P ein LOOP-Programm, so ist auch LOOP x i DO P END ein LOOP-Programm.

Interpretation: F¨ uhre P genau x i -mal aus.

Achtung: Zuweisungen an x i im Innern von P haben keinen Einfluss auf die Anzahl der Schleifendurchl¨ aufe!

Info IV 1.5 LOOP-Berechenbarkeit 208/217

c

Ernst W. Mayr

(3)

Definition 130

Eine Funktion f heißt LOOP-berechenbar genau dann, wenn es ein LOOP-Programm gibt, das f berechnet.

LOOP-Programme k¨ onnen IF . . . THEN . . . ELSE . . . END

Konstrukte simulieren. Der Ausdruck IF x = 0 THEN A END kann durch folgendes Programm nachgebildet werden:

y := 1;

LOOP x DO y := 0 END;

LOOP y DO A END;

LOOP-berechenbare Funktion sind immer total, denn:

LOOP-Programme stoppen immer. Damit stellt sich nat¨ urlich die Frage, ob alle totalen Funktionen LOOP-berechenbar sind.

Info IV 1.5 LOOP-Berechenbarkeit 209/217

c

Ernst W. Mayr

(4)

Satz 131

f ist primitiv-rekursiv ⇐⇒ f ist LOOP-berechenbar.

Info IV 1.5 LOOP-Berechenbarkeit 210/217

c

Ernst W. Mayr

(5)

Beweis:

Wir zeigen zun¨ achst

” ⇐“: Sei also P ein LOOP-Programm, das f : N n 0 → N 0 berechnet. P verwende die Variablen x 1 , . . . , x k , k ≥ n.

Zu zeigen: f ist primitiv-rekursiv.

Der Beweis erfolgt durch strukturelle Induktion ¨ uber den Aufbau von P .

Info IV 211/217

c

Ernst W. Mayr

(6)

Beweis:

Induktionsanfang: P : x i := x j ± c

Wir zeigen: Es gibt eine primitiv-rekursive Funktion g P (ha 1 , . . . , a k i

| {z } Belegung der Variablen

beim Start von P

) = hb 1 , . . . , b k i

| {z } Belegung der Variablen

am Ende von P F¨ ur P : x i := x j ± c erh¨ alt man:

g P (ha 1 , . . . , a k i) = ha 1 , . . . , a i−1 , a j ± c, a i+1 , . . . , a k i

Info IV 211/217

c

Ernst W. Mayr

(7)

Beweis:

Induktionsschritt: Hier unterscheiden wir 2 F¨ alle:

1

Sei P : Q; R. Dann ist g P (x) = g R (g Q (x)).

2

Sei nun P : LOOP x i DO Q END.

Idee: Definiere Funktion h(n, x), die die Belegung der Variablen berechnet, wenn man mit Belegung x startet und dann Q genau n mal ausf¨ uhrt. Dann ist:

h(0, x) = x

h(n + 1, x) = g Q (h(n, x))

und damit g P (x) = h(d i (x), x), wobei d i die i-te Umkehrfunktion von hx 1 , . . . , x k i ist, also

d i (hx 1 , . . . , x k i) = x i . Die Richtung

” ⇒“ wird durch strukturelle Induktion ¨ uber den Aufbau von f gezeigt ( ¨ Ubungsaufgabe).

Info IV 1.5 LOOP-Berechenbarkeit 211/217

c

Ernst W. Mayr

(8)

Definition 132

Die Ackermann-Funktion a : N 2 0 → N 0 :

a(x, y) :=

 

 

y + 1 falls x = 0

a(x − 1, 1) falls x ≥ 1, y = 0 a(x − 1, a(x, y − 1)) falls x, y ≥ 1

Einige Eigenschaften der Ackermann-Funktion, die man per Induktion zeigen kann:

1

a(1, y) = y + 2, a(2, y) = 2y + 3 f¨ ur alle y

2

y < a(x, y) ∀x, y

3

a(x, y) < a(x, y + 1) ∀x, y

4

a(x, y + 1) ≤ a(x + 1, y) ∀x, y

5

a(x, y) < a(x + 1, y) ∀x, y

Info IV 1.5 LOOP-Berechenbarkeit 212/217

c

Ernst W. Mayr

(9)

Genauer:

y →

0 1 2 3 4 5

0 1 2 3 4 5 6

1 2 3 4 5 6 7

x 2 3 5 7 9 11 13

↓ 3 5 13 29 61 125 253

4 13 65533 2

65536

− 3 2

265536

− 3 2

2265536

− 3 . . . 5 65533 . . .

Info IV 1.5 LOOP-Berechenbarkeit 213/217

c

Ernst W. Mayr

(10)

Lemma 133

Sei P ein LOOP-Programm mit den Variablen x 1 , . . . , x k , und sei

f P (n) = max{ X

i

n 0 i ; X

i

n i ≤ n},

wobei, f¨ ur i = 1, . . . , k, n 0 i der Wert von x i nach Beendigung von P und n i der Startwert von x i vor Beginn von P ist. Dann gibt es ein t ∈ N , so dass

∀n ∈ N 0 : f P (n) < a(t, n).

Info IV 1.5 LOOP-Berechenbarkeit 214/217

c

Ernst W. Mayr

(11)

Beweis:

durch Induktion ¨ uber den Aufbau von P.

Induktionsanfang:

P = x i := x j ± c, o.E. c ∈ {0, 1}. Es ist klar, dass

f P (n) ≤ 2n + 1 < 2n + 3 = a(2, n) f¨ ur alle n

⇒ t = 2 tut es!

Info IV 215/217

c

Ernst W. Mayr

(12)

Beweis:

durch Induktion ¨ uber den Aufbau von P.

Induktionsschritt:

1. Fall: P = P 1 ; P 2 . Nach Induktionsannahme gibt es k 1 , k 2 ∈ N , so dass f¨ ur i = 1, 2 und f¨ ur alle n ∈ N 0 f P

i

< a(k i , n).

Damit

f P (n) ≤ f P

2

(f P

1

(n))

≤ f P

2

(a(k 1 , n)) Monotonie von f P

2

< a(k 2 , a(k 1 , n)) I.A., setze k 3 := max{k 2 , k 1 − 1}.

≤ a(k 3 , a(k 3 + 1, n)) Monotonie!

= a(k 3 + 1, n + 1)

≤ a(k 3 + 2, n) Eigenschaft 4 der Ackermannfkt.

und t = k 3 + 2 tut es hier! 2. Fall: P = LOOP x i DO Q END.

Die Absch¨ atzung erfolgt analog zum 1. Fall und wird als Ubungsaufgabe ¨ ¨ uberlassen.

Info IV 1.5 LOOP-Berechenbarkeit 215/217

c

Ernst W. Mayr

(13)

Satz 134

Die Ackermann-Funktion ist nicht LOOP-berechenbar.

Beweis:

Angenommen doch. Sei P ein zugeh¨ origes LOOP-Programm, das g(n) := a(n, n)

berechnet.

Nach Definition von f P gilt g(n) ≤ f P (n) f¨ ur alle n ∈ N 0 . W¨ ahle gem¨ aß dem obigen Lemma t mit f P (·) < a(t, ·) und setze n = t:

f P (t) < a(t, t) = g(t) ≤ f P (t)

⇒ Widerspruch!

Info IV 1.5 LOOP-Berechenbarkeit 216/217

c

Ernst W. Mayr

(14)

1.6 µ-rekursive Funktionen

F¨ ur eine Funktion f liefert der so genannte µ-Operator das kleinste Argument, f¨ ur das f gleich 0 wird (falls ein solches existiert). Der µ-Operator gestattet so z.B., vorab die Anzahl der Durchl¨ aufe einer WHILE-Schleife zu bestimmen, bis die Laufvariable gleich 0 wird.

Definition 135

Sei f eine (nicht notwendigerweise totale) k + 1-stellige Funktion.

Die durch Anwendung des µ-Operators entstehende Funktion f µ ist definiert durch:

f µ : N k 0 → N 0

(x 1 , . . . , x k ) 7→

 

 

min{n ∈ N 0 ; f (n, x 1 , . . . , x k ) = 0} falls f (m, x 1 , . . . , x k ) definiert f¨ ur alle m ≤ n

⊥ (undefiniert) sonst

Info IV 1.6µ-rekursive Funktionen 217/217

c

Ernst W. Mayr

Referenzen

ÄHNLICHE DOKUMENTE

F¨ ur stetig dif- ferenzierbare Funktionen gilt also, dass die Ableitung auch durch den R¨ uckw¨ arts- und den zentralen Differenzenquotienten

Das Problem ist, der Join f¨ ur diesen Verband schwer zu

Seien P 1 , P 2 zwei Prozesse eines Event-basierten Systems und Σ die Menge aller Events, die in diesem System auftreten k¨ onnen (Alphabet). &gt; uber dem

elliptischer Punkt hyperbolischer Punkt parabolischer Punkt Bei Funktionen von zwei Ver¨ anderlichen kann der Typ anhand der Determinante und Spur der Hesse-Matrix klassifiziert

Diese Identit¨ at vereinfacht sich, wenn eine oder zwei der Dimensionen gleich

Man bestimme durch Extrapolation eines geeigneten Differenzenquotienten m¨ oglichst gute N¨ aherungen zum Ableitungswert f 0 (0.6) = 0, 63665358..

so vorgehen: Streue eine große Menge von Punkten gleichm¨aßig ¨uber dem Intervall und werte die Funktion an diesen Stellen aus.. Damit l¨asst sich das Lagrangesche

[r]