08.05.2009| Optimierung in dynamischer Umgebung| 29
T u ri n g m a s c h in e n
Eine Turingmaschine heißt Zähler, wenn sie, gestartet mit bin(p), p∈ℕ, bin(p-1), bin(p-2),...bin(1),bin(0) hintereinander, immer auf dem gleichen Bandbereich erzeugt und dann stoppt. Sei n = | bin(p) | die Länge der Binärdarstellung von p. Satz: Es gibt einen O(n) platz-und O(2n ) zeitbeschränkten Zähler. Beweis: gemeinsam in Übung08.05.2009| Optimierung in dynamischer Umgebung| 30
T u ri n g m a s c h in e n
Eingabe bin(p) = x n-1...x 0 s = p; while s <> 0 do Berechne bin(s-1) aus bin(s) wie folgt: •gehe zum rechten Rand der Eingabe •solange eine 0 gelesen wird, überschreibe sie mit einer 1 und gehe nach links. Sobald eine 1 gelesen wird ersetze diese durch eine 0. •gehe mit dem Kopf eine Stelle weiter nach links. Falls ein B gelesen wird, gehe nach rechts, ersetze die 0 durch ein B und gehe an den rechten Rand. Sonst gehe, ohne ein Zeichen zu ändern, an den rechten Rand. •s = s-1;08.05.2009| Optimierung in dynamischer Umgebung| 31
T u ri n g m a s c h in e n
Beispiel: Eine 1 von 1011000 subtrahieren B1011000BB1011001B B1011011BB1011111B B1010111BB1010111B B1010111BB1010111B B1010111BB1010111B B1010111B 10 Schritte bzw, wenn a Nullen rechts stehen: 2a+4 Schritte•gehe zum rechten Rand der Eingabe •solange eine 0 gelesen wird, überschreibe sie mit einer 1 und gehe nach links. Sobald eine 1 gelesen wird ersetze diese durch eine 0.
08.05.2009| Optimierung in dynamischer Umgebung| 32
T u ri n g m a s c h in e n
δ(q 0,0)= (q 0,B,R) δ(q 0,B)= (q f,B,N) δ(q 0,1)= (q 1,1,R) δ(q 1,0)= (q 1,0,R) δ(q 1,1)= (q 1,1,R) δ(q 1,B)= (q 2,B,L) δ(q 2,0)= (q 2,1,L) δ(q 2,1)= (q 3,0,L) δ(q 3,B)= (q 0,B,R) δ(q 3,0)= (q 1,0,R) δ(q 3,1)= (q 1,1,R)ersetze führende Nullen duch Bs falls nur Nullen: fertig sonst: gehe an den rechten Rand der Eingabe, und dann vor das letzte B solange eine 0 gelesen wird, wird 1 geschrieben wenn eine 1 gelesen wird, wird 0 geschrieben und ... falls dort ein B steht, prüfe, ob fertig. sonst gehe zum rechten Rand
08.05.2009| Optimierung in dynamischer Umgebung| 33
T u ri n g m a s c h in e n
Beachte: mit n = | bin(p) | gilt: 2n-1 ≤p < 2n , bzw. n-1≤log(p) < n S M(n) = n+2 = O(n) 1x dekrementieren: falls rechts a Nullen stehen, ≤2a+4 Schritte -> p-mal dekrementieren bei Zeit höchstens 2n+4 Also: T M(n) = O(n 2n ) Frage: dauert das wirklich so lange? Antwort: nein, denn die meisten Dekrements sind viel schneller.08.05.2009| Optimierung in dynamischer Umgebung| 34
T u ri n g m a s c h in e n
In 50% aller Fälle (beim runterzählen) steht eine 1 am Schluß. D.h. a=0 In 25% aller Fälle steht eine 10 am Schluß. D.h. a=1 In 12,5% aller Fälle steht eine 100 am Schluß. D.h. a=2 In 6,25% aller Fälle steht eine 1000 am Schluß. D.h. a=3 ... Im Durchschnitt sind das nicht mehr als ∑ a≥0(2a+4)*2-a-1 = ∑ a≥02a*2-a-1 + 4*2-a-1 viele Schritte. = ∑ a≥0a*2-a-1 + ∑ a≥02-a+1 = 2 + 4 Also ein Dekrement in durchschnittlich 6 Schritten. Laufzeit O(2n )08.05.2009| Optimierung in dynamischer Umgebung| 35
T u ri n g m a s c h in e n
Def.: EineSpracheL heißt entscheidbar, wenn es eine Turingmaschine gibt, die zu jeder Eingabe w∈∑* nach endlicher Zeit anhält, und genau dann in einem akzeptierenden Zustand endet, wenn w∈L gilt. EineSpracheL heißt semi-entscheidbar, wenn es eine Turingmaschine gibt, die zu jeder Eingabe w∈Lnach endlicher Zeit in einem akzeptierenden Endzustand anhält. EineFunktionf heißt berechenbar, wenn es eine Turingmaschine gibt, die für alle Eingaben x, die aus dem Definitionsbereich von f stammen nach endlich vielen Schritten anhält und f(x) auf das Band schreibt.08.05.2009| Optimierung in dynamischer Umgebung| 36
U n e n d s c h e id b a rk e it
Gibt es unendscheidbare Sprachen? Ja, denn es gibt nur abzählbar unendlich viele Turingmaschinen, aber überabzählbar viele Sprachen L⊆{0,1}* Begründung mit Hilfe des Cantor‘schen Diagonalisierungsverfahrens: M 1M 2M 3M 4... 0n j j n 1n n n j 01 j j j n ... x i Eintrag (M i,x k)=„j“bedeutet, dass x kaus der Sprache L(M i) ist. Sei nun L die Sprache, die genau aus den Wörtern besteht, bei denen beim Eintrag (M i,x i) „n“steht. L gehört zu keiner der aufgeführten TMs.08.05.2009| Optimierung in dynamischer Umgebung| 37
B e re c h e n b a rk e it
Gibt es Funktionen, die nicht von einer Turingmaschine berechnetwerden können? Ja. Die Busy-Beaver Funktion∑(n) ist definiert als die Anzahl der Einsen, die eine Champion-Turingmaschine auf ein zu Beginn leeres Band ausgibt, wobei n die Anzahl der erlaubten Zustände darstellt. Die TM muss irgendwann halten. Wir gehen weiterhin davon aus, dass diese Einsen alle zusammenhängend sein müssen. Beweis:08.05.2009| Optimierung in dynamischer Umgebung| 38
B e re c h e n b a rk e it
Annahme:Die Busy-Beaver Funktion∑(n) ist berechnbar, und EVAL∑ ist die TM, die∑(n) berechnet. Bei einer Eingabe von n Einsen schreibt sie∑(n) Einsen auf das Band und hält dann an. Im folgenden definieren wir 4 Hilfs-TMs. Sei INCeine TM, die bis zum ersten B nach rechts läuft, dort eine 1 schreibt und dann hält. DOUBLEsein eine andere TM, die die Anzahl Einsen, die sich auf dem Band befinden verdoppelt. DOUBLEberechnet also zu Eingabe n n+n. Wir bilden nun eine neue TM: DOUBLE | EVAL∑| INC Die Anzahl der Zustände dieser Maschine sei n 008.05.2009| Optimierung in dynamischer Umgebung| 39
B e re c h e n b a rk e it
Sei CREATE_n 0eine weitere TM, welche n 0Einsen auf ein leeres Band schreibt. Diese TM gibt es, trivialerweise eine mit n 0vielen Zuständen. Sei nun N := n 0+ n 0 Das Finale:Sei BAD∑folgende TM: CREATE_n 0| DOUBLE | EVAL∑(N)| INC n 0n 0 Diese Maschine hat N Zustände. Sie startet auf leerem Band, schreibt n 0 Einsen, verdoppelt diese, berechnet ∑(N)und schreibt eine weitere 1. BAD∑hat also eine 1 mehr als∑(N)geschrieben! Es folgt, dass die Annahme falsch war.08.05.2009| Optimierung in dynamischer Umgebung| 40
B u s y B e a v e r
Interessanterweise sind einige Busy-Beaverwerte bekannt. Z.B. für TMs mit 2 Symbolen : #Zustände Anzahl Einsen des Siegers 11 24 36 413 5>= 4098 6>= 95.524.07908.05.2009| Optimierung in dynamischer Umgebung| 41
S c h ö n h e it i n d e r M a th e m a ti k :
(nach Prof. Hesse, Universität Stuttgart Fakultät für Mathematik und Physik, Dresden 2008)B e is p ie l: T u rn ie rp ro b le m T e n n is tu rn ie r m it 1 2 8 S p ie le rn n a c h K .O .- S y s te m . W ie v ie le B e g e g n u n g e n w e rd e n a u s g e tr a g e n ?
Präzision Klarheit Eleganz
B e is p ie l: T u rn ie rp ro b le m T e n n is tu rn ie r m it 1 2 8 S p ie le rn n a c h K .O .- S y s te m . W ie v ie le B e g e g n u n g e n w e rd e n a u s g e tr a g e n ?
08.05.2009| Optimierung in dynamischer Umgebung| 42
T u rn ie rv e rl a u f B e is p ie l: T u rn ie rp ro b le m T e n n is tu rn ie r m it 1 2 8 S p ie le rn n a c h K .O .- S y s te m . W ie v ie le B e g e g n u n g e n w e rd e n a u s g e tr a g e n ?
08.05.2009| Optimierung in dynamischer Umgebung| 43
Turnierproblem: Lösung 1 1. Runde: 128 Spieler, 64 Paare, 64Begegnungen 2. Runde: 64 Spieler, 32 Paare, 32Begegnungen 3. Runde: 32 Spieler, 16 Paare, 16Begegnungen 4. Runde: 16 Spieler, 8 Paare, 8Begegnungen 5. Runde: 8 Spieler, 4 Paare, 4Begegnungen 6. Runde: 4 Spieler, 2 Paare, 2Begegnungen 7. Runde: 2 Spieler, 1 Paar, 1Begegnung Insgesamt:1+2+4+8+16+32+64=127Begegnungen
08.05.2009| Optimierung in dynamischer Umgebung| 44
Turnierproblem: Lösung 2 Zahl der Spieler: Zweierpotenz, 128 = 27 Begegnungen je Runde: fortgesetzte Halbierung Begegnungen gesamt = Summe von Zweierpotenzen = 1 + 2 + 22 + ... + 26 = 27 -1 =127
08.05.2009| Optimierung in dynamischer Umgebung| 45
Allgemeiner
F ü r 2
nS p ie le r, 2
n-1E rs tr u n d e n -B e g e g n u n g e n 2
n-2Z w e it ru n d e n -B e g e g n u n g e n , e tc . 1 + 2 + 2
2+ . .. + 2
n-1= ( 1 + 2 + 2
2+ . .. + . .. 2
n-1)( 2 - 1 ) = 2 + 2
2+ . .. + 2
n-1+ 2
n- 1 - 2 - 2
2- .. . - 2
n-1= 2
n- 1 F o rt s c h ri tt : T ie fe , V e ra llg e m e in e ru n g , V e rs tä n d n is
08.05.2009| Optimierung in dynamischer Umgebung| 46
T u rn ie rp ro b le m : L ö s u n g 3 a ) J e d e B e g e g n u n g h a t e in e n S ie g e r u n d e in e n V e rl ie re r. b ) J e d e r S p ie le r s p ie lt s o l a n g e , b is e r v e rl ie rt . A ls o : e s g ib t g e n a u s o v ie le B e g e g n u n g e n , w ie e s V e rl ie re r g ib t. c ) J e d e r S p ie le r a u ß e r d e m C h a m p io n i s t e in V e rl ie re r. A ls o : A n z a h l B e g e g n u n g e n = A n z a h l V e rl ie re r = A n z a h l S p ie le r – 1 . F o rt s c h ri tt : V e re in fa c h u n g , T ie fe , V e ra llg e m e in e ru n g , Ä s th e ti k
08.05.2009| Optimierung in dynamischer Umgebung| 47
Tennisturnier mit 11-er Feld Gewinner
ABDEFGHIJKC DGHKBC KGC KC K
1 1 S p ie le r, 1 0 B e g e g n u n g e n
08.05.2009| Optimierung in dynamischer Umgebung| 48
P ro b le m e d e s t ä g li c h e n L e b e n s
Was ist schwieriger? –Kopfrechnen –Kreuzworträtsel –Schach –Sokoban –Puzzle??
Im folgenden sind die Probleme lösbar. Die Frage ist nur in welcher Zeit und mit wieviel Speicherplatz.
08.05.2009| Optimierung in dynamischer Umgebung| 49
P ro b le m e u n d P ro b le m b e s c h re ib u n g e n , W d h
Eine Sprache L⊆Σ* muss nun irgendwie beschrieben werden. –z.B. durch einenregulären Ausdruck: (0*10*) ∅ist ein regulärer Ausdruck. εist ein regulärer Ausdruck. ∀a i∈Σist a iein regulärer Ausdruck. Sindxundyreguläre Ausdrücke, so auch x∪y, (xy) undx*. Es gibt keine weiteren regulären Ausdrücke. –z.B. durch eineProblembeschreibung: Definition: EinEntscheidungsproblemist ein input-output Tupelmit geg.: Kodierung eines Inputs einer Instanz, mittels Alphabet ∑ ges.: ja/nein Die Teilmenge aller Inputs, für die die Antwort “ja” ist, ist offenbar eine Sprache08.05.2009| Optimierung in dynamischer Umgebung| 50
E in Z e it -K o m p le x it ä ts m a ß
Definition: Komplexität eines Algorithmus –Sei A ein deterministischer (RAM-)Algorithmus, der auf allen Eingaben hält. –DieLaufzeit (Zeitkomplexität)von A ist eine Funktion f: N→N, wobei f(n) die maximale Anzahl von Schritten von A beschreibt auf einer Eingabe der Länge n. Linear-Zeit-Algorithmus: f(n) ≤c n für eine Konstante c Polynom-Zeit-Algorithmus: f(n) ≤c nk für Konstanten c und k Definition: Komplexität eines Problems –Die Zeit-(Platz-) Komplexität eines Problems p ist die Laufzeit des schnellsten (am wenigsten Speicherplatz benötigenden) Algorithmus, der Problem p löst. –Ein Problem p ist “in Polynomzeit lösbar”, wenn es Algorithmus A, Polynom Πund n 0∈ℕgibt, so dass für alle n > n 0gilt : f(n) <=Π(n)08.05.2009| Optimierung in dynamischer Umgebung| 51
P , N P , P S P A C E
P:Klasse aller Probleme, die von einer deterministischen RAMin Polynomzeit gelöst werden können NP:Klasse aller Probleme, die von einer nichtdeterministischen TMin Polynomzeit gelöst werden können. PSPACE :Klasse aller Probleme, die von einer deterministischen RAM mit polynomiellviel Platz gelöst werden können Man weißnur, dass P≠EXPTIME und EXPTIME = Allgemein wird aber vermutet, dass alle Inklusionen echt sind, d.h.08.05.2009| Optimierung in dynamischer Umgebung| 52
N ic h td e te rm in is ti s c h e T u ri n g m a s c h in e n
Eine nichtdeterministische Turingmaschine (NTM) ist definiert, wie eine deterministische Turingmaschine, nur dassδeine Übergangsrelation und keine Funktion ist. δ: Q×Γ→2Q×Γ×{R,N,L} ist die Übergangsrelation. Bsp.: Wenn die TM in Zustand q ist, und ein a liest, und δ(q,a) = {(q‘,b,R), (q‘‘, a, L)} ist, dann ist die nichtdeterministische TM im nächsten Schritt entweder in Zustand q‘, nachdem sie ein b geschrieben hat, oder sie ist in Zustand q‘‘nachdem sie ein a schrieb. Die Laufzeit einer NTM ist definiert als die Länge des kürzesten Berechnungsweges, der in einem akzeptierenden Endzustand endet.08.05.2009| Optimierung in dynamischer Umgebung| 53
N ic h td e te rm in is ti s c h e T u ri n g m a s c h in e n u n d V e ri fi z ie re r
Def.Es sei L eine Sprache. Ein Verifizierer für L ist ein deterministischer Algorithmus A, mit L = {w | es gibt ein c mit A akzeptiert wc} Der Zeitaufwand für einen Verifizierer wird abhängig von der Länge von w gemessen. L ist polynomiell prüfbar, wenn es einen Verifizierer mit polynomiellem Zeitaufwand gibt. Satz:NP ist die Menge aller Probleme, für die es einen Verifzierer mit polynomiellem Zeitaufwand gibt. (ohne Beweis)08.05.2009| Optimierung in dynamischer Umgebung| 54
B e is p ie le
•Definition: HAMPATH –Das Hamiltonsche Pfadproblem •Geg.: –ein gerichteter Graph –Zwei Knoten s,t •Ges.: existiert ein Hamitonscher Pfad von s nach t –d.h. ein gerichteter Pfad, der alle Knoten besucht, aber keine Kante zweimal benutzt •Algorithmus für Hamiltonscher Pfad: –Rate eine Permutation (s,v 1,v 2,...,v n-2,t) –Teste, ob Permutation ein Pfad ist •falls ja, akzeptiere •falls nein, verwerfe •Also: HamPath∈∈∈∈NP08.05.2009| Optimierung in dynamischer Umgebung| 55
D a s S A T P ro b le m
Eine Boolesche Funktion f(x 1,x 2,..,x n) ist erfüllbar, wenn es eine Wertebelegung für x 1,x 2,..,x ngibt, so dass f(x 1,x 2,..,x n) = 1 (x∨y) ∧(z∨¬x∨¬y) ∧(x∨¬z) ist erfüllbar, da die Belegung x = 1, y = 0, z = 0 (1∨0) ∧(0∨0∨1) ∧(1∨1) = 1∧1∧1 = 1 liefert. Definition (SAT Problem, die Mutter aller NPc Probleme) –Gegeben: Boolesche Funktionφ –Gesucht: Gibt es x 1,x 2,..,x nso dassφ(x 1,x 2,..,x n) = 1 SAT ist in NP. Man vermutet, dass SAT nicht in P ist.08.05.2009| Optimierung in dynamischer Umgebung| 56
D a s Q S A T P ro b le m
Eine quantifizierte Boolesche Formel (QBF) besteht aus –Einer Folge von Quantoren∃x, ∀y mit daran gebundenen Variablen; obdA seien genau alle x imit ungeradem i existenzquantifiziert –Einer Booelschen Funktion F(x 1,x 2,...,x m) –Jede Variable der Funktion ist genau einmal an einem Quantor gebunden Die quantifizierte Boolesche Formel ist erfüllbar falls –Im Falle eines Existenzquantors: ∃x F(x) ⇔F(0) ∨F(1) –Im Falle eines Allquantors: ∀x F(x) ⇔F(0) ∧F(1) Definition (QSAT Problem, die Mutter aller PSPACEc Probleme) –Gegeben: Quantifizierte Boolesche Funktionφ –Frage: Gibt es x 1, so dass es für alle x 2ein x 3gibt, so dass ... so dass φ(x 1,x 2,..,x n) = 1 QSAT ist in PSPACE. Man vermutet, dass QSAT nicht in NP ist.08.05.2009| Optimierung in dynamischer Umgebung| 57
B e is p ie le :
∃x∀y (x∧y) ∨(¬x∧¬y) = (∀y (0∧y) ∨(¬0∧¬y) ) ∨(∀y (1∧y) ∨(¬1∧¬y) ) = (∀y: ¬y)∨(∀y: y) = (¬0∧¬1)∨(0∧1) = 0∨0 = 0 ∀y∃x (x∧y) ∨(¬x∧¬y) = (∃x: (x∧0) ∨(¬x∧¬0))∧(∃x: (x∧1) ∨(¬x∧¬1)) = (∃x: : ¬x)∧(∃x: x) = (¬0∨¬1)∧(0∨1) = 1∧1 = 108.05.2009| Optimierung in dynamischer Umgebung| 58
•Angabe eines Algorithmus für Problem •Reduktionstechniken u.a. Definition:Seien P,Q Probleme. Sei L P(L Q) die Menge der Instanzen des Problems P (Q), für die die Antwort „ja“ist. P heißt auf Qpolynomiell reduzierbar(P≤ pQ), wenn es eine von einem deterministischen Algorithmus in Polynomzeit berechenbare Funktion f: ∑*→∑*gibt, so dass x∈L P⇔f(x) ∈L Q Bsp.: P-InstanzenQ-Instanzen ja neinnein
ja