Theoretische Informatik 1 Teil 2 Bernhard Nessler Institut für Grundlagen der Informationsverabeitung TU Graz SS 2007
Übersicht 1 Codierung, Gödelisierung Paare, Tupel, Listen Überabzählbarkeit 2 Ist universell?
Paare, Tupel, Listen Überabzählbarkeit Codierung, Gödelisierung Definition (Gödelisierung) Eine Funktion τ : C N ist eine Gödelisierung von C gdw. τ ist injektiv; τ ist berechenbar; Es ist n N entscheidbar, ob z C : τ(z) = n Die Umkehrfunktion τ 1 : N C ist berechenbar. C ist abzählbar τ bijektiv = n N : z C : τ(z) = n Es gibt zu jeder Menge C unendlich viele verschiedene Gödelisierungen, jede erzeugt eine bestimmte Nummerieung.
Paare, Tupel, Listen Überabzählbarkeit Zahlenpaare τ : N N N : τ(x, y) = (x+y)(x+y+1) 2 + y Zugriffsfunktionen: π 1 (τ(x, y)) = x π 2 (τ(x, y)) = y
Paare, Tupel, Listen Überabzählbarkeit Zahlentupel vergödeln τ 3 : N 3 N : τ 3 (x 1, x 2, x 3 ) = τ(x 1, τ(x 2, x 3 )) τ 1 : N N : τ 1 (x) = x τ n+1 : N n+1 N : τ n+1 (x 1,..., x n+1 ) = τ(x 1, τ n (x 2,..., x n+1 )) Zugriffsfunktion: π n i (τ n (x 1,..., x n )) = x i, i n
Paare, Tupel, Listen Überabzählbarkeit beliebig lange Listen C = N = N i = {λ, 3, (5, 1, 9), (10,..., 100),...} i=0 τ : N N τ (λ) = 0 τ (x 1,..., x n ) = τ(n 1, τ n (x 1,..., x n )) + 1 Zugriffsfunktionen: ϕ = τ (x 1,..., x n ) π (ϕ, i) = x i len(ϕ) = n { x1 n 1 head(ϕ) = 0 n = 0 { τ tail(ϕ) = (x 2,..., x n ) n 2 0 n 1 concat(ϕ x, ϕ y ) = τ (x 1,..., x n, y 1,..., y m )
Paare, Tupel, Listen Überabzählbarkeit Überabzählbare Mengen N N = R = R 2 = R n = (0, 1) ϕ : [0, 1] [0, 1] 2
RM-Berechenbarkeit (WH) Ist universell? Definition Eine partielle Funktion f : N k N wird RM-berechenbar genannt, wenn es eine Registermaschine R gibt, sodass f = f R.
Berechnungspfad Codierung, Gödelisierung Ist universell? Definition (Berechnungspfad, Länge) Sei κ 0 = (b 0 = 1, c 0 = c[n 1,..., n k ]) eine Startkonfiguration der RM R. Die Folge < κ 0, κ 1,..., κ N >, mit κ i = (b i, c i ), heißt Berechnungspfad der RM R bei Eingabe von n 1,..., n k und hat die Länge N wenn κ N = (, c) 0 i < N : κ i R κ i+1 Falls R nicht terminiert, ist N = und der Berechnungspfad ist eine unendliche Folge von Konfigurationen.
Codierung, Gödelisierung Ist universell? Definition (uniforme Zeitkosten) Die uniformen Zeitkosten der RM R bei Eingabe von n 1,..., n k sind definiert als t u R (n 1,..., n k ) = Definition (uniforme Platzkosten) N 1 Die uniformen Platzkosten der RM R bei Eingabe von n 1,..., n k sind definiert als { sr u 1 0 i N : (n ci (j) 0 1,..., n k ) = 0 0 i N : c i (j) = 0 j=0 i=0 1
Ist universell? Logarithmische Länge Definition (Logarithmische Länge) Sei n N, dann ist die Logarithmische Länge von n die Anzahl der für die binäre Darstellung von n benötigten Bits. { 1 : n = 0 L(n) = log n + 1 : n 1
logarithmische Zeitkosten Ist universell? Definition (logarithmische Zeitkosten) Die logarithmischen Zeitkosten der RM R bei Eingabe von n 1,..., n k sind definiert als t R (n 1,..., n k ) = N 1 i=0 1 P(b i )=GOTO END L(c i (0)) L(c i (0)) L(c i (0))+L(op) L(c i (0))+L(op)+L(c i (op)) L(c i (0))+L(op)+L(c i (op)) L(c i (0))+L(op)+L(c i (op))+ +L(c i (c i (op))) P(b i )=JZERO op P(b i )=ADD SUB MULT DIV #op P(b i )=STORE i P(b i )=ADD SUB MULT DIV op P(b i )=STORE i L(op) P(b i )=LOAD #i L(op)+L(c i (op)) L(op)+L(c i (op))+l(c i (c i (op))) P(b i )=ADD SUB MULT DIV op P(b i )=LOAD i P(b i )=LOAD i
logarithmische Platzkosten Ist universell? Definition (logarithmische Platzkosten) Die logarithmischen Platzkosten der RM R bei Eingabe von n 1,..., n k sind definiert als s R (n 1,..., n k ) = max L(c i(j)) 0 i N j=0
Codierung, Gödelisierung Ist universell? Definition (Zeitkomplexität, Laufzeit) Die Zeitkomplexität (oder Laufzeit) T R (n) einer RM R in Abhängigkeit der logarithmischen Größe n der Eingabe ist definiert als T R (n) = max t R (n 1,..., n k ) (n 1,...,n k ) N k : L(n 1 )+ +L(n k ) n Definition (Platzkomplexität, Speicherbedarf) Die Platzkomplexität (oder der Speicherbedarf) S R (n) einer RM R in Abhängigkeit der logarithmischen Größe n der Eingabe ist definiert als S R (n) = max s R (n 1,..., n k ) (n 1,...,n k ) N k : L(n 1 )+...+L(n k ) n
Ist universell? Landau symbole Definition (Landau O) Alle Funktionen f, deren asymptotisches Wachstum in der Größenordnung durch g(n) beschränkt ist: O(g) = {f : N R : c, n 0 : n > n 0 : f (n) c g(n)} Definition (Landau Θ) Alle Funktionen f, deren asymptotisches Wachstum genau in der Größenordnung von g(n) liegt: Θ(g) = {f : N R : c 1, c 2, n 0 : n > n 0 : c 1 g(n) f (n) c 2 g(n)} Verkürzte Schreibweise: f (n) = O(g(n)) bzw. f (n) = Θ(g(n))
Ist universell? schranken mit O O(poly(n)) = O(n k ) k=0 f (n) = 2 O(log(n)) f (n) = n O(1) R ist quadratisch zeitbeschränkt: T R (n) = O(n 2 ). R ist polynomiell zeitbeschränkt: T R (n) = O(poly(n)). R hat superpolynomielle Laufzeit: T R (n) / O(poly(n)) (Wir betrachten immer den worst-case!)
Beispiel n m, Kosten pro Befehl Ist universell? uniform logarithmisch 1 LOAD #1 a = 1 1 1 2 STORE 3 z = a 1 2 3 LOAD 2 a = m 1 2 + L(m) 4 JZERO 11 a?0 1 L(m) 5 SUB #1 a = a 1 1 L(m) 6 STORE 2 m = a 1 2 + L(m) 7 LOAD 3 a = z 1 2 + L(z) 8 MULT 1 a = a n 1 L(z) + 1 + L(n) 9 STORE 3 z = a 1 L(z) + 2 10 GOTO 3 1 1 11 LOAD 3 a = z 1 2 + L(z) 12 END 1 1
Ist universell? Beispiel n m, uniforme Kosten tr u (n, m) = 4 Zeile 1-4 + 8m Zeile 5-10,3,4; m Durchläufe + 2 Zeile 11,12 = 8m + 6 = Θ(m) = Θ(2 L(m) ) Unter dem uniformen Kostenmodel ist der verwendete Algorithmus für n m linear im Wert der Eingabevariable m, daher ist T u R (L(n) + L(m)) = O(2L(n)+L(m) ), also exponentiell in der Größe der EingabeL(n) + L(m). (worst case)
Ist universell? Beispiel n m, logarithmische Kosten Wir sind nur an der asymptotischen Größe interessiert. Es genügt also, den komplexesten Schleifenbefehl zu untersuchen. t R (n, m) = m [Z8] L(z i ) + 1 + L(n) i=1 = m i=1 L(ni 1 ) + 1 + L(n) = m (i 1)L(n) + 1 + L(n) i=1 = m 1 + il(n) i=1 m(m 1) = m + L(n) = Θ(m 2 L(n)) = Θ(2 2L(m) L(n)) 2
Ist universell? uniforme vs. log. Kosten Solange man nur die Frage der polynomiellen Laufzeit beantworten möchte, kann man unter folgenden Voraussetzungen das uniforme Kostenmaß verwenden. t u R (n1,..., n k) = O(poly(L(n 1 ) + + L(n k ))) max i,j L(c i (j)) = O(poly(L(n 1 ) + + L(n k ))) Sind beide Voraussetzungen erfüllt, dann ist R polynomiell zeitbeschränkt.
Ist universell? Modellunabhängigkeit? Berechenbarkeit ist universell, modellunabhängig 1. Zeitkostenmaß, also ist offensichtlich abhängig von: Kostenmodel Maschinenmodel Befehlsvorrat Laufzeit, also ist stark modellabhängig. Ziel Allgemeingültige Aussagen über Kann man Eigenschaften finden, die für alle Modelle gelten? 1 =Church-Turing-These (bereits bekannt)