Theoretische Informatik 1

Ähnliche Dokumente
Theoretische Informatik 1

Theoretische Informatik 1

Theoretische Informatik 1

Theoretische Informatik 1

Theoretische Informatik 1

Theoretische Informatik 1

Theoretische Informatik 1

Registermaschine (RAM), Church-Turing-These. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen

Mächtigkeit von WHILE-Programmen

Registermaschine (RAM), Church-Turing-These

Laufzeit einer DTM, Klasse DTIME

Theoretische Informatik 1

Vorlesung Datenstrukturen

11. Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P

Die Komplexitätsklassen P und NP

Übung zur Vorlesung Berechenbarkeit und Komplexität

Allgemeines Halteproblem Hilberts 10. Problem

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung

Berechenbarkeit und Komplexität Vorlesung 11

Zeitkomplexität (1) Proseminar Theoretische Informatik. Proseminar Theoretische Informatik: Lisa Dohrmann 1

2. Imperative Programmierung und Berechenbarkeit - Registermaschinen -

Algorithmen und Datenstrukturen 1 Kapitel 4.1

Berechenbarkeit und Komplexität

Grundlagen der Programmierung (Vorlesung 24)

Berechenbarkeit und Komplexität Vorlesung 10

Rekursive Funktionen Basisfunktionen

LOOP-Programme: Syntaktische Komponenten

Reduktion / Hilberts 10. Problem

3. RAM als Rechnermodell

12. Woche: Verifizierer, nicht-deterministische Turingmaschine, Klasse NP

Komplexitätsklassen THEORETISCHE INFORMATIK VORGETRAGEN VON: ELIAS DROTLEFF

Berechenbarkeit und Komplexität Vorlesung 3

Anhang zum Lehrbuch über Datenstrukturen und Algorithmen

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Einführung in die Theoretische Informatik

Syntax von LOOP-Programmen

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme

Mächtigkeit von WHILE-Programmen

Berechenbarkeit. Script, Kapitel 2

Theorie der Informatik. Theorie der Informatik P und NP Polynomielle Reduktionen NP-Härte und NP-Vollständigkeit

Berechenbarkeit. Script, Kapitel 2

1 Random Access Maschine

Polynomielle Verifizierer und NP

Theoretische Informatik SS 03 Übung 3

Turing-Maschinen: Ein abstrakes Maschinenmodell

Typen von Programmiersprachen

Isomorphismus. Definition Gruppen-Isomorphismus. Seien (G, +) und (G, ) Gruppen. Die Abbildung f : G G heißt Gruppen-Isomorphismus, falls gilt

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.

3.3 Laufzeit von Programmen

1.5 Turing-Berechenbarkeit

Wir suchen Antworten auf die folgenden Fragen: Was ist Berechenbarkeit? Wie kann man das intuitiv Berechenbare formal fassen?

Einführung in die Theoretische Informatik

1.5 Turing-Berechenbarkeit

Das zehnte Hilbertsche Problem. Seminar Arbeit von Jurij Bernhardt ( )

Härte von Hamilton-Kreis und TSP Überblick über die Komplexitätslandschaft

Theoretische Grundlagen der Informatik

Logik und Beweisbarkeit

Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines

Theoretische Grundlagen der Informatik

Theoretische Informatik 1

Diskrete Mathematik II

LOOP-Programme: Syntaktische Komponenten

Angewandte Mathematik am Rechner 1

Grundlagen: Algorithmen und Datenstrukturen

Berechenbarkeit und Komplexität: Simulationen zwischen TM und RAM und die Church-Turing-These

Algorithmen und Programmierung

Algorithmen & Komplexität

Die Klasse NP und die polynomielle Reduktion

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.

Das Rucksackproblem: schwache NP-Härte und Approximation

5. Algorithmen. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Primitiv rekursive und µ-rekursive Funktionen

Grundlagen der Theoretischen Informatik: Übung 10

Einführung (1/3) Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (1) Vorlesungen zur Komplexitätstheorie.

GTI. Hannes Diener. 18. Juni. ENC B-0123,

1936 von Alan Turing zum theoretischen Studium der Berechenbarkeit eingeführt Besteht aus

Transkript:

Theoretische Informatik 1 Registermaschine David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012

Übersicht Registermaschinen Algorithmusbegriff konkretisiert formale Beschreibung Kostenmaße uniformes Kostenmaße logarithmische Kostenmaße Komplexität Komplexität Effizienz Church-Turing These Church-Turing These Zusammenfassung

Begriff Algorithmus Das Zehnte Hilbert sche Problem 1 (dt. Originaltext) Eine diophantische (=ganzzahlige) Gleichung mit irgendwelchen Unbekannten und mit ganzen rationalen Zahlenkoeffizienten sei vorgelegt. Man soll ein Verfahren angeben, nach welchem sich mittels einer endlichen Anzahl von Operationen entscheiden lässt, ob die Gleichung in ganzen Zahlen lösbar ist. David Hilbert (1912) 2 1 David Hilbert präsentiert 1900 in Paris die 23 offenen Probleme der Mathematik 2 Aus Wikipedia - die freie Enzyklopädie

Begriff Algorithmus Hilbert hat also explizit und in definierter abstrakter Form nach einem Entscheidungsalgorithmus gefragt. Er war davon überzeugt, dass es einen solchen prinzipiell immer gibt. Tatsächlich konnte 1970 bewiesen werden, dass es keinen solchen Algorithmus geben kann.

Algorithmus konkretisiert endliche Anzahl an Operationen endliche, nummerierte Anweisungsliste (Programm) Rechenoperationen: + (Zwischen-)Ergebnisse: r 0, r 1,..., r k,... bedingte Verzweigung (JZERO), Sprung(GOTO) definierter Haltebefehl: END = Registermaschine (RM auch RAM (en.))

Schema einer Registermaschine (RM) 1 Graphik aus: Asteroth, Baier: Theoretische Informatik, Pearson Studium

Befehlssatz einer Registermaschine LOAD x r 0 := v(x) STORE k r k := r 0 STORE k r rk := r 0 ADD x r 0 := r 0 + v(x) SUB x r 0 := max {0, r 0 v(x)} MULT x r 0 := r 0 v(x) DIV x r 0 := r 0 v(x) GOTO k b := k JZERO k if r 0 = 0 then b := k END b := 0 danach: b := b + 1 (außer nach Verzweigungen) Argumentwert x v(x) #k k k r k k r rk Register: i N 0 : r i N 0 b = 0 HALT Falls R terminiert, erwarten wir das Ergebnis der Berechnung im Akkumulator r 0.

Formale Beschreibung Ein RM-Programm R = (π 1,..., π m ) ist eine endliche Sequenz von Anweisungen. Eine Registerbelegung R = {(j 1, r j1 ), (j 2, r j2 ),..., (j l, r jl )} ist eine endliche Menge von Register-Wert-Paaren. Alle Register, die nicht in R aufgezählt sind haben den Wert 0. Die Eingabe für eine RM R soll ein Tupel von k Zahlen x 1,..., x k N 0 sein. Die initiale Registerbelegung lautet: R[x 1,..., x k ] = {(1, x 1 ), (2, x 2 ),..., (k, x k )}

Definition (Konfiguration) Konfigurationen Die Konfiguration einer RM ist ein Tupel κ = (b, R), wobei b N 0 der nächste auszuführende Befehls ist und R N 2 0 die aktuelle Registerbelegung darstellt. Definition (Konfigurationsrelation R ) Sei κ = (b, R) und κ = (b, R ), dann ist κ κ wahr, gdw. R entweder π b ein Sprungbefehl nach b und R = R ist, oder b = b + 1 und R = {(j, x)} (R \ {(i, y) N 2 0 i = j}), wobei j das von π b adressierte Register und x dessen neu berechneter Inhalt ist. Eine terminierte Konfiguration (0, R) hat keine Nachfolgekonfiguration.

Konfigurationen Definition ( n R, R ) κ 0 R κ genau dann wenn κ = κ. κ n+1 R κ gdw κ N 2 N2 0 : κ n R κ κ R κ R ist die reflexive, transitive Hülle von R.

Definition (Berechnete partielle Funktion einer RM) Die durch R berechnete partielle Funktion f R : N k 0 N 0 ist gegeben durch r 0 : R : κ 0 R (0, R ) (0, r 0 ) R f R (x 1,..., x k ) = : R : κ 0 R (0, R ) wobei κ 0 = (1, R[x 1,..., x k ]) die Startkonfiguration darstellt. Definition (RM-Berechenbarkeit) Eine partielle Funktion f : N k 0 N 0 wird RM-berechenbar genannt, wenn es eine Registermaschine R gibt, sodass f = f R

Beispiel: Berechne x y Startkonfiguration: κ 0 = (1, R[x, y]), x, y N 0 Gesucht: RM-Programm R, sodass f R (x, y) = x y Pseudocode für z = x y z = 1; while y > 0 z := z x; y := y 1; wend RM Programm 1 LOAD #1 2 STORE 3 3 LOAD 2 4 JZERO 11 5 SUB #1 6 STORE 2 7 LOAD 3 8 MULT 1 9 STORE 3 10 GOTO 3 11 LOAD 3 12 END

uniforme Kostenmaße Es gilt: (1, R[x 1,..., x k ]) i R (b i, R i ), mit b N = 0 Definition (uniforme Zeitkosten) Die uniformen Zeitkosten der RM R bei Eingabe von x 1,..., x k sind definiert als t u R (x 1,..., x k ) = N Definition (uniforme Platzkosten) Die uniformen Platzkosten der RM R bei Eingabe von x 1,..., x k sind definiert als { sr u 1 0 i N : (x ri,j 0 1,..., x k ) = 0 0 i N : r i,j = 0 j=0

Uniforme Zeitkosten: Beispiel x y tr u (x, y) = 4 + Zeile 1-4 + 8y + Zeile 5-10,3,4; y Durchläufe + 2 Zeile 11,12 = 8y + 6 Uniforme Platzkosten: sr u (x, y) = 4 Entspricht das unserer Vorstellung von intuitiver Komplexität?

Logarithmische Länge L(x) Definition (Logarithmische Länge) Sei x N 0, dann ist die Logarithmische Länge von x die Anzahl der für die binäre Darstellung von x benötigten Bits. { 1 : x = 0 L(x) = log x + 1 : x 1

logarithmische Zeitkosten Definition (logarithmische Zeitkosten) Die logarithmischen Zeitkosten der RM R bei Eingabe von x 1,..., x k sind definiert als t R (x 1,..., x k ) = N 1 i=0 1 π bi =GOTO END L(r i,0 ) π bi =JZERO op L(r i,0 )+L(op) π bi =ADD SUB MULT DIV #op L(r i,0 )+L(op) π bi =STORE op L(r i,0 )+L(op)+L(r i,op ) π bi =ADD SUB MULT DIV op L(r i,0 )+L(op)+L(r i,op ) π bi =STORE op L(r i,0 )+L(op)+L(r i,op )+ +L(r i,ri,op ) π bi =ADD SUB MULT DIV op L(op) π bi =LOAD #op L(op)+L(r i,op ) π bi =LOAD op L(op)+L(r i,op )+L(r i,ri,op ) π bi =LOAD op.

logarithmische Platzkosten Definition (logarithmische Platzkosten) Die logarithmischen Platzkosten der RM R bei Eingabe von x 1,..., x k sind definiert als s R (x 1,..., x k ) = j=0 { max0 i N L(r i,j ) 0 i N : r i,j 0 0 0 i N : r i,j = 0

Beispiel x y, logarithmische Zeitkosten pro Befehl uniform logarithmisch 1 LOAD #1 r 0 1 1 1 2 STORE 3 r 3 r 0 1 3 3 LOAD 2 r 0 r 2 1 2 + L(r 2 ) 4 JZERO 11? r 0 = 0 1 L(r0 ) 5 SUB #1 r 0 r 0 1 1 L(r 0 ) + 1 6 STORE 2 r 2 r 0 1 2 + L(r 0 ) 7 LOAD 3 r 0 r 3 1 2 + L(r 3 ) 8 MULT 1 r 0 r 0 r 1 1 L(r 0 ) + 1 + L(r 1 ) 9 STORE 3 r 3 r 0 1 2 + L(r 0 ) 10 GOTO 3 1 1 11 LOAD 3 r 0 r 3 1 2 + L(r 3 ) 12 END 1 1

Uniforme Zeitkosten: Beispiel x y tr u (x, y) = 4 + Zeile 1-4 + 8y + Zeile 5-10,3,4; y Durchläufe + 2 Zeile 11,12 = 8y + 6 Logarithmische Zeitkosten: ( y i=1 L(i) y(l(y) 1)) t R (x, y) = 9 + 2L(y) + yl(x) Z 1-4,11-12 + 4 y i=1 L(i) + 3L(x) y i=1 i yl(x) + 11y Z 5-10,3-4 3 2 y 2 L(x) + (4y + 2)L(y) + y(7 3 2 L(x)) + 9

Komplexität Definition (Zeitkomplexität, Laufzeit) Die Zeitkomplexität T R (n) einer RM R in Abhängigkeit der logarithmischen Länge n der Eingabe ist definiert als T R (n) = max t R (x 1,..., x k ) (x 1,...,x k ) N k 0 : L(x 1)+ +L(x k ) n Definition (Platzkomplexität, Speicherbedarf) Die Platzkomplexität S R (n) einer RM R in Abhängigkeit der logarithmischen Länge n der Eingabe ist definiert als S R (n) = max s R (x 1,..., x k ) (x 1,...,x k ) N k 0 : L(x 1)+...+L(x k ) n

Beispiel x y, Komplexität T u R Unter dem uniformen Kostenmaß: tr u (x, y) = 8y + 6 L(x) = n x, L(y) = n y <= 8 2 ny + 6 n = n x + n y T u R (n) <= 8 2n 1 + 6 = O(2 n ) Linear im Eingabewert heißt exponentiell in der EingabeLänge!

Beispiel x y, Komplexität T R Unter dem logarithmischen Kostenmaß: t R (x, y) = 3 2 y 2 L(x) + (4y + 2)L(y) + y(7 3 2 L(x)) + 9 3 2 22ny n x + (4 2 ny + 2)n y + 2 ny (6 3 2 n x) + 9 T R (n) 3 2 22n n + (4 2 n + 2)n + 2 n (6 3 2 n) + 9 3 2 n22n + 5 2 n2n + 6 2 n + 2n + 9 = O(n2 2n ) also sogar superexponentielle Laufzeit (/ O(poly(n)))

Effizientere Berechnung von x y Grundidee (Square & Multiply): Reduziere die Anzahl der Schleifendurchläufe Ersetzte z = z x durch z = z z Anzahl der Schleifendurchläufe nur mehr: log y Zeitbedarf unter dem uniformen Kostenmaß: TR u (n) = O(n) Zeitbedarf unter dem logarithmischen Kostenmaß: T R (n) = O(2 n )

Polynomielle Zeitbeschränkung Definition (Polynomielle Zeitbeschränkung) Wir nennen eine RM R polynomiell Zeitbeschränkt, falls die Kostenfunktion T R polynomiell Zeitbeschränkt ist. T R (n) = O (poly(n)) d.h. es gibt ein Polynom p für das gilt T R (n) p(n) n N Ein Problem heißt effizient lösbar, wenn es eine polynomiell Zeitbeschränkte Registermaschine R gibt, die das Problem löst.

uniforme vs. logarithmische Kosten Solange man nur die Frage der polynomiellen Laufzeit beantworten möchte, kann man unter folgenden Voraussetzungen das uniforme Kostenmaß verwenden. TR u (n) = O(poly(n))) max i,j L(r i,j ) = O(poly(n)) Sind beide Voraussetzungen erfüllt, dann gilt T R (n) = O(poly(n))

N 1 tr u (x 1,..., x k ) = 1 Beweisskizze i=0 N 1 t R (x 1,..., x k ) = {1 L(op) L(r i,op ) L(r i,ri,op )} }{{} i=0 bis zu 4 Summanden h(x 1,...,k ) := max L(r i,j ) und H(n) = max h(x 1,...,k ) i,j L(x 1 )+...+L(x k ) n t R (x 1,...,k ) 4 N 1 T R (n) i=0 max L(x 1 )+...+L(x k ) n h(x 1,...,k ) = 4t u R (x 1,...,k) h(x 1,...,k ) (4tR u (x 1,...,k) h(x 1,...,k )) 4TR u (n) H(n) T R (n) = O (TR u (n) H(n))

Beweisskizze T R (n) = O (TR u (n) H(n)) laut Annahme: H(n) = O(poly(n)) TR u (n) = O(poly(n)) T R (n) = O(poly(n))

RM ohne Multiplikation Das RM - Modell kann ohne Verlust der Berechnungsstärke eingeschränkt werden indem (z.b.) auf die Multiplikation verzichtet wird: Eine RM R ohne MULT Simuliert eine RM R mit MULT sodass T R (n) = O(T R (n) 2 ) (ohne Beweis)

Church-Turing These Church-Turing These Die Klasse der intuitiv berechenbaren Funktion ist genau die Klasse der Turing-berechenbaren, d.h. durch ein Turing-vollständiges Prozessmodell (z.b. RM), berechenbaren Funktionen. Erweiterte Church sche These Jedes sinnvolle Prozessmodell kann effizient auf einem Standardmodell (Turing-Maschine, Registermaschine) simuliert werden. Effizient heißt, dass der Zeitverlust maximal polynomiell ist Diese These ist für alle bekannten Prozessmodelle bewiesen.

Zusammenfassung Algorithmusbegriff konkretisieren: Maschinenmodelle Registermaschine: ähnlich zu modernem Computer Grundrechenarten als Basisfunktionen Aufpassen bei Kostenmaßen (uniform/logarithmisch) Polynomiell Zeitbeschränkte RM effiziente Berechenbarkeit Viele unterschiedliche Maschinenmodelle Beliebig austauschbar Church-Turing These