13.07.2015 Aufrufe

1.3 Primitiv rekursive und μ-rekursive Funktionen - Universität Kassel

1.3 Primitiv rekursive und μ-rekursive Funktionen - Universität Kassel

1.3 Primitiv rekursive und μ-rekursive Funktionen - Universität Kassel

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Kapitel 1: Berechenbarkeitstheorie<strong>1.3</strong> <strong>Primitiv</strong> <strong>rekursive</strong> <strong>und</strong> µ-<strong>rekursive</strong> <strong>Funktionen</strong>Beispiele:(1.) add : N 2 → N :add(0, x) = x (= Π 1 1 (x))add(n+1, x) = s(add(n, x))(= s(Π 3 1(add(n, x), n, x)))(2.) mult : N 2 → N :mult(0, x) = 0mult(n+1, x) = add(mult(n, x), x) = h(mult(n, x), n, x)mit h(u, v, w) = add(Π 3 1 (u, v, w),Π3 3(u, v, w))(3.) Ist f(v, w, x, y) prim. rek., so auchg(a, b, c) = f(b, b, c, a), denn:g(a, b, c) = f(Π 3 2 (a, b, c),Π3 2 (a, b, c),Π3 3 (a, b, c),Π3 1(a, b, c)).Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) Berechenbarkeit <strong>und</strong> Formale Sprachen 47 / 309


Kapitel 1: Berechenbarkeitstheorie<strong>1.3</strong> <strong>Primitiv</strong> <strong>rekursive</strong> <strong>und</strong> µ-<strong>rekursive</strong> <strong>Funktionen</strong>(6.) ( )n2 =n(n−1)2:( 0(2)= 0,n+1) (2 = n)2 + n(7.) c : N 2 → N : c(x, y) = ( x+y+1) (2 + x = add( s(add(x,y))),Π21(x, y))❅ ❅xy01 2 3 4 5200 2 5 914 201 1 4 813 19 262 3 712 18 25 333 611 17 24 32 414510 16 23 31 40 5015 22 30 39 49 60c ist Bijektion von N 2 auf N.Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) Berechenbarkeit <strong>und</strong> Formale Sprachen 49 / 309


Kapitel 1: Berechenbarkeitstheorie<strong>1.3</strong> <strong>Primitiv</strong> <strong>rekursive</strong> <strong>und</strong> µ-<strong>rekursive</strong> <strong>Funktionen</strong>Verallgemeinerung 〈,...,〉 : N k+1 → N :〈n 0 , n 1 ,...,n k 〉 := c(n 0 , c(n 1 ,...,c(n k , 0)...))Seien e, f : N → N die Umkehrfunktionen zu c:e(c(x, y)) = x, f(c(x, y)) = y, c(e(n), f(n)) = n.Dann : d 0 (n) = e(n)d 1 (n) = e(f(n)).d k (n) = e(f(f(...f(n)...)))} {{ }k-malEs gilt:d i (〈n 0 , n 1 ,...,n k 〉) = n i (0 ≤ i ≤ k).Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) Berechenbarkeit <strong>und</strong> Formale Sprachen 50 / 309


Kapitel 1: Berechenbarkeitstheorie<strong>1.3</strong> <strong>Primitiv</strong> <strong>rekursive</strong> <strong>und</strong> µ-<strong>rekursive</strong> <strong>Funktionen</strong>Lemma 1.12Die <strong>Funktionen</strong> e <strong>und</strong> f sind primitiv rekursiv.P ⊆ N ˆ= Prädikat P(n)n ∈ P gdw. P(n) gilt.Charakteristische{Funktion zu P:1 falls P(n)χ P (n) =0 sonstDefinition P(n) ist prim. rekursiv gdw. χ P ist prim. rekursiv.Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) Berechenbarkeit <strong>und</strong> Formale Sprachen 51 / 309


Kapitel 1: Berechenbarkeitstheorie<strong>1.3</strong> <strong>Primitiv</strong> <strong>rekursive</strong> <strong>und</strong> µ-<strong>rekursive</strong> <strong>Funktionen</strong>Beschränkter max-Operator:q(n) := max{ x ≤ n | P(x)}:= max({ x | x ≤ n <strong>und</strong> P(x)}∪{0}).Lemma 1.13Mit P ist auch q primitiv rekursiv.Beweis:q(0) = 0{ n+1 falls P(n+1)q(n+1) =q(n) sonst= q(n)+χ P (n+1)∗((n+1)−q(n)).✷Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) Berechenbarkeit <strong>und</strong> Formale Sprachen 52 / 309


Kapitel 1: Berechenbarkeitstheorie<strong>1.3</strong> <strong>Primitiv</strong> <strong>rekursive</strong> <strong>und</strong> µ-<strong>rekursive</strong> <strong>Funktionen</strong>Beschränkter Existenzquantor:Q(n) gdw. ∃x ≤ n : P(x)Dann : Q(0) gdw. P(0)Q(n+1) gdw.d.h.χ Q (0) = χ P (0)P(n+1) oder Q(n)χ Q (n+1) = χ P (n+1)+χ Q (n)−χ P (n+1)∗χ Q (n)Lemma 1.14Mit P ist auch Q primitiv rekursiv.Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) Berechenbarkeit <strong>und</strong> Formale Sprachen 53 / 309


Kapitel 1: Berechenbarkeitstheorie<strong>1.3</strong> <strong>Primitiv</strong> <strong>rekursive</strong> <strong>und</strong> µ-<strong>rekursive</strong> <strong>Funktionen</strong>Beweis zu e, f sind primitiv rekursiv:e ′ (n, m, k) := max{ x ≤ n | ∃y ≤ k : c(x, y) = m}Beh. e ′ ist primitiv rekursiv.Bew.: Definiere P(x, y, m) gdw. c(x, y) = m.Dann gilt: χ P (x, y, m) = 1−((c(x, y)−m)+(m−c(x, y))),d.h., P ist primitiv rekursiv.Definiere Q(x, k, m) gdw. ∃y ≤ k : c(x, y) = mgdw. ∃y ≤ k : P(x, y, m).Q ist primitiv rekursiv nach Lemma 1.14.e ′ (n, m, k) = max{ x ≤ n | Q(x, k, m)},also ist e ′ primitiv rekursiv nach Lemma 1.13. ✷Es gilt e ′ (n, n, n) = max{ x ≤ n | ∃y ≤ n : c(x, y) = n} = e(n).f ′ (n, m, k) := max{ y ≤ n | ∃x ≤ k : c(x, y) = m}Dann: f ′ (n, n, n) = f(n).✷Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) Berechenbarkeit <strong>und</strong> Formale Sprachen 54 / 309


Kapitel 1: Berechenbarkeitstheorie<strong>1.3</strong> <strong>Primitiv</strong> <strong>rekursive</strong> <strong>und</strong> µ-<strong>rekursive</strong> <strong>Funktionen</strong>Satz 1.15Die Klasse der primitiv <strong>rekursive</strong>n <strong>Funktionen</strong> stimmt mit der Klasseder LOOP-berechenbaren <strong>Funktionen</strong> überein.Beweis:“⇐”: Sei F : N r → N LOOP-berechenbar.Es gibt ein LOOP-Programm P, das F berechnet.P enthalte die Variablen x 0 , x 1 ,...,x k (k ≥ r).Behauptung:Es gibt eine prim. <strong>rekursive</strong> Funktion g P : N → N:g P (〈a 0 , a 1 ,...,a k 〉) = 〈b 0 , b 1 ,...,b k 〉,wobei a 0 , a 1 ,...,a k die Werte von x 0 , x 1 ,...,x k beim Start <strong>und</strong>b 0 , b 1 ,...,b k die Werte von x 0 , x 1 ,...,x k beim Halt von P sind.Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) Berechenbarkeit <strong>und</strong> Formale Sprachen 55 / 309


Kapitel 1: Berechenbarkeitstheorie<strong>1.3</strong> <strong>Primitiv</strong> <strong>rekursive</strong> <strong>und</strong> µ-<strong>rekursive</strong> <strong>Funktionen</strong>Beweis Induktion über den Aufbau von P:(i) x i := x j ± cg P (n) = 〈d 0 (n),...,d i−1 (n), d j (n)±c, d i+1 (n),...,d k (n)〉(ii) Q; Rg P (n) = g R (g Q (n))(iii) LOOP x i DO Q ENDg P (n) = h(d i (n), n)mit h(0, x) = xh(n+1, x) = g Q (h(n, x))d.h. h(n, x) = g Q (g Q (...(g} {{ Q (x))...)}n-malNun gilt:F(n 1 ,...,n r ) = d 0 (g P (〈0, n 1 ,...,n r , 0,...,0〉)). ✷} {{ }k−rProf. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) Berechenbarkeit <strong>und</strong> Formale Sprachen 56 / 309


Kapitel 1: Berechenbarkeitstheorie<strong>1.3</strong> <strong>Primitiv</strong> <strong>rekursive</strong> <strong>und</strong> µ-<strong>rekursive</strong> <strong>Funktionen</strong>“⇒”: Sei F primitiv rekursiv.Behauptung:Es gibt ein LOOP-Programm, das F berechnet.Beweis:Ind. über den Aufbau von F:(i) Basisfunktionen : LOOP-berechenbar.(ii) F(n 1 ,...,n m ) = g(h 1 (x 1 ,...,x m ),...,h k (x 1 ,...,x m )):P F aus P g <strong>und</strong> P h1 ,...,P hk .(iii) F(0, x 1 ,...,x r ) = g(x 1 ,...,x r )F(n+1, x 1 ,...,x r ) = h(F(n, x 1 ,...,x r ), n, x 1 ,...,x r )P F : y := g(x 1 ,...,x r ); (∗ mit P g ∗)k := 0;LOOP n DO y := h(y, k, x 1 ,...,x r );(∗ mit P h ∗)k := k + 1ENDProf. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) Berechenbarkeit <strong>und</strong> Formale Sprachen 57 / 309✷


Kapitel 1: Berechenbarkeitstheorie<strong>1.3</strong> <strong>Primitiv</strong> <strong>rekursive</strong> <strong>und</strong> µ-<strong>rekursive</strong> <strong>Funktionen</strong>Definition 1.16 (µ-Operator)Sei f : N k+1 → N.Definiere g : N k → N durch Anwendung des µ-Operators auf f:g(x 1 ,...,x k ) = min{ n | f(n, x 1 ,...,x k ) = 0<strong>und</strong> ∀m < n : f(m, x 1 ,...,x k ) ∈ N}Dabei: min∅ := <strong>und</strong>efiniert.Bezeichnung: g = µf.Beispiel:f(x, y) = 1.Dann: g(y) := µf(y) = min{ n | f(n, y) = 0} = Ω (<strong>und</strong>ef. Funktion)Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) Berechenbarkeit <strong>und</strong> Formale Sprachen 58 / 309


Kapitel 1: Berechenbarkeitstheorie<strong>1.3</strong> <strong>Primitiv</strong> <strong>rekursive</strong> <strong>und</strong> µ-<strong>rekursive</strong> <strong>Funktionen</strong>Beispiel:f(x, y) = (y + 1) ˙−(x + 1) 2 .g(y) = µf(y) = min{ n | f(n, y) = 0 <strong>und</strong> ∀m < n : f(m, y) ∈ N}= min{ n | (y + 1) ˙−(n+1) 2 = 0} :n = 0 : (y + 1) ˙−(n+1) 2 = y, also: g(0) = 0,n = 1 : (y + 1) ˙−(n+1) 2 = y ˙−3, also: g(y) = 1 für 1 ≤ y ≤ 3,n = 2 : (y + 1) ˙−(n+1) 2 = y ˙−8, also: g(y) = 2 für 4 ≤ y ≤ 8.Damit:g(y) := µf(y) = min{ n | (n+1) 2 > y } = max{ n | n 2 ≤ y } = ⌊ √ y⌋.Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) Berechenbarkeit <strong>und</strong> Formale Sprachen 59 / 309


Kapitel 1: Berechenbarkeitstheorie<strong>1.3</strong> <strong>Primitiv</strong> <strong>rekursive</strong> <strong>und</strong> µ-<strong>rekursive</strong> <strong>Funktionen</strong>Definition 1.17Die Klasse der µ-<strong>rekursive</strong>n <strong>Funktionen</strong>(a) Basisfunktionen : konstante <strong>Funktionen</strong>, Π m i, s.(b) Abschluss: Komposition, prim. Rekursion, µ-Operator.Satz 1.18Die Klasse der µ-<strong>rekursive</strong>n <strong>Funktionen</strong> stimmt mit der Klasse derWHILE-berechenbaren <strong>Funktionen</strong> überein.Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) Berechenbarkeit <strong>und</strong> Formale Sprachen 60 / 309


Kapitel 1: Berechenbarkeitstheorie<strong>1.3</strong> <strong>Primitiv</strong> <strong>rekursive</strong> <strong>und</strong> µ-<strong>rekursive</strong> <strong>Funktionen</strong>Beweis:Es bleibt, den µ-Operator <strong>und</strong> die WHILE-Schleife zu betrachten.“⇐”: WHILE-Programm:WHILE x i ≠ 0 DO Q ENDDie Funktion h(n, x) liefert den Zustand der Programmvariablenx = 〈x 0 ,...,x k 〉 nach n Ausführungen von Q.Dann: g P (x) = h(µ(d i h)(x), x),wobei µ(d i h)(x) = min{ n | d i h(n, x) = 0 <strong>und</strong> ∀m < n : d i h(m, x) ∈ N}.Mit h ist dann g P µ-rekursiv.“⇒”: Sei g(x) = µf(x).Nach I.V. gibt es ein WHILE-Programm für f.P g : x 0 := 0; y := f(0, x 1 ,...,x k );WHILE y ≠ 0 DO x 0 := x 0 + 1; y := f(x 0 , x 1 ,...,x k );END✷Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) Berechenbarkeit <strong>und</strong> Formale Sprachen 61 / 309


Kapitel 1: Berechenbarkeitstheorie<strong>1.3</strong> <strong>Primitiv</strong> <strong>rekursive</strong> <strong>und</strong> µ-<strong>rekursive</strong> <strong>Funktionen</strong>Satz 1.19 (Kleene)Für jede n-stellige µ-<strong>rekursive</strong> Funktion f gibt es zwei (n+1)-stellige,primitiv <strong>rekursive</strong> <strong>Funktionen</strong> p <strong>und</strong> q, sodass sich f wie folgtdarstellen lässt:f(x 1 ,...,x n ) = p(x 1 ,...,x n ,µq(x 1 ,...,x n )).Beweis:Sei f µ-rekursiv.❀ ∃ WHILE-Programm, das f berechnet❀ ∃ WHILE-Programm mit nur einer WHILE-Schleife, das f berechnet❀ ∃ prim. rek. <strong>Funktionen</strong> p <strong>und</strong> q, die f wie oben darstellen. ✷Prof. Dr. F. Otto (<strong>Universität</strong> <strong>Kassel</strong>) Berechenbarkeit <strong>und</strong> Formale Sprachen 62 / 309

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!