Theoretische Informatik 2
|
|
|
- Catharina Gerber
- vor 10 Jahren
- Abrufe
Transkript
1 Theoretische Informatik 2 Jürgen Koslowski Institut für Theoretische Informatik Technische Universität Braunschweig SS koslowj/theo2 Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
2 Übersicht: Überblick I 4 Hintergrund und Motivation Ziele der Vorlesungen Theoretische Informatik 2 Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
3 Übersicht: Turingmaschinen I 5 Turingmaschinen Vorüberlegung Turingmaschinen formal Darstellung von Turingmaschinen Entscheidbare Sprachen/Probleme Die Chomsky-Hierarchie formaler Sprachen Abschlußeigenschaften (semi-)entscheidbarer Sprachen Turing-berechenbare partielle Funktionen Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
4 Übersicht: Die Church-Turing These I 6 Church-Turing-These Alternativen zu Turingmaschinen Registermaschinen (RAM) Befehlssatz einer RAM Simulation einer dtm durch eine RAM RAM-Berechenbarkeit 6.2 Rekursive Funktionen Eigenschaften von PR Der unbeschränkte µ- Operator Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
5 Übersicht: Unentscheidbare Probleme I 7 Unentscheidbare Probleme 7.0 Problemstellung 7.1 Universelle Turingmaschine 7.2 Das Halteproblem 7.3 Weitere unentscheidbare Probleme Das Akzeptanzproblem Akzeptanz des leeren Worts Terminierung eines Algorithmus 7.4 Satz von Rice Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
6 Übersicht: Komplexitätstheorie I 8 Komplexität von Algorithmen 8.0 Übersicht Wiederholung: Groß-O-Notation Beispiele effizienter Algorithmen (für Graphen) Weitere Vorüberlegungen 8.2 Die Komplexitätsklassen P und NP 8.3 Die Klasse FP von Berechnungsproblemen 8.4 FP- Reduzierbarkeit Sat P 8.5 Robustheit der Klassen P und NP 8.6 Einige Probleme aus NP 8.7 NP- Vollständigkeit und Cooke scher Satz 8.8 Weitere NP- vollständige Probleme 8.9 Die Klasse conp 8.10 Komplexität von Optimierungsproblemen 8.11 Approximation von Optimierungsproblemen Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
7 Übersicht: Komplexitätstheorie II 8.12 Raumkomplexität Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
8 Hintergrund und Motivation Ziele der Vorlesungen Theoretische Informatik 2 Kapitel 4 Überblick Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
9 Hintergrund und Motivation Ziele der Vorlesungen Theoretische Informatik 2 In Fortsetzung der VL Theoretische Informatik 1 führen wir zunächst Turingmaschinen als neues Maschinenmodell ein; ihre Fähigkeiten gehen über die der Kellerautomaten hinaus (obwohl sie historisch älter sind). Sie werden sich als das mächtigste (klassische) Maschinenmodell erweisen, ebenso mächtig wie alle heute gebräuchlichen Computer. (Um weitergehende Fähigkeiten zu realisieren, braucht man einen Quantencomputer.) Die Klasse der von TM n akzeptierten semi-entscheidbaren Sprachen hat die kanonische Unterklasse der entscheidbaren Sprachen; diese werden von TM n akzeptiert, die bei jeder Eingabe halten. Das wirft die Frage nach der Entscheidbarkeit bzw. Nichtentscheidbarkeit formaler Sprachen auf. Hier tritt schon das Verfahren der Reduktion von Problemen bzw. Sprachen auf, das auch in der Komplexitätstheorie gebraucht wird. TM n lassen sich auch zur Lösung von Berechnungsproblemen (kurz B-Problemen) verwenden. Das liefert eine Theorie der Turingberechenbaren (partiellen) Funktionen der Form N n f N, n N. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
10 Hintergrund und Motivation Ziele der Vorlesungen Theoretische Informatik 2 Alternativ kann man ausgehend von einfachen Grundfunktionen N n N mittels simpler Konstruktionsverfahren neue partielle Funktionen N n N generieren. Das liefert erst die Klasse der primitiv rekursiven Funktionen, und anschließend die Klasse der µ- rekursiven partiellen Funktionen. Letztere stimmt mit der obigen Klasse der Turing-brechenbaren partiellen Funktionen überein. In der Komplexitätstheorie geht es darum, wie effizient E-Probleme gelöst werden können. Entscheidendes Kriterium ist, ob mit Hilfe von dtm n bzw. ntm n Laufzeiten realisiert werden können, die polynomial in der Größe der Eingabe sind. Das liefert die Komplexitätsklassen P und NP. B-Probleme, deren zugrundeliegendes E-Problem nicht effizient lösbar ist, sind selbst nicht effizient lösbar. In solchen Fällen kann man nur versuchen, möglichst gute Lösungen zu approximieren. Das führt zum Begriff des Optimierungsproblems. Diese lassen sich nach Approximationsgüte klassifizieren. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
11 Turingmaschinen Kapitel 5 Turingmaschinen Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
12 Vorüberlegung Turingmaschinen Vorüberlegung Idee: der Speicher eines Kellerautomaten, der nur eingeschränkt zugängliche Keller, wird durch ein frei zugängliches, beidseitig potentiell unendliches Turingband aus sog. Feldern ersetzt. Die darin enthaltenen einzelnen Symbole aus einem Bandalphabet werden von einem Schreib- Lesekopf gescannt und ggf. überschrieben; dieser kann sich dann auf ein benachbartes Feld bewegen: Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
13 Turingmaschinen Vorüberlegung Der Schreib-Lesekopf kann verschiedene Zustände einnehmen; dabei werden wie gewöhnlich Anfangs- und Endzustände unterschieden. In jedem Schritt darf der Schreib-Lesekopf den Zustand ändern sowie ein Symbol schreiben und/oder (je nach Vereinbarung) sich um maximal ein Feld zur Seite bewegen. Zu jedem Zeitpunkt darf das Band nur endlich viele relevante Symbole enthalten; alle übrigen Felder müssen leer sein. Um dies anzuzeigen, wird ein spezielles Bandsymbol # eingeführt. Beim Berechnungsstart soll die Eingabe w Σ zusammenhängend auf dem Band stehen! Dies ist ein konzeptioneller Unterschied zu Kellerautomaten und erst recht zu endlichen Automaten, bei denen die Eingabe immer extern vorlag und in nicht näher spezifizierter Weise von links nach rechts gelesen wurde (Stichwort: Online Algorithmus ). Bei Wikipedia findet man folgende Visualisierungen von Turingmaschinen. In der ZEIT findet sich auch eine nette Beschreibung. Eine Suchanfrage nach Turing Maschine und LEGO liefert ebenfalls interessante Ergebnisse. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
14 Turingmaschinen formal Turingmaschinen Vorüberlegung Wir werden verschiedene Varianten von Turingmaschinen kennenlernen, die sich letztendlich alle gegenseitig simulieren können. Zunächst beginnen wir mit zwei Basismodellen, die sich hinsichtlich ihrer Geschwindigkeit unterscheiden: in der langsamen Variante kann der Kopf pro Schritt nur entweder schreiben oder sich bewegen, während in der schnellen Variante beides in einem Schritt erfolgen kann. Ansonsten sind beide Varianten äquivalent. Weiterhin kann man die Form des Bandes ändern (einseitig unendlich statt beidseitig unendlich), ein mehrspuriges Band verwenden, oder gar die Anzahl der Bänder und Köpfe simultan vergrößern. Insbesondere TMs mit mehreren Bändern und Köpfen erlauben eine recht einfachere Umsetzung konkreter Algorithmen. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
15 Turingmaschinen Vorüberlegung Definition (langsame/schnelle TM) Eine Turing-Maschine (TM) M = Q, B, Σ, δ, q 0, q F über dem Alphabet Σ besteht aus einer Menge Q von Zuständen (des SL-Kopfes) mit ausgezeichneten Anfangs- und Endzuständen q 0, q F Q ; einem endlichen Bandalphabet B Σ + {#} mit Blankzeichen # ; einer endlichen Relation { Q B δ (B + {L, R}) für eine langsame TM Q B {N, R, L} für eine schnelle TM M heißt deterministisch (dtm), falls δ eine partielle Funktion ist. In älteren Skripten tragen solche TMs den Zusatz mit erweitertem Bandalphabet, da man ursprünglich die Bedingung B = Σ + {#} verlangt hatte. Technisch mag das ausreichen, in der Praxis ist es aber ein sehr ungeschickte Forderung, auf der wir hier nicht bestehen. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
16 Turingmaschinen Vorüberlegung Interpretation von δ Abhängig vom aktuellen Zustand und vom aktuellen Bandsymbol kann sich der Zustand ändern, und im langsamen Fall Q B δ Q (B + {L, R}) kann entweder das Bandsymbol überschrieben, oder der Kopf eine Position zur Seite bewegt werden; im schnellen Fall Q B δ Q B {N, L, R} können das Überschreiben und die Bewegung im selben Schritt stattfinden; N ermöglicht das Verharren des Kopfes auf demselben Feld. Offenbar kann man jeden Schritt einer schnellen Maschine mit höchstens zwei Schritten einer langsamen Maschine simulieren. Umgekehrt ist die Simulation noch einfacher (vergl. HA). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
17 Bemerkungen Turingmaschinen Vorüberlegung Unsere TMs sind á priori nichtdeterministisch, haben aber nur je einen Anfangs- und Endzustand. Der Übergang von TMs mit einer Menge I Q von Anfangszuständen zu solchen mit einem Anfangsstand q 0 ist simpel, erzeugt aber Nichtdeterminismus. Da wir später die Äquivalenz deterministischer und nichtdeterministischer TMs zeigen, können wir uns gleich auf einzelne Anfangszustände beschränken. Eine Menge an Endzuständen böte auch keinen echten Vorteil. Neben Σ muß das Bandalphabet nur # enthalten. Weitere Hilfssymbole, wie z.b. Randbegrenzer, Trennsymbole oder spezielle Löschsymbole sind optional, aber nützlich. Ohne solche auszukommen (älteres Skript) erfordert einemtaschenspielertrick (HA), daher erlauben wir hier solche Symbole ohne Einschränkung. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
18 Turingmaschinen Vergleich mit Kellerautomaten Vorüberlegung Bei EAs und KAs sorgt die endliche Zahl der Übergänge dafür, dass nur endlich viele Symbole des Alphabets eine Rolle spielen; für klassische TMs ist Σ als Teilmenge von B automatisch endlich. Um klassische 1-Band TMs konzeptionell kompatibel mit KAs zu machen, benötigen sie einen Präprozessor mit einem neuen Anfangszustand q r und Übergängen q r, # q r, a, R, a Σ, sowie a ε q r, # q 0, #, L (im schnellen Fall). Determinismus bleibt nur dann erhalten, wenn der spontane Übergang von q r nach q 0 erst nach Abarbeitung der Eingabe erfolgen kann; und das erfordert den Supply-driven Modus! So kommt die gesamte Eingabe von links nach rechts auf das Band, bevor in q 0 die eigentliche Berechung aus spontanen Übergängen am rechten Rand beginnt. Die Endlichkeit von B und Σ wäre nun unerheblich, solange nur die Anzahl der Übergänge endlich ist. Die Forderung Σ B {#} könnte evtl. auch entfallen. Dies wird hier aber nicht weiterverfolgt. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
19 Konfigurationen Turingmaschinen Vorüberlegung Eine TM-Konfiguration soll den aktuellen Zustand, den nicht- trivialen Bandinhalt und die Position des Kopfes bestimmen. Die Konvention, Eingaben zunächst zu internalisieren, erübrigt die Buchführung über den noch zu bearbeitenden Teil der Eingabe. Definition (vorläufig) Eine Konfiguration einer TM versteht man ein Paar q, ω Q B +, wobei genau ein Symbol des nichttrivialen Bandinhalts ω durch Unterstreichung markiert ist, was die Kopfposition festlegt. ω soll den Bereich des Bandes minimal überdecken, der die Kopfposition und alle von # verschiedenen Symbole umfaßt, darf also keine führenden oder abschließenden Blankzeichen # haben, sofern es sich nicht um den Inhalt der Kopfposition handelt. Genauer: ω ((B {#}) B + {ε}) B (B (B {#}) + {ε})) Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
20 Turingmaschinen Vorüberlegung Definition (Fortsetzung) Konfigurationen der Form q 0, s 0... s n 2 s n 1 mit n > 0 bzw. q 0, # heißen Initialkonfigurationen. Ist für q, ω l sω r die Menge q, s δ leer, sprechen wir von einer Haltekonfiguration. Im Fall von q, s δ können sich bei einer Folgekonfiguration ( ) Zustand, Inhalt des aktuellen Feldes und neue Kopfposition gemäß den Elementen von q, s δ ändern. Unter einer Berechnung mit Eingabe w Σ versteht man eine endliche oder unendliche Konfigurationenfolge K i K i+1, wobei K 0 eine Initialkonfiguration mit Eingabe w, und im endlichen Fall die letzte Konfiguration eine Haltekonfiguration ist. Eine Berechnung akzeptiert ihre Eingabe genau dann, wenn sie in einer Haltekonfiguration mit Zustand q F endet. Die spezielle Form der Initialkonfiguration resultiert aus einem Linksschritt nach Übertragung der Eingabe auf des Band von links nach rechts. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
21 Turingmaschinen Darstellung von Turingmaschinen Vorüberlegung Wir entwickeln die graphische Darstellung von Kellerautomaten fort. Falls b B so schreiben wir q b ϕ p anstelle von q, b, p, ϕ δ wobei ϕ B + {L, R} oder ϕ B {N, L, R} gilt. Der (äußere) Anfangsund Endzustand wird markiert wie zuvor. Die Einschränkungen bzgl. der Komponierbarkeit solcher Übergänge bei Kellerautomaten gilt sinngemäß auch für Turingmaschinen. Satz Jede Sprache, die von einer langsamen TM akzeptiert wird, wird auch von einer schnellen TM akzeptiert, und umgekehrt. Beweis. H.A. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
22 Turingmaschinen Vorüberlegung Beispiel ( L = { a n b n c n : n N } mittels schneller TM) Setze B = {a, b, c, B, #}, wobei B dazu dient anzuzeigen, dass b bearbeitet wurde. Start mit q c am rechten Rand, auf # bei leerer Eingabe. Idee: Pro Durchlauf vom rechten zum linken Rand das erste c von rechts löschen, das erste b von rechts mit B überschreiben und das letzte a von rechts löschen; dann erfolgt ein entsprechender Durchlauf vom linken zum rechten Rand. Akzeptanz, wenn B n übrigbleibt. Beachte die Symmetrie! a a, L, B B, L, b b, L q b B, L q b B B, L, c c, L q a1 # #, R c #, L q c1 B B, L a #, R # #, N q F # #, N c #, L B B, R q a2 a #, R # #, L q c2 a a, R, B B, R q b b B, R q b b, R, B B, R, c c, R Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
23 Turingmaschinen Vorüberlegung Beispiel ( L = { a n b n c n : n N } mittels langsamer TM) Die obige Maschine kann mechanisch(!) durch eine langsame Maschine simuliert werden (vergl. HA), was an 6 Stellen je einen weiteren Zustand erfordert (farbig markiert): a, B, b L q b B, L q b B, c L q a1 # R c #, L q c1 B L a #, R # # q F # # c #, L B R q a2 a #, R # L q c2 a, B R q b q b B, R b, B, c R In den blau markierten Fällen läßt sich jeweils der Hilfszustand mit dem Zielzustand verschmelzen, in den rot markierten Fällen ist das nicht möglich. Das führt zu umseitiger TM mit zwei zusätzlichen Zuständen: Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
24 Turingmaschinen Vorüberlegung Beispiel ( L = { a n b n c n : n N } mittels langsamer TM, Fortsetzung) a, B, b L #, B, c L a # q a0 q a1 # R q b B q b c # q c0 B L # R # # q F # # # L B R q a2 a # q c1 c # q b b B q # L q c2 #, a, B R b, B, c R Eine solche langsame TM direkt zu entwerfen, wird i.a. schwieriger sein, als den Umweg über die schnelle TM zu gehen. Noch aufwändiger wird die Konstruktion, wenn das Bandalphabet auf Σ + {#} beschränkt ist. In diesem Fall wäre auf das Löschsymbol B zu verzichten (siehe HA). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
25 Turingmaschinen Vorüberlegung Definition Sprachen, die von einer TM akzeptiert werden, heißen semi-entscheidbar Andere Varianten von TMs sind gleich mächtig zu den bisherigen TMs: Definition Eine Mehr-Spur Turingmaschine mit Bandalphabet B Σ + {#} entspricht einer 1-Band TM mit Bandalphabet Form B := B n. Als Blanksymbol dieser 1-Band Maschine dient das n-tupel #,..., #. Zur Interpretation von Wörtern in Σ als Eingaben für die Mehr-Spur Maschine dient die Einbettung B h B n, die alle Komponenten mit positivem Index auf # setzt; d.h., Eingaben aus Σ stehen auf Spur 0. Der Kopf ließt/schreibt immer in allen Spuren gleichzeitig, und die Bewegung erfolgt auch in allen Spuren synchron in derselben Richtung. Satz Von Mehr-Spur TMs akzeptierte Sprachen sind semi-entscheidbar. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
26 Turingmaschinen Vorüberlegung Beweis. Das Alphabet Σ := Σ {#} n 1 für die 1-Band Interpretation der Maschine ist natürlich zu Σ isomorph (verwende h ). Die Einschränkung auf Σ- Eingaben in Spur 0 läßt sich durch einen Präprozessor realisieren. Definition Für eine n-band TM M = Q, B, n, Σ, δ, q 0, q F hat δ die Form Q B n δ Q (B+{L, R}) n bzw. Q B n δ Q (B {L, R, N}) n Der Konfigurationsbegriff ist entsprechend zu erweitern. Berechnungen starten mit der Eingabe auf Band 0. Die graphische Darstellung verwendet Label der Form β A 0 ; A 1 ;... ; A n 1 mit β B n und n Aktionen A i. Wesentlich ist, dass die n Köpfe unabhängig auf den n Bändern agieren können. Hier zeigt sich der Nutzen von N bei schnellen Maschinen! Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
27 Turingmaschinen Vorüberlegung Satz Von n-band TMs akzeptierte Sprachen sind semi-entscheidbar. Beweis (Idee) Simulation durch 2n- Spur TM, bei deren geraden Spuren den Bändern entsprechen, und auf deren ungeraden Spuren über die jeweiligen Kopfpositionen buchgeführt wird, durch Markierungen in der relevanten Spalte. Weiterhin ist es möglich, das (potentiell beideitig unendliche) Turingband durch einen 2- oder höherdimensionalen Speicher zu ersetzen, der ebenfalls in Zellen aufgeteilt ist. Entsprechend wäre dann auch die Beweglichkeit des Kopfes zu erhöhen, im 2-dimensionalen Fall nicht nur nach links bzw. rechts, sondern auch nach unten bzw. oben. Der Beweis, dass auch diese Verallgemeinerung die Leistungsfähigkeit des Maschinenmodells nicht vergrößert, ist den Lesern überlassen. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
28 Turingmaschinen Vorüberlegung Beispiel Die Sprache L = { w {0, 1} : w 0 = w 2 1 } ist semi-entscheidbar: Idee: Wir verwenden eine 3-Band dtm, bei der die Nullen und Einsen der Eingabe auf B 0 zunächst auf die Bänder B 1 bzw. B 2 verschoben werden. Dort finden alle weiteren Berechnungen statt. Wegen (n 1) 2 = n 2 2n + 1 = n 2 2(n 1) 1 können wir dann ggf. in mehreren Durchläufen auf diesen Bändern zunächst je eine Null und eine Eins, und dann für jede verbliebene Eins weitere zwei Nullen löschen. Dabei werden die Einsen auf B 2 in beiden Richtungen, die Nullen auf B 1 aber nur in einer Richtung durchlaufen. Gelingt die Löschung aller Symbole, wird die Eingabe akzeptiert. Bei der umseitigen Realisierung sind Aktionen, die weder Kopfposition noch Bandinhalt verändern, durch abgekürzt. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
29 Turingmaschinen Vorüberlegung Beispiel (Fortsetzung) start q 0 0, #, # #, L ; 0, L ; #, N 1, #, # #, L ; #, N ; 1, L #, #, #, #, R ; #, R q 2 #, 0, 1, #, R ; #, R q 1 #, 0, #, #, R ; #, R q 6 #, 0, 1, #, R ; 1, R #, 0, 1, #, R ; 1, N #, #, #,, #, #, #,, q F #, #, #,, #, #, #,, #, 0, 1, #, R ; 1, N #, 0, 1, #, R ; 1, L q 3 #, 0, #, #, R ; #, L q 4 #, 0, 1, #, R ; #, L q 5 In Zukunft werden wir nicht alle TMs so detailliert beschreiben können, sondern uns meist auf informelle Spezifikationen beschränken. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
30 Turingmaschinen Vorüberlegung Satz Jede semi-entscheidbare Sprache wird von einer dtm akzeptiert. Beweis Betrachte eine 1-Band TM M = Q, B, Σ, δ, q 0, q F mit L(M) = L. Für jedes Paar q, b Q B bezeichne ρ q, b die Anzahl der verfügbaren Übergänge; diese werden von 0 bis ρ q, b 1 durchnummeriert. Setze r := max{ ρ q, b : q, b Q B } und Z r := { n N : n < r } Falls r > 1 ist M nicht deterministisch und wir konstruieren eine deterministische 4-Band Maschine M mit L(M ) = L : B 0 enthält die Eingabe w Σ ; auf B 1 werden systematisch die Zahlen k N erzeugt (unär); auf B 2 werden systematisch die k -Tupel ϕ (Z r ) k erzeugt; Band B 3 dient zur Simulation des durch ϕ spezifizierten Anfangsstücks einer M- Berechung der Länge k mit Eingabe w. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
31 Turingmaschinen Vorüberlegung Beweis (Fortsetzung) Genauer: die Initialkonfiguration mit Eingabe w generiert einen Graphen von Folgekonfigurationen, bei denen jeder Knoten maximal r Nachfolger hat. Die k - Tupel ϕ spezifizieren darin potentielle Wege der Länge k : sofern Schritt i von q,... b... Q B ausgeht, wird Übergang Nummer ϕ i mod ρ q, b der verfügbaren Übergänge ausgeführt, sofern ρ(q, b) 0 ; sonst ist eine Haltekonfiguration erreicht. Per Zustand wird darüber buchgeführt, ob ein Weg eine akzeptierenden Haltekonfiguration erreicht, dann wird w von M akzeptiert; andernfalls wird ϕ auf B 2 und ggf. k auf B 1 aktualisiert und fortgefahren; alle potentiellen Wege der Länge k in nicht akzeptierenden Haltekonfigurationen enden, dann hält M ohne zu akzeptieren; andernfalls wird k auf B 1 erhöht und fortgefahren. Beachte: Falls M immer hält, hat auch M diese Eigenschaft. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
32 Turingmaschinen Entscheidbare Sprachen/Probleme Entscheidbare Sprachen/Probleme Die Terminologie semi-entscheidbar deutet die Existenz entscheidbarer Sprachen an. Dabei soll das Wortproblem entschieden werden, ob die Eingabe w Σ zur Sprache L Σ gehört, oder nicht. Definition Eine Sprache heißt entscheidbar, wenn sie von einer TM akzeptiert wird, die immer hält. (Man kann sich auf dtms beschränken.) Entscheidbare Sprachen sind semi-entscheidbar, aber die umgekehrte Inklusion gilt nicht (Beispiel später). Alternativ heißen semi-entscheidbare/entscheidbare Sprachen in der Literatur auch rekursiv aufzählbar / rekursiv. Hintergrund: rekursiv aufzählbare Sprachen können von einer dtm aufgelistet werden, wobei Wiederholungen erlaubt sind. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
33 Turingmaschinen Entscheidbare Sprachen/Probleme Definition Die von einer dtm T aufgezählte Sprache G(T) besteht aus den Wörtern w Σ, die in T-Konfigurationen der Form q F, ω l bw#ω r ;... mit b B, ω l, ω r B vorkommen, wenn T von q 0, #;... ; # aus startet. Satz Jede Sprache der Form G(T) ist semi-entscheidbar. Beweis. M habe ein Band mehr als die n-band Maschine T, verwendet B n für die Eingabe und simuliert T auf den ersten n Bändern. Erreicht T eine Konfiguration mit Zustand q F, wird das Σ-Wort rechts des Kopfes auf B 0 mit der M-Eingabe auf B n verglichen. Satz Jede semi-entscheidbare Sprache ist von der Form G(T). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
34 Turingmaschinen Entscheidbare Sprachen/Probleme Beweis. Ist L Σ semi-entscheidbar, wählen wir eine 1-Band dtm M mit L = L(M). Die Aufzählung von L leistet eine 4-Band dtm T : B 0 ist leer und dient zur Aufzählung von L (s.u.); auf B 1 werden aufsteigend die Zahlen k N erzeugt (unär); auf B 2 werden systematisch die Wörter der Länge k erzeugt; auf B 3 werden bis zu k Schritte der M-Berechnung des Worts w auf B 2 simuliert. Im Fall der Akzeptanz wird w nach B 0 kopiert, der Kopf links davon positioniert und der Zustand q F angenommen. Anschließend wird B 0 gelöscht. Danach wird das nächste Wort auf B 2 erzeugt. Nach Bearbeitung aller Wörter der Länge k wird k auf B 1 erhöht. Per Zustand kann darüber buchgeführt werden, ob alle Wörter der Länge k zu nicht akzeptierenden Haltekonfigurationen führen. Weil M deterministisch ist, muß L(M) dann endlich sein und T kann halten. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
35 Turingmaschinen Entscheidbare Sprachen/Probleme Satz Eine Sprache L Σ ist genau dann entscheidbar, wenn L und ihr Komplement L := Σ L semi-entscheidbar sind. Beweis. Ist L entscheidbar, so existiert eine TM M mit L(M) = L, die immer hält, also ist L semi-entscheidbar. Mit obiger Konstruktion erhalten wir eine dtm M mit L = L(M ), die immer hält. Ein neuer Endzustand q und neue Übergänge q, b q, b bzw. q, b, N falls q q F und q, b δ =, liefern dann eine dtm M mit L( M ) = L. Umgekehrt lassen wir dtms M und M mit L(M) = L und L( M) = L mittels Interleaving dieselbe Eingabe bearbeiten. Die resultierende Maschine K hält genau dann, wenn eine der Teilmaschinen hält, und sie möge genau dann akzeptieren, wenn M hält und akzeptiert, oder wenn M hält und nicht akzeptiert. Dann hält K immer und erfüllt L(K) = L. In beiden Fällen ist die Verwendung von dtms wesentlich. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
36 Turingmaschinen Die Chomsky-Hierarchie formaler Sprachen Die Chomsky-Hierarchie formaler Sprachen Nicht alle Sprachen sind semi-entscheidbar: im Vorgriff auf Kapitel 7 stellen wir fest, dass jede TM M über Σ = {0, 1} sich durch ein Binärwort c(m) codieren läßt. Damit ist die Menge der möglichen Turingmaschinen über {0, 1} abzählbar (vergl. Folien für Theoretische Informatik 1, Mathematischer Anhang), also auch die Menge der semi-entscheidbaren Sprachen über {0, 1}. (Die Einschränkung auf das Alphabet {0, 1} ist unerheblich.) Andererseits ist die Potenzmenge P(Σ ) überabzählbar. Die meisten Sprachen über {0, 1} sind also nicht semi-entscheidbar. Konkret gilt dies etwa für L code := { w {0, 1} : w = c(m) für eine TM M mit w / L(M) } L code besteht also aus den Binärcodes aller TMs, die ihr eigenes Codewort nicht akzeptieren. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
37 Turingmaschinen Die Chomsky-Hierarchie formaler Sprachen Satz L code ist nicht semi-entscheidbar. Beweis. Wenn eine TM M mit L(M) = L code existiert, erfüllt w = c(m) die Bedingung w L(M) = L code gdw. w / L(M) = L code, Widerspruch. Die Trennung der entscheidbaren von den semi-entscheidbaren Sprachen erfolgt in Kapitel 7 mit Hilfe der Sprache L halt := { c(m)w : M TM, die bei Eingabe w hält } die semi-entscheidbar aber nicht entscheidbar ist (Halteproblem). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
38 Turingmaschinen Die Chomsky-Hierarchie formaler Sprachen Satz Jede kontextfreie Sprache ist entscheidbar. Beweis. Ein Kellerautomat kann durch eine 2-Band Turingmaschine simuliert werden: der Kopf auf B 0 fährt zum linken Rand der Eingabe und B 1 dient zur Simulierung des Kellers, der sich von der aktuellen Kopfposition nach rechts erstrecken möge (vergl. HA). Damit ist jede kontextfreie Sprache semi-entscheidbar. Um die Entscheidbarkeit sicherzustellen, müssen wir mit einem Kellerautomaten beginnen, der immer hält. Dies ist sicher der Fall, wenn keine spontanen Übergänge auftreten. Und letzteres kann garantiert werden, wenn der Kellerautomat ausgehend von einer kontextfreien Grammatik in Greibach Normalform konstruiert wird (vergl. Skript zu TheoInf 1). Alternativ könnte man den CYK-Algorithmus per TM implementieren. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
39 Turingmaschinen Die Chomsky-Hierarchie formaler Sprachen Die betrachteten Klassen formaler Sprachen über Σ bilden eine echte Hierarchie; wir geben Trenn-Beispiele zu den echt kleineren Klassen an: Alle Sprachen, L code ; die semi-entscheidbaren Sprachen, L halt, s.u.; die entscheidbaren Sprachen, { a n b n c n : n N } ; die kontextfreien Sprachen, { w sp(w) : w Σ } ; die deterministisch kontextfreien Sprachen; { a n b n : n N } ; die regulären Sprachen, {a 2n : n N } ; die endlichen Sprachen. Nicht betrachtet wurde die Klasse der kontext-sensitiven Sprachen, echt zwischen den Klassen der kontextfreien und der entscheidbaren Sprachen. Man spricht in diesem Zusammenhang auch von der Chomsky-Hierarchie. Sie wurde von Noam Chomsky Mitte der 1950 er Jahre entwickelt. Allerdings lag der Schwerpunkt damals auf linguistischen Fragestellungen. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
40 Turingmaschinen Abschlußeigenschaften (semi-)entscheidbarer Sprachen Abschlußeigenschaften (semi-)entscheidbarer Sprachen Satz Die Klasse der (semi-)entscheidbaren Sprachen ist abgeschlossen unter endlicher Vereinigung und endlichem Durchschnitt; Konkatenation und Iteration (Kleene Stern); Spiegelung und Shuffle; Residuierung bzgl. endlicher Sprachen. homomorphen Bildern und Urbildern. Darüberhinaus sind die entscheidbaren Sprachen unter Komplementbildung abgeschlossen, die semi-entscheidbaren Sprachen aber nicht. Beweis Vorbemerkung: Bei s-e Sprachen erfordert die Simulation mehrerer dtms Interleaving. Diese Einschränkung entfällt bei der Verwendung von ntms. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
41 Turingmaschinen Abschlußeigenschaften (semi-)entscheidbarer Sprachen Beweis (Fortsetzung). Zu endlicher Vereinigung, Shuffle und Residuierung vergl. HA. Durchschnitte handhabt man wie Vereinigungen, nur die Akzeptanzbedingung ist insoweit anzupassen, als beide Maschinen akzeptieren müssen. Für die Spiegelung verwendet man ein neues Band um die Eingabe zu spiegeln, bevor die Maschine für die ursprüngliche Sprache simuliert wird. Der Abschluß entscheidbarer Sprachen unter Komplementbildung folgt aus ihrer Charakterisierung mittels semi-entscheidbarer Sprachen. In Kapitel 7 zeigen wir, dass das Komplement von L halt nicht semi-entscheidbar ist. Im Falle der Konkatenation kann die Eingabe zufällig in zwei zusammenhängende Teile zerlegt werden, die dann als Eingabe für die zu simulierenden Maschinen dienen; dies liefert eine ntm. Für die Iteration ist dagegen eine Zerlegung in endlich viele Teile erforderlich, die alle als Eingaben für dieselbe Maschine zu testen sind: Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
42 Turingmaschinen Abschlußeigenschaften (semi-)entscheidbarer Sprachen Beweis (Fortsetzung). Im Fall L(M) = L habe M für L ein neues zweispuriges Eingabeband B n. Parallel zur nichtleeren Eingabe schreibt man ein mit 1 beginnendens zufälliges Binärwort derselben Länge auf die zweite Spur. Dessen Einsen markieren die Anfänge der Teilwörter der Zerlegung, die nun als Eingaben von M zu testen sind, ob sie zu L gehören. Zudem ist ε zu akzeptieren. h Jeder Homomorphismus Σ Γ ist durch seine Einschränkung auf Σ Σ bestimmt, d.h. durch endlich viele Werte h(a), a Σ. Wird K Γ von einer n -Band Maschine N akzeptiert, so möge die Maschine M für h 1 (K) ein neues Band B n für die Eingabe w haben. Dann wird h(w) auf B 0 geschrieben, und N mit dieser Eingabe simuliert. Falls L = L(M) Σ, ist die Eingabe w Γ in h-bilder der Buchstaben aus Σ zu zerlegen, entweder nichtdeterministisch, oder systematisch. Mit den resultierenen h- Urbildern von w ist dann M zu simulieren. Gehört mindestens ein solches Urbild zu L, folgt w h[l]. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
43 Turingmaschinen Abschlußeigenschaften (semi-)entscheidbarer Sprachen Satz (Semi-)entscheidbare Sprachen sind nicht unter abzählbar unendlichen Vereinigungen abgeschlossen, entscheidbare Sprachen auch nicht unter abzählbar unendlichen Durchschnitten und unter Residuierung mit unendlichen Sprachen. Beweis. Die Sprachen L code bzw. L halt sind abzählbar unendliche Vereinigungen regulärer Singleton-Sprachen. Die Abgeschlossenheit der entscheidbaren Sprachen unter Komplementen impliziert wegen der de Morgan sche Regel die Aussage über Durchschnitte, und folglich über Residuierungen. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
44 Turingmaschinen Turing-berechenbare partielle Funktionen Turing-berechenbare partielle Funktionen Wir wollen TMs nun auch zur Berechnung partieller Funktionen Σ einsetzen. Dazu muß Σ, Γ B {#} gelten. Die Spezifikation eines Finalzustands q F ist hier verzichtbar. Zu vereinbaren bleibt, welcher Teil des Bandinhalts nach dem Halt der Maschine als Funktionswert interpretiert werden soll. Wir wollen dafür das längste zusammenhängende Wort aus Γ verwenden, das links neben der finalen Kopfposition auf einem designierten Band auftritt. Das Feld des Kopfes gehört nicht dazu, aber nach einem Linksschritt könnte die Ausgabe ggf. als Eingabe für eine weitere Maschine verwendet werden, sofern das restliche Band leer ist. Partielle Funktionen der Form (Σ ) n f (Γ ) k mit n > 1 oder k > 1 erfordern je genau ein Trennzeichen zwischen den Komponenten der Einbzw. Ausgabe. Auch wenn das Blankzeichen dafür verwendet werden kann, wird dies nicht empfohlen. f Γ Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
45 Turingmaschinen Turing-berechenbare partielle Funktionen Beispiel ( f (n) = 2n : Wähle Σ = Γ = { } = B {#}.) Idee: 2-Band Maschine; Eingabe zweimal von B 0 auf B 1 kopieren., #, L ;, R, # #, R ;, R start q 0 #, # #, R ; #, N q F oder geschickter start r 0, # #, N ;, R #, # #, L ;, R r1 Beim aktuellen Bandinhalt #, # in Zustand q F bzw. r 0 hält die jeweilige Maschine mit dem Ergebnis auf B 1 und B 0 leer. Beispiel ( f (w) = w : Wähle Γ = { } disjunkt zu Σ.) Idee: Eingabe mit Symbolen überschreiben; rechten Rand suchen. a, L, R start q 0 # #, R q F mit a Σ Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
46 Turingmaschinen Turing-berechenbare partielle Funktionen Beispiel ( f (n, m) = n + m : Wähle Σ = Γ = { }, B = #}.) Idee: 2-Band Maschine; Eingabe auf B 1 kopieren, dabei das überspringen., # #, L ;, R, # #, L ;, R start q # #, L ; #, N q F Idee: 1-Band Maschine; mit erstem von rechts überschreiben, L, R start q 0 #, L R q #, N Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
47 Turingmaschinen Turing-berechenbare partielle Funktionen Beispiel ( f (n, m) = n m : Wähle Σ = Γ = { }, B = {, #}.) Wir begnügen uns nun mit einer High-Level-Beschreibung: Idee: 3-Band Maschine; das zweite Argument der Eingabe n # m auf B 2 verschieben; für jedes Symbol auf B 2 das verbliebene Argument n von B 0 nach B 1 kopieren, von links nach rechts. Bemerkung Die Erfahrungen mit Turing Maschinen und anderen Versuchen aus der ersten Hälfte des 20. Jahrhunderts, den Begriff der durch einen (terminierenden) Algorithmus berechenbaren Funktion formal zu fassen, führten zu der Vermutung, dass jede solche (totale) Funktion Turing-berechenbar sein muß. Diese nicht beweisbare Vermutung ist bekannt als Church-Turing These und wird in Kapitel 6 ausführlicher behandelt. Wie üblich stellt sich jetzt die Frage nach Funktionen, die nicht Turing-berechenbar sind. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
48 Turingmaschinen Turing-berechenbare partielle Funktionen Definition Die sog. Busy Beaver Funktion N β N bildet n N ab auf die größte Zahl β(n) nichtleerer Felder, die eine schnelle 1-Band dtm über { }, die über n Nicht-Haltezustände und einen Haltezustand verfügt, ausgehend vom leeren Band auf diesem hinterlassen kann, wenn sie hält. Achtung: Nach dem Halt der Maschine dürfen zwischen den Strichen Lücken auftreten. Damit kann sich die größte unär codierte Zahl k, die nach dem Halt auf dem Band steht, durchaus von β(n) unterscheiden. Beispiel ( β(0) = 0 und β(1) = 1 ) #, N start q F bzw start q 0, L q F Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
49 Turingmaschinen Turing-berechenbare partielle Funktionen Beispiel ( β(2) = 4 ) q 0, # q 1, # #, R q 0, start q 0 #, L q1, R q F q 1, # q 0, # q 1,, L q F, Bei Wikipedia findet man diverses Hintergrundmaterial zum Thema Busy Beaver (dort heißt die Funktion Σ ), einschließlich einiger Schranken für die Werte β(6) und β(10). Weiterhin sei auf die Seite von Heiner Marxen verwiesen, der zeitnah über aktuelle Busy Beaver Rekorde buchführt. Es ist zu empfehlen, den Wert β(3) selbständig nachzurechnen, ohne obige Quellen zu konsultieren. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
50 Turingmaschinen Turing-berechenbare partielle Funktionen Lemma Die busy beaver Funktion wächst streng monoton, d.h., β(n) < β(n + 1) für jedes n N. Beweis. Die dtm M mit Haltezustand q F möge β(n) realisieren. Füge einen neuen Haltezustand q G hinzu und die Übergänge, L q F #, L q G Die neue Maschine M, mit q F als Nicht-Haltezustand, sucht links ein freies Feld, schreibt und hält. Also gilt β(n) < β(n) + 1 β(n + 1). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
51 Turingmaschinen Turing-berechenbare partielle Funktionen Satz Für jede Turing-berechenbare totale Funktion N f N existiert eine Zahl r f, so dass für alle n N gilt f (n) β(n + r f ). Beweis. Die Funktion f möge von der dtm M mit r f Zuständen berechnet werden. Für n N fügen wir n neue Zustände p i, i < n, zu M hinzu, sowie folgende Übergänge: #, R #, R #, R #, R start p 0 p1... p n 1 q 0 M n produziert ausgehend vom leeren Band n Striche und führt dann M mit dieser Eingabe aus. Mit M hält auch M n, und dann stehen mindestens f (n) Striche auf dem Band, also folgt f (n) β(n + r f ). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
52 Turingmaschinen Turing-berechenbare partielle Funktionen Satz β ist nicht Turing-berechenbar. Beweis. Wir nehmen an, β ist Turing-berechenbar vermöge der dtm M. Dann ist auch N f N mit n β(2n) Turing-berechenbar (Verknüpfung mit der Verdoppelungsmaschine aus einem früheren Beispiel). Für jedes n N gilt nach obigem Satz β(2n) = f (n) β(n + r f ). Aber n = r f + 1 liefert einen Widerspruch zur stengen Monotonie von β. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
53 Church-Turing-These Kapitel 6 Die Church-Turing These Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
54 Church-Turing-These Alternativen zu Turingmaschinen Alternativen zu Turingmaschinen Laut Church-Turing-These (oder besser: Vermutung) stimmt die Klasse aller intuitiv algorithmisch berechenbaren Funktionen mit der Klasse der Turing-berechenbaren Funktionen überein. Diese These kann prinzipiell nicht beweisen werden, wird aber dadurch untermauert, dass andere natürliche Formalisierungen des Algorithmus- Begriffs dieselben Klasse berechenbarer Funktionen liefern. Etwa: Registermaschinen (RAMs), die heutigen Computern näher stehen als klassische TMn (dieser Abschnitt wird sehr kurz gehalten); formale Grammatiken (eine Verallgemeinerung kfg n, sind der hiesigen Umsetzung der Bologna-Reform zum Opfer gefallen); die Theorie der sog. rekursiven Funktionen; der Lambda-Kalkül von Alonso Church, die Basis moderner funktionaler Programmiersprachen (vergl. andere VL); und diverse andere, siehe etwa Kapitel 18 im Buch von Rich. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
55 Church-Turing-These Alternativen zu Turingmaschinen Turing Maschinen lieferten seit Mitte der 1930 er Jahre einen konzeptionellen Zugang zum Algorithmusbegriff. Hinsichtlich der in den 1940 er und 1950 er Jahren vereinzelt aufkommenden Rechenmaschinen/Computer waren TMs aber zu wenig an der Hardware orientiert. Das RAM-Konzept kann zwischen abstrakten TMs und konkreter Assembler-Programmierung verortet werden. Umgekehrt sind Turing Maschinen im Hinblick auf den Begriff der Turingberechenbaren Funktion zu konkret, da Prozedur-orientiert. Sie vermitteln wenig Intuition darüber, welche Funktionen eigentlich Turing-berechenbar sind. Erfreulicherweise stimmt zumindest die Klasse der zahlentheoretischen Turing-berechenbaren Funktionen mit auf völlig andere Weise eingeführten Klasse der µ- rekursiven Funktionen überein. Hier stehen wirklich die Funktionen im Mittelpunkt, und nicht ihre (relativ konkrete aber fehleranfällige) Implementierung. Für die Korrektheitsbeweisen besser zugängliche funktionale Programmierung eignet sich der Lambda-Kalkül allerdings noch besser. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
56 Church-Turing-These Registermaschinen (RAM) Registermaschinen (RAM) Anstelle eines (potentiell unendlichen) Turingbandes verfügt eine Random Accesss Machine (RAM) oder Registermaschine über einen Datenspeicher aus potentiell unendlich vielen Registern R i, i N, die Daten R i in Form von natürlichen Zahlen unbeschränkter Größe enthalten können (hier muß getrickst werden). Das Register R 0 heißt Akkumulator. Anstatt eines Schreib-Lese-Kopfes arbeitet eine Steuereinheit taktweise die (von den Daten separat gespeicherten) Programme zeilenweise ab, gemäß eines Befehlszählers BZ, der auch als Register aufgefaßt werden kann (aber ebenfalls nicht zum Datenspeicher gehört). Die Ein- und Ausgabe erfolgt über separate Bänder, deren Felder natürliche Zahlen enthalten können (Felder mit dem Inhalt 0 gelten als leer ), und auf denen ein Lese- bzw. Schreib-Kopf sich nur nach rechts(!) bewegen kann (unmittelbar nach dem Lese- bzw. Schreibvorgang, im selben Takt). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
57 Church-Turing-These Befehlssatz einer RAM Registermaschinen (RAM) Befehl Wirkung READ R 0 := read, BZ := BZ + 1 der Lesekopf bewegt sich vom Feld mit Inhalt read um ein Feld nach rechts WRITE write := R 0, BZ := BZ + 1 der Schreibkopf schreibt R 0 und bewegt sich ein Feld nach rechts LOAD i/load i/load!i R 0 := R i / R Ri /i und BZ := BZ + 1 STORE i/store i R i / R i := R 0 und BZ := BZ + 1 ADD i/add i/add!i R 0 := R 0 + R i / R Ri /i und BZ := BZ + 1 PRED R 0 := pred R 0 1 und BZ := BZ + 1 GOTO m BZ := m { m falls R IF R i = 0 GOTO m BZ := i = 0 BZ + 1 sonst { m falls R IF R i > 0 GOTO m BZ := i > 0 BZ + 1 sonst STOP Maschine hält Die - Variante von LOAD, STORE bzw. ADD entspricht indirekter Adressierung des Registers R Ri, während die!-variante von LOAD und ADD Konstanten i N anstelle von Registerinhalten verwendet. 1 mit pred(n + 1) = n und pred 0 = 0 Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
58 Church-Turing-These Registermaschinen (RAM) Beim Programmieren elementarer Aktionen als Macros ist zu beachten, dass Sprung-Adressen ggf. anzupassen und der Akkumulator zu retten sind. Beispiel SUCC i / PRD i soll den Inhalt von R i STORE α R α = R 0 LOAD!1 R 0 = 1 ADD i R 0 := R i + 1 STORE i R i := R i + 1 LOAD α R 0 = R α um 1 erhöhen/vermindern: STORE α R α = R 0 LOAD i R 0 = R i PRED R 0 := pred R i STORE i R i := pred R i LOAD α R 0 = R α Dabei ist R α ein zum Zeitpunkt des Aufrufs freies Register, das jeweils anzupassen ist. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
59 Church-Turing-These Registermaschinen (RAM) Beispiel ( SUB i subtrahiert R 0 von R i, soweit möglich:) 0. IF R 0 = 0 GOTO 8 1. PRD i (braucht fünf Schritte) 6. PRED 7. GOTO 0 8. LOAD i Beispiel ( IF R i = k GOTO m für k > 0 :) 0. STORE α 1. LOAD!k 2. SUB i (braucht neun Schritte) 11. STORE i (zerstört den Inhalt von R i ) 12. LOAD α 13. IF R i = 0 GOTO m Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
60 Church-Turing-These Registermaschinen (RAM) Simulation einer TM durch eine RAM Neben dem Akkumulator R 0 sind die Register R 1 für den Zustand und R 2 für die Kopfposition reserviert, während R 3+i für den Inhalt von Zelle i zuständig ist. Die Zustandsmenge wird durchnummeriert: Q = { q i : i < n } ; der aktuelle Zustandsindex ist R 1 Das Bandalphabet B wird durchnummeriert: B = { s i : i < m } mit s 0 = #. Der Index des Inhalts von Feld i findet sich in Register R 3+i. Die Bandzellen werden durchnummeriert, mit 0 für die Kopfposition in der Initialkonfiguration, ungerade Zahlen nach rechts, gerade Zahlen nach links. Die aktuelle Kopfposition ist R 2. Die Übergangstabelle q i, s j q r, A t wird programmiert. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
61 Church-Turing-These Registermaschinen (RAM) Die Simulation einer TM-Berechnung erfolgt in drei Schritten: Zunächst wird die Eingabe a 0 a 1... a k 1 in die Register R 3, R 5,..., R 1+2k übertragen, durch wiederholte Anwendung von READ. Nach Erreichen von # werden die Register R 1 und R 2 gemäß der Initialkonfiguration initialisiert. Anschließend sind die den Übergängen q i, b j q r, a t mit b j B und a t B + {L, R} entsprechenden Programme auszuführen, solange Übergänge verfügbar sind. Der Bandinhalt rechts der Kopfposition wird auf das Ausgabeband übertragen, bis ein Blankzeichen auftritt. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
62 6.1.2 Berechenbarkeit Church-Turing-These Registermaschinen (RAM) Definition Eine RAM berechnet eine (partielle) Funktion N k N, falls die RAM bei genau den Eingaben aus dem Definitionsbereich D(f ) hält und dann der einzige Wert auf dem Ausgabeband mit dem Funktionswert von f übereinstimmt. Nachdem die Simulierbarkeit von dtms durch RAMs konzeptionell bereits etabliert worden ist, gilt es nun, auch die umgekehrte Simulierarkeit zu zeigen. Satz Jede RAM-berechenbare Funktion ist Turing-berechenbar. f Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
63 Church-Turing-These Registermaschinen (RAM) Beweis Wir simulieren ein RAM-Programm für f mit Hilfe einer 6-Band TM mit Bandalphabet #} und Zustandsmenge der Form Q A ( zusätzliches Gedächtnis ), deren zweite Komponente zur Speicherung des endlichen RAM-Programms dient. B 0 dient zur Eingabe x x x n ; B 1 enthält die zunächst nichtleeren Register R i = n in der ; aktuelle Angaben für R i werden rechts angefügt (das erspart das Verändern von Zahlen in der Mitte des Bandes); dann ist auch n = 0 möglich; B 2 und B 3 fungieren als Akkumulator bzw. Befehlszähler; B 4 ist ein Hilfsband und B 5 dient der Ausgabe. Zu Beginn sind alle Bänder außer B 0 leer. Dann wird immer der Befehl simuliert, dessen Zeilennummer auf B 3 steht. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
64 Church-Turing-These Registermaschinen (RAM) Beweis (Fortsetzung) Nun gilt es nur noch, die einzelnen RAM-Befehle zu simulieren.... Frau Viorica Sofronie-Stokkermans von der Universität Koblenz-Landau verfolgt hinsichtlich Register-Maschinen einen geschickteren Ansatz: Neben dem IF...GOTO-Konstrukt verwendet sie LOOP und WHILE Schleifen, erstere mit vorgegebenener und lezterer mit potentiell variabler Anzahl von Durchläufen. Das induziert drei Klassen berechenbarer Funktionen, LOOP, WHILE und GOTO, wobei man jeweils noch den partiellen und den totalen Fall unterscheiden kann. Es stellt sich heraus, LOOP echt in den totalen WHILE-Funktionen enthalten ist, während die Turing-berechenbaren Funktionen mit WHILE und GOTO übereinstimmen; Slogan: strukturierter Code ist genauso mächtig wie Spaghetti-Code Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
65 Church-Turing-These 6.2 Rekursive Funktionen 6.2 Rekursive Funktionen Dieser alternative Ansatz zur Formalisierung intuitiv berechenbarer Funktionen geht algebraisch vor. Ausgehend von sog. Grundfunktionen wird mit zwei Operationen zunächst die Klasse der primitiv rekursiven Funktionen aufgebaut. Der Abschluß unter einer dritten Operation liefert dann die Klasse der µ- rekursiven Funktionen. Diese stimmt letztlich mit der Klasse der partiellen Turing-berechenbaren Funktionen überein. Definition Die Klasse PR 0 der Grundfunktionen besteht aus allen Projektionen N k πi k N, x x i, für i < k N ; allen konstante Funktionen N k κ k;0 N, x 0, für k N ; der Nachfolger-Funktion N succ N, n n + 1. Speziell im Fall k = 0 ist N 0 ein Singleton { }. Dann existieren keine κ Projektionen, und die Konstante { } 0;0 N kann mit dem Element 0 N identifiziert werden (Funktion ohne Parameter). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
66 Church-Turing-These 6.2 Rekursive Funktionen Zunächst wollen wir die bekannte Verknüpfung einstelliger Funktionen N g N f N, n f (g(n)) =: (f g)(n) auf mehrstellige Funktionen übertragen. Ist N k N gegeben, kann man im einfachsten Fall k Funktionen N t i g i N per Substitution zu einer neuen Funktion N i<k t i f (g 0 g k 1 ) N verbinden: f g 0 g 1 g 2 f (In dieser graphischen Darstellung haben die Knoten als Funktionen oben endlich viele Inputs, und unten genau einen Output.) Diese Operation wird sich später als ableitbar erweisen, dient also nicht als grundlegendes Konstruktionsprinzip für primitiv-rekursive Funktionen. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
67 Church-Turing-These 6.2 Rekursive Funktionen f Stattdessen kann man für N k N auch k Funktionen g i mit demselben Definitionsbereich N m betrachten, und daraus eine kombinierte Funktion von N m nach N gewinnen, indem man die Eingabe für alle Funktionen g i klont: g 0 g 1 g 2 f Definition (Klon-Komposition) Für N k f N und N m g i N, i < k setze N m f g i : i < k x f ( g 0 (x),..., g k 1 (x) ) N Auch diese Operation wird in der Literatur leicht irreführend einfach als Substitution oder Komposition bezeichnet. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
68 Church-Turing-These 6.2 Rekursive Funktionen Beispiel h Die Funktion N 2 N, m, n (m + n) + mn + max{m, n} läßt sich mittels Klon-Komposition aus N 3 f N, x, y, z x + y + z sowie N 2 g i N, i < 3, konstruieren, mit g 0 (m, n) := m + n, g 1 (m, n) := mn und g 2 (m, n) := max{m, n}. Beispiel Konstante Funktionen N k κ k;i N mit Wert i N liefert κ k;0 durch i -fache Verknüpfung mit der Nachfolger-Funktion: κ k;i = (succ) i κ k;0. Beispiel Die durch f (n) = n + 2 spezifizierte Funktion N f N läßt sich durch f = succ succ realisieren. Entsprechend liefert die Spezifikation g(m, n) = n + 2 eine Funktion N 2 g N mit g = f π1 2. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
69 Church-Turing-These 6.2 Rekursive Funktionen Satz Substitution läßt sich auf Klon-Komposition zurückführen. Beweis f Für N k N erweitert man den Definitionsbereich der Funktionen N t i g i N, i < k, mittels Dummy-Argumenten zu N t mit t = i<k t i. Dafür verwendet man Klon-Komposition mit geeigneten Projektionen: Dies liefert schließlich g i = g i π t j<i t j,..., πt ( j i t j ) 1 f (g 0 g k 1 ) = f g 0,..., g k 1 Umgekehrt zeigt die graphische Darstellung unmittelbar, dass die Klon-Komposition nicht mit Hilfe der Substitution realisiert werden kann. (Während Substitution nur auf der Tensorprodukt-Eigenschaft von beruht, benötigt Klon-Komposition die Eigenschaften eines kategoriellen Produkts, speziell die Existenz von Projektionen.) Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
70 Church-Turing-These 6.2 Rekursive Funktionen Definition (Induktions-Rekursions-Schema (IRS)) Aus zwei Funktionen N k 1 N k f = IR(g, h) N gemäß g N h N k+1 konstruieren wir eine dritte f (x, 0) := g(x) und f (x, m + 1) := h(x, m, f (x, m)) mit x N k 1 Die Rekursion erfolgt bei festem x N k 1 im letzten Argument rückwärts durch m + 1 -malige Anwendung von h auf den Startwert f (x, 0) = g(x) : Beispiel ( m = 2 ) f (x, 3) = f (x, 2 + 1) = h(x, 2, f (x, 2)) = h(x, 2, f (x, 1 + 1)) = h(x, 2, h(x, 1, f (x, 1))) = h(x, 2, h(x, 1, f (x, 0 + 1))) = h(x, 2, h(x, 1, h(x, 0, f (x, 0)))) = h(x, 2, h(x, 1, h(x, 0, g(x)))) Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
71 Church-Turing-These 6.2 Rekursive Funktionen Definition Die Klasse PR der primitiv rekursiven Funktionen bilden den Abschluß der Grundfunktionen unter der Klon-Komposition und Induktions-Rekursions: Die Menge PR i+1 entstehe durch Anwendung von Klon-Komposition und IRS auf Funktionen aus PR i, i N. Wegen id IN = π0 1 PR 0 folgt sofort PR 0 PR 1, und per Induktion auch PR i PR i+1. PR := { PR i : i N } Satz Die Menge PR der primitiv-rekursiven Funktionen ist abzählbar. Um f PR für eine gegebene zahlentheoretische Funktion N k N nachzuweisen, ist f als Klon-Komposition von, oder als Ergebnis des IRS mit Funktionen darzustellen, die auch zu PR gehören. f Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
72 Church-Turing-These 6.2 Rekursive Funktionen Beispiel Die Fakultätsfunktion fac(n) = n! = i n i ist primitiv rekursiv. Da fac nicht offensichtlich die Klon-Komposition einfacherer Funktionen ist, versuchen wir, fac mit Hilfe des IRS darzustellen. fac(0) = 1 erzwingt g = κ 0;1. Um einen Kandidaten für h zu finden, wollen wir fac(m + 1) mit fac(m) in Beziehung setzen. Offenbar gilt fac(m + 1) = (m + 1)! = Das legt N 2 h i m+1 = (m + 1) fac(m) = h(m, fac(m)) N, a, b succ(a) b nahe. i = (m + 1) i = (m + 1) m! Bei h handelt es sich um das Ergebnis der Substitution von succ und id N = π0 1 in die Multiplikation N2 mult N. Die primitive Rekursivität von h folgt, wenn wir die der Multiplikation nachweisen können. i m Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
73 Church-Turing-These 6.2 Rekursive Funktionen Beispiel (Fortsetzung) Da die Multiplikation weder auf Klon-Komposition noch auf Substitution basiert, versuchen wir es mit dem IRS. Aus n 0 = 0 folgern wir g = κ 1;0, während n (m + 1) = n + n m = h (n, m, n m) die Wahl von h (a, b, c) = a + c nahelegt, genauer: h = plus π 3 0, π3 2. plus Damit bleibt die Addition N 2 N auf primitive Rekursivität zu untersuchen. Klon-Komposition und Substitution entfallen, bleibt also nur das IRS. Aus n + 0 = n folgern wir g = id N = π0 1. Andererseits legt n + (m + 1) = (n + m) + 1 = h (n, m, n + m) die Wahl von h (a, b, c) = c + 1 nahe, genauer: h = succ π2 3. Zusammenfassend sind folgende Funktionen primitiv rekursiv: plus = IR(π 1 0, succ π 3 2) mult = IR(κ 1;0, plus π 3 0, π 3 2 ) fac = IR(κ 0;1, mult succ, π 1 0 ) Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
74 Church-Turing-These 6.2 Rekursive Funktionen Beispiel (Die auf N beschränkte Subtraktion ist primitiv-rekursiv) { monus(n, m) = n. n m falls n > m m = 0 sonst läßt sich umschreiben zu monus(n, 0) = n und monus(n, m + 1) = pred monus(n, m) Dies paßt zum Rekursionsschema für g = π 1 0 = id N und h = pred π 3 2, wobei die totale Vorgängerfunktion pred definiert ist durch pred(0) = 0 und pred(m + 1) = m Die primitive Rekursivität von h folgt aus der von pred. Aber dies ergibt sich auch mit Hilfe des Rekursionsschemas und den Funktionen ḡ = κ 0;0 und h = π 2 0 : pred 0 = 0 = ḡ und pred(m + 1) = h(m, pred(m)) = m Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
75 Church-Turing-These 6.2 Rekursive Funktionen Satz Das Umordnen, Löschen oder Wiederholen von Argumenten in primitivrekursiven Funktionen liefert wieder solche. Beweis. g Für N k N und {0,..., k 1} = k die Komposition ϕ m = {0,..., m 1} läßt sich f : N m Nϕ N k g N, x g(x ϕ(0), ϕ(1),..., x ϕ(k 1) ) darstellen als Klon-Komposition f = g π m ϕ(0), πm ϕ(1),..., πm ϕ(k 1). Corollar Ist N k f N primitiv-rekursiv, dann auch für alle l N die Funktion N k N l = N k+l f N die gegeben ist durch f (x, y) = f (x). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
76 Church-Turing-These 6.2 Rekursive Funktionen Satz (Fallunterscheidung ist primitv-rekursiv) Sind für i < n die Funktionen N k g i, h i N primitiv-rekursiv, und existiert für jedes x N k genau ein i < n mit h i (x) = 0, so ist auch primitiv-rekursiv. N k f N, x g i (x) falls h i (x) = 0 Beweis. f (x) = i<n g i (x) (1. h i (x) ) Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
77 Church-Turing-These 6.2 Rekursive Funktionen Satz g Mit N k+1 N sind auch folgende Funktionen N k+1 f +, f N primitiv-rekursiv: f + (x, m) := g(x, i) und f (x, m) := g(x, i) i<m i<m Beweis. f + (x, 0) = 0 und f + (x, m + 1) = f + (x, m) + g(x, m) zeigt, wie f + mit dem IRS aus g + (x) = 0 und h + (x, m, c) = g(x, m) + c entsteht. Analog zeigt f (x, 0) = 1 und f (x, m + 1) = f (x, m) g(x, m) wie f mit dem IRS aus g (x) = 1 und h (x, m, c) = g(x, m) c entsteht. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
78 Church-Turing-These 6.2 Rekursive Funktionen Definition (beschränkter µ -Operator) Für eine Funktion N k+1 g N definieren wir N k+1 f N durch f (x, m) = µ i<m (g(x, i) = 0) { i 0 falls g(x, i 0 ) = 0 und g(x, j) 0 für j < i 0 = 0 falls g(x, j) 0 für alle j < m (speziell für m = 0) In Worten: f (x, m) ist die kleinste Zahl i 0 < m mit g(x, i 0 ) = 0, falls solch eine existiert, und 0 sonst. Die Schreibweise soll andeuten, dass i eine gebundene Variable ist. Wir werden später auch einen unbeschränkten µ- Operator kennenlernen. Satz Ist g in der obigen Definition primitiv-rekursiv, so auch f. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
79 Church-Turing-These 6.2 Rekursive Funktionen Beweis. Wie wollen wieder das IRS anwenden. Dazu schreiben wir f wie folgt: f (x, 0) = 0 { m falls g(x, m) + f (x, m) = 0 und g(x, 0) m 0 f (x, m + 1) = f (x, m) sonst Damit funktioniert das IRS mit den Funktionen ĝ(x) = 0 { m falls g(x, m) + f (x, m) + (1. g(x, 0) m) = 0 ĥ(x, m, c) = c falls ( 1. (g(x, m) + f (x, m)) ) g(x, 0) m = 0 Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
80 Church-Turing-These Primitiv-rekursive Prädikate 6.2 Rekursive Funktionen Definition Unter einem primitiv-rekursiven Prädikat verstehen wir eine primitivrekursive Funktion N k p N mit Wertebereich 2 = {0, 1} N. Beispiel (vergl. T. A. Sudkamp, Languages and Machines, Kapitel 13) Name Prädikat Definition alternative Beschreibung Sign sg(x) sg(0) = 0 sg(y + 1) = 1 Sign Komplement cosg(x) cosg(0) = 1 1. sg(x) cosg(y + 1) = 0 Kleiner als lt(x, y) sg(y. x) Größer als gt(x, y) sg(x. y) Gleich eq(x, y) cosg((x. y) + (y. x)) 1. (x. y). (y. x) Ungleich ne(x, y) cosg(eq(x, y)) sg((x. y) + (y. x)) Primitiv-rekursive Prädikate lassen sich mittels logischer Junktoren zu neuen solchen kombinieren. Das kann im Rahmen von Fallunterscheidungen nützlich sein. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
81 Church-Turing-These 6.2 Rekursive Funktionen Satz Folgende Prädikate sind primitiv-rekursiv: { 1 falls n teilt n (n, m) = prime(n) = 0 sonst { 1 falls n prim ist 0 sonst Beweis. (n, m) = 1 z. (z n = m) z m eq(z n, m) = 1 Folglich gilt (n, m) = z m eq(z n, m). prime(n) = 1 n 2 y < n. ( y = 0 y = 1 (y, n) = 0 ) Also prime(n) = 1. ( (2. n) + y<n y ne(y, 1) (y, n) ). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
82 Church-Turing-These 6.2 Rekursive Funktionen Satz Beweis. Die Funktion N p N, die n die n-te Primzahl zuordnet, ist primitv-rekursiv. D Die Funktion N 2 N, die (i, n) auf den Exponenten von p(i) in der Primzahlfaktorisierung von n abbildet, ist primitiv-rekursiv. Wegen p(0) = 2 ist p nicht direkt eine beschränkte Minimierung. p(m + 1) ist die kleinste Primzahl größer als p(m). Der kleinste Kandidat dafür ist p(m)! + 1. Aus p(m + 1) = h(m, p(m)) = µ i<p(m)!+2 ( (1. prime(i) + lt(i, p(m) + 1) ) folgern wir p = IRS(κ 0;2, h) mit h(m, b) = µ i<b!+2 ( (1. prime(i) + lt(i, b + 1) ) Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
83 Church-Turing-These 6.2 Rekursive Funktionen Beweis (Fortsetzung). D(i, n) ist die kleinste Zahl j < n, so dass n nicht durch p(i) j geteilt wird. Das läßt sich direkt mittels beschränktem µ- Operator ausdrücken D(i, n) = µ j<n+1 ( (p(i) j+1, n) = 0 ) Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
84 Eigenschaften von PR Church-Turing-These 6.2 Rekursive Funktionen Satz Jede primitiv rekursive Funktion ist total. Beweis. Alle Projektionen πi k, jede konstante Funktion κ k;0 und die Nachfolgerfunktion succ sind überall definiert, d.h., total. f Sind N k N und N m g i N, i < k, überall definiert, so gilt dies auch für die Klon-Komposition f g i : i < k. g Sind N k 1 N h N k+1 total, so ist f := IR(g, h) zumindest auf N k 1 {0} definiert. Mit f (x, m) ist auch f (x, m + 1) = h(x, m, f (x, m)) definiert. Induktion zeigt nun: f ist auf ganz N k definiert. Strukturelle Induktion über den Aufbau primitv rekursiver Funktionen wie hier ist aus der Logik bekannt und wird auch nachfolgend nützlich sein. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
85 Church-Turing-These 6.2 Rekursive Funktionen Der Aufbau von PR legt es nahe, analog zu regulären Ausdrücken auch hier syntaktische Baupläne einzuführen, mit offensichtlicher Semantik F. Σ pr := {π, κ, succ,, (, ), ;, clone, IR} soll als Alphabet dienen. Parallel dazu ist auch die Arität σ festzulegen: Definition Für i < k N definieren wir zunächst primitv rekursive Ausdrücke (pras) mit folgender Arität und entsprechenden Grundfunktionen als Semantik: σ(π( k ; i )) = k, σ(κ( k )) = k bzw. σ(succ) = 1 Sind F und G i, i < σ(f ) primitiv-rekursive Ausdrücke mit σ(g i ) = σ(g i+1 ) für alle i < σ(f ) 1, so ist clone(f ; G 0 ;... ; G σ(f ) 1 ) ein pra mit Arität σ(g i ) Sind G und H primitiv-reguläre Ausdrücke mit σ(h) = σ(g) + 2, so ist IR(G; H) ein pra mit Arität σ(g) + 1 = σ(h) 1 Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
86 Church-Turing-These 6.2 Rekursive Funktionen Satz Jede primitiv rekursive Funktion ist Turing-berechenbar. Beweis. Alle Grundfunktionen sind Turing-berechenbar, mittels sehr einfacher Maschinen, die wir mit Pr k i, Ko k;0 bzw. Su bezeichnen wollen. Realisieren 1-Band-Maschinen M und T i, i < k, die totalen Funktionen N k f N und N m g i N, i < k, so realisiert folgende (k + 1)-Band- Maschine f g i : i < k : sie simuliert T i, i < k, mit derselben Eingabe w N m, und schreibt die Ergebnisse der Reihe nach auf das Eingabeband von M, die nschließend mit ebendieser Eingabe simuliert wird. Realisieren die 1-Band-Maschinen L und N die totalen Funktionen N k 1 g N h N k+1, so realisiert folgende 2-Band-Maschine f := IR(g, h) : bei Eingabe x, m simuliert sie zunächst L mit Eingabe x und Ausgabe f (x, 0) = g(x). Anschließend simulieret sie m-mal N mit Eingabe x, i, f (x, i) und Ausgabe f (x, i + 1), i < m. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
87 Church-Turing-These 6.2 Rekursive Funktionen Wichtig: Die resultierenden Mehrband-Maschnen im obigen Beweis lassen sich systematisch in 1-Band-Maschinen umwandeln. Kennt man die Codes der 1-Band-Maschinen, die die Argument-Funktionen in der Klon-Komposition bzw. dem IRS realisieren, so läßt sich daraus der Code der 1-Band-Maschine für die Ergebnis-Funktion berechnen! Satz Nicht jede totale Turing-berechenbare Funktion ist primitiv rekursiv. Beweisidee ϕ i, i N, sei eine Aufzählung aller primitiv-rekursiven Funktionen, die Stelligkeit sei σ i = σ(ϕ i ). Definiere die Diagonalfunktion N N durch (n) := ϕ n ( n : i < σ n ) + 1 für n N Nach Konstruktion kann mit keiner einstelligen Funktion der Form ϕ n übereinstimmen: aus = ϕ n folgt (n) = ϕ n (n) + 1 ϕ n (n). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
88 Church-Turing-These 6.2 Rekursive Funktionen Fortsetzung Damit Turing-berechenbar ist, muß die Aufzählung ϕ spezielle Eigenschaften haben. Aus dem Argument n N wollen wir der Code der Turingmaschine berechnet können, die ϕ n realisiert. Dafür verwenden wir primitiv rekursive Ausdrücke: Faßt man deren Alphabet Σ pr als linear geordnete Menge auf, so läßt sich Σ pr nun lexikographisch linear ordnen. Die Reihenfolge der primitvrekursiven Ausdrücke gemäß dieser Ordnung sei durch ϕ codiert. Nun können wir die Turing-Berechenbarkeit von zeigen: Für Eingabe n wird zunächst der pra mit Index n gemäß obiger Auflistung bestimmt; dann wird der Code der zugehörigen TM bestimmt, die die Semantik des pra mit Arität σ realisiert (siehe Folie 87); schließlich wird diese Maschine mit der Eingabe n : i < σ simuliert (Stichwort: universelle Turingmaschine, Kapitel 7); zum Schluß wird das Ergebnis um 1 erhöht. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
89 Church-Turing-These 6.2 Rekursive Funktionen Beispiel (Ackermann-Funktion (Mitte der 1920 er Jahre)) Die von Wilhelm Ackermann gefundene Funktion ist das bekannteste Beispiele für eine totale intuitiv berechenbare Funktion, die nicht primitiv rekursiv ist. (Gabriel Sudan hat etwas früher eine weitere derartige Funktion gefunden; Sudan und Ackermann waren beide Schüler von David Hilbert.) Ackermanns ursprünglich 3-stellige Funktion wurde 1955 von Rózsa Péter zur bekannten zweistelligen Version vereinfacht: m + 1 falls n = 0; A(n, m) := A(n 1, 1) falls n > 0 und m = 0; A(n 1, A(n, m 1)) falls n > 0 und m > 0. ist Turing-berechenbar, da A(n, m) tatsächlich nur von endlich vielen vorher zu berechnenden Werten A(k, l) mit k n und l < m abhängt. Das z.b. auf Wikipedia beschriebene Wachstumsverhalten english deutsch verhindert, dass A primitiv rekursiv sein kann: A wächst zu schnell. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
90 Church-Turing-These 6.2 Rekursive Funktionen Definition h Eine Funktion N 2 N majorisiert eine Funktion N m N, falls ein b N existiert, so dass für jedes a N m mit a := max a i : i < m gilt g(a) < h(a, b) Offenbar kann sich h nicht selber majorisieren, denn andernfalls hätte dies h(b, b) < h(b, b) zur Folge. Satz Die Klasse der von A majorisierten Funktionen umfaßt alle primitiv rekursiven Funktionen. Insbesondere kann A nicht primitiv-rekursiv sein. Beweisidee Man zeigt, analog zu früheren Beweisen, dass A alle Grundfunktionen majorisiert, und dass die Eigenschaft, von A majorisiert zu werden, unter Klon-Komposition und dem IRS erhalten bleibt, Details auf PlanetMath. g Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
91 Church-Turing-These 6.2 Rekursive Funktionen Historische Anmerkungen: Der Begriff primitiv rekursiv geht auf Rózsa Péter zurück: Über den Zusammenhang der verschiedenen Begriffe der rekursiven Funktion, Mathematische Annalen, 110: (1934). Das Konzept muß Anfang bis Mitte der 1920 er Jahre Hilbert und seinen Schülern bekannt gewesen sein: David Hilbert, Über das Unendliche, Mathematische Annalen 95: (1926). Dort wird auf Ackermanns Ergebnis Bezug genommen, dessen Artikel Zum Hilbertschen Aufbau der reellen Zahlen, Mathematische Annalen 99, aber erst 1928 erschien. Hier wird auch Sudans Arbeit Sur le nombre transfini ω ω, Bulletin mathematique de la Societe roumaine des sciences 30: 11 30, (1927) zitiert. Schon Hermann Grassmann beschrieb die induktive Definition von Addition und Multiplikation in seinem Lehrbuch der Arithmetik für höhere Lehranstalten (1861). Diese Idee wurde später unabhängig von Richard Dedekind wiederentdeckt: Was sind und was sollen die Zahlen? (1888). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
92 Church-Turing-These Der unbeschränkte µ-operator 6.2 Rekursive Funktionen Um die Klasse der primitiv rekursiven Funktionen zu vergrößern, führen wir nun den unbeschränkten µ- Operator ein, eine Verallgemeinerung des beschränkten µ- Operators. Er abstrahiert das Programmierkonzept der unbeschränkten sequenziellen Suche oder auch WHILE-Schleife. Eine Übersicht zu µ-operatoren findet sich etwa bei PlanetMath. Definition Für eine k + 1-stellige partielle Funktion N k+1 k -stellige Minimierung N k µg N durch g N definieren wir ihre x µg(x) := min{ m : g(x, m) = 0 j < m. g(x, j) ist definiert } Alternative Schreibweise mit m als gebundener Variable: µ m (g(x, m) = 0). Die Minimierung µf einer totalen Funktion braucht nicht länger total zu µsucc sein: Z.B. ist { } N undefiniert, da succ den Wert 0 nicht annimmt, die zu minimierende Menge also leer ist. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
93 Church-Turing-These 6.2 Rekursive Funktionen Definition Die Klasse der µ- rekursiven Funktionen bildet den Abschluß der Grundfunktionen unter Klon-Komposition, dem IRS und Minimierung. Beispiel Die partielle Vorgängerfunktion N pvor N, n + 1 n, ist µ-rekursiv als Ergebnis der Anwendung des µ- Operators auf eine primitiv-rekursive Funktion (vergl. HA), die wegen ihrer Totalität die orange Extrabedingung automatisch erfüllt: N 2 f N, n, m (n. succ m) + (succ m. n) = eq(n, succ m) Offengar gilt f (n, m) = 0 gdw succ m = n, was nur im Fall n > 0 möglich ist, und zwar für m = n 1. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
94 Church-Turing-These 6.2 Rekursive Funktionen Beispiel sub Die Subtraktion N 2 N, n, m n m sofern m n, läßt sich mit dem IRS darstellen: n 0 = n impliziert g = id N = π0 1. Wegen n (m + 1) = (n m) 1 = h(n, m, sub n, m ) liegt die Wahl von h(a, b, c) = pvor(c) nahe, genauer h = pvor π2 3. Beispiel div Die ganzzahlige Division N 2 N, n, m k sofern k m = n gilt, ist µ- rekursiv. Wir versuchen es zunächst mit f (n, m, k) := sub(n, k m) (oder f (n, m, k) := n. m k + m k. n) Aber dann gilt f (0, 0, 0) = 0, was µ f (0, 0) = 0 zur Folge hätte; das wäre zumindest unkonventionell. Um im Fall m = 0 Undefiniertheit zu erzwingen, können wir m durch succ(pvor m) ersetzen, was für m = 0 undefiniert ist. Andererseits sind im Fall f (n, m, k) = 0 die Werte f (n, m, j) mit j < k definiert, woraus dann µ f (n, m) = k folgt. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
95 Church-Turing-These 6.2 Rekursive Funktionen Satz Jede µ- rekursive Funktion ist Turing-berechenbar. Beweis. Wegen der Turing-Berechenbarkeit primitiv rekursiver Funktionen ist nur zu zeigen, dass der µ- Operator für partielle Funktionen Turing-Berechenbarkeit erhält: ausgehend von i = 0 wird i solange erhöht, bis erstmals f (x, i) = 0 auftritt; das aktuelle Argument i ist dann der Wert von µ f (x) (orange Extrabedingung!). Andernfalls ist µ f (x) undefiniert. Ohne Beweis (sehr technisch) geben wir die Umkehrung an: Satz Jede Turing-berechenbare Funktion ist µ- rekursiv. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
96 Church-Turing-These 6.2 Rekursive Funktionen Der leider sehr technische Beweis des letzten Satzes hat eine vielleicht überraschende Konsequenz: Corollar. (Kleene Normalform) Zu jeder µ- rekursiven Funktion f existieren primitiv-rekursive Funktionen g und h mit f (x) = g ( µ i (h(x) = 0) ) bzw. elementfrei f = g µh Speziell die Ackermann-Funktion muß auf diese Weise darstellbar sein, siehe etwa Mathematcs Stack Exchange. Weitere interessante Überlegungen zur Ackermannfunktion finden sich ebenfalls bei Theoretical Computer Science Stack Exchange. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
97 Unentscheidbare Probleme Kapitel 7 Unentscheidbare Probleme Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
98 7.0 Problemstellung Unentscheidbare Probleme 7.0 Problemstellung Wir brauchen Methoden um festzustellen, dass für ein Problem kein immer terminierender Algorithmus existiert. Formaler: Für eine gegebene formale Sprache L Σ suchen wir nach Beweisen, dass L nicht entscheidbar ist, im Sinne des vorletzten Kaptiels. Beispiel Eingabe: Programmtext P (in ALGOL 68, FORTH,... ), Eingabedaten E Aufgabe: Festzustellen, ob P bei Eingabe E terminiert. Dieses Problem ist nicht entscheidbar! Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
99 Unentscheidbare Probleme 7.1 Universelle Turingmaschine 7.1 Universelle Turingmaschine Zunächst überzeugen wir uns von der Existenz einer programmierbaren Turingmaschine M U. An diese stellen wir folgende Anforderungen: M U soll beliebige TMs simulieren können, deterministische wie nicht-deterministische. Dies ist eine Instanz von Selbstreflektion, ein Algorithmus, der jeden beliebigen Algorithmus ausführt, insbesondere auch sich selbst. Praktische Beispiele dafür sind z.b. Interpreter für Programmiersprachen (JAVA-Bytecode,... ), CPUs (= Interpreter für Maschinencode). Konkret soll M U bei Eingaben der Form c(m), w, c(m) der Binärcode einer TM M, diese Maschine mit Eingabe w {0, 1} simulieren, im Entscheidungs- wie im Berechnungsfall. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
100 Unentscheidbare Probleme 7.1 Universelle Turingmaschine Bemerkung Wir können uns auf das binäre Alphabet Σ = {0, 1} ohne Hilfssymbole beschränken, denn jede Maschine M = Q M, {s k : k < N}, Σ, δ, q 0, q F mit einem Band und Blanksymbol s 0 läßt sich durch eine Maschine M mit B = {#, 0, 1} simulieren: Für s k, k < N, verwenden wir 01 k+1 (letztendlich unär), speziell entspricht 01 dem ursprüngliche Blankzeichen s 0. Vorteil: damit wird der relevante Bandinhalt von M durch ein zusammenhängendes Binärwort auf dem Band von M beschrieben. Den M- Kopf zu bewegen entspricht der Suche nach der nächsten Null. Das Überschreiben von s i durch s j erfordert ggf. die Verschiebung eines Teils des M- Bandinhalts, um keine Lücken entstehen zu lassen. Dabei dient das Blankzeichen # der Maschine M als Randbegrenzer. Weiterhin kann M eine Zustandsmenge der Form Q = Q Q M haben ( zusätzliches Gedächtnis ), deren zweite Komponente über den Zustand der zu simulierenden Maschine M buchführt. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
101 Unentscheidbare Probleme 7.1 Universelle Turingmaschine Nun wollen wir ntms mit n Zuständen über Σ = {0, 1} der Form M = { q i : i < n }, {#, 0, 1}, {0, 1}, δ, q 0, q n 1 mit q n 1 := q F und t Übergangsregeln ein Binärwort der Form c(m) = 1110 n 1w 0 1w w t (1) zuordnen, wobei die Wörter w j, j < t, den Regeln aus δ entsprechen. Ähnlich wie oben codieren wir den Zustand q i durch 10 i+1, i < n, und die möglichen Aktionen gemäß #, 0, 1, L, R 10, 10 2, 10 3, 10 4, 10 5 Übergänge lassen sich nun darstellen als Binärwörter w j aus {10 i+1 : i < n}{10, 10 2, 10 3 }{10 i+1 : i < n}{10, 10 2, 10 3, 10 4, 10 5 } In c(m) werden deren Grenzen durch zwei Einsen markiert. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
102 Unentscheidbare Probleme 7.1 Universelle Turingmaschine Beispiel Eine Binärmaschine M 0 mit zwei Übergängen hat einem Code der Form c(m) = w 0 1w Etwa Satz q 0, 1 q 1, L entspricht w 0 = q 1, # q 1, 1 entspricht w 1 = Die Sprachen xc = { c(m) : M ist eine binäre xtm }, x {n, d}, der Codes (nicht)deterministischer TMs sind entscheidbar. Beweis. Das entspricht einem Syntaxcheck: Randbegrenzer 111 überprüfen, Zustandszahl n auslesen, Übergangscodes w j separieren und auf Konsistenz prüfen. Im deterministischen Fall ist noch sicherzustellen, dass verschiedene Übergänge verschiedene linke Seiten haben. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
103 Unentscheidbare Probleme 7.1 Universelle Turingmaschine Beispiel Wir erinnern an die nicht semi-entscheidbare Sprache L code := { w {0, 1} : w = c(m) für eine TM M mit w / L(M) } Die Maschine M 0 aus obigem Beispiel akzeptiert ihren eigenen Code, da sie nach einem Schritt im Endzustand q 1 hält. Folglich gilt c(m 0 ) / L code. Eine ähnliche Maschine M 1 mit den Übergängen q 0, 1 q 1, # und q 1, # q 1, R erfüllt hingegen c(m 1 ) L code, da sie nie hält. Wir rekapitulieren die Anforderungen an M U für legale Eingaben c(m)w : M U hält auf c(m)w gdw. M hält auf w, und wenn die Maschinen halten, dann mit identischer Ausgabe. M U akzeptiert c(m)w gdw. M akzeptiert w. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
104 Unentscheidbare Probleme 7.1 Universelle Turingmaschine Der Einfachheit halber konzipieren wir M U erst als 3-Band-Maschine. Diese kann gemäß unserer Überlegungen in Kapitel 5 auch als 1-Band-Maschine realisiert werden; erst diese liefert den Code c(m U ). Auf B 0 steht zunächst die Eingabe c(m)w. Der vordere Teil c(m) wird nach B 1 verschoben und einem Syntaxcheck unterzogen. Damit verbleibt die Eingabe w für M auf B 0, das ab jetzt die Rolle des einzigen Bandes von M spielt. Auf B 2 wird über den aktuellen Zustand q i von M mittels i + 1 Nullen buchgeführt; zunächst wird hier eine Null geschrieben. Die Simulation von M liest zunächst auf B 0 ein Symbol aus {#, 0, 1}. In Verbindung mit der Zustandsinformation auf B 2 wird nichtdeterministisch nach einem passenden Übergang auf B 1 gesucht. Gibt es keinen solchen, so hält M U, wobei genau dann der Finalzustand von M U anzunehmen ist, wenn 0 n auf B 2 steht. Andernfalls wird gemäß der rechten Seite der Zustandsindex auf B 2 angepaßt, die entsprechende Aktion auf B 0 ausgeführt, und der Kopf auf B 1 z.b. am Rand des Codes c(m) geparkt. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
105 7.2 Das Halteproblem Unentscheidbare Probleme 7.2 Das Halteproblem In Kapitel 5 war L halt := { c(m)w : M TM, die bei Eingabe w hält } erwähnt worden, aber erst jetzt ist die Binärcodierung von TMs verfügbar. Problem: Bei deterministischen Maschinen läßt jede Eingabe höchstens eine Berechnung zu, somit ist klar, was mit M hält bei Eingabe w gemeint ist. Aber wie steht s mit nichtdeterministischen Maschinen? Lösung: Wie in Kapitel 5 gesehen, besitzt jede ntm M eine sog. Determinisierung M, die M simuliert. Zwar war M als 4-Band Maschine beschrieben worden, aber diese kann systematisch in eine TM M d mit einem Band und Bandalphabet {#, 0, 1} transformiert werden. Beobachtung 0: M d bzw. M hält genau dann bei Eingabe w, wenn entweder w L(M), oder jeder Berechnungspfad in M für w terminiert, ohne zu akzeptieren. Beobachtung 1: Die Funktion c(m) c(m d ) ist Turing-berechenbar. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
106 Unentscheidbare Probleme 7.2 Das Halteproblem Definition L halt := { c(m)w : M TM, und M d hält bei Eingabe w } Satz Die Sprache L halt ist semi-entscheidbar, aber nicht entscheidbar. Beweis Semi-Entscheidbarkeit: via Kombination von Syntaxcheck mit M U : v v = c(m)w? Ja berechne c(m d ) c(m d )w hält M U? Ja v akz. Nein v n. akz. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
107 Unentscheidbare Probleme 7.2 Das Halteproblem Beweis (Forsetzung). Entscheidbarkeit: Annahme: L halt ist entscheidbar. Dann existiert eine TM M halt, die immer hält und L(M halt ) = L halt erfüllt. Wir konstruieren daraus wie folgt eine dreiteilige TM M code mit L(M code ) = L code, die immer hält: M code : w w = c(m)? Nein Ja c(m d )w akz. M halt? Nein Ja c(m d )w akz. M U? Nein Ja w n. akz. w n. akz. w akz. w akz. Nach erfolgreichem Syntaxcheck w = c(m) wird die Maschine M halt auf die Eingabe c(m d )w angewendet. Hält M d (also auch M ) nicht auf Eingabe w, so wird w = c(m) von M code akzeptiert. Andernfalls testet M U, ob M d (also auch M ) die Eingabe w akzeptiert. Genau dann wird w von M code nicht akzeptiert. Aber dies ist ein Widerspruch zur Nichtentscheidbarkeit von L code. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
108 Unentscheidbare Probleme 7.2 Das Halteproblem Corollar Das Komplement von L halt ist nicht semi-entscheidbar. Beweis. Wegen der Semi-Entscheidbarkeit von L halt ist die Semi-Entscheidbarkeit des Komplements äquivalent zur Entscheidbarkeit von L halt. Wie sieht das Komplement von L halt überhaupt aus? L halt = { v {0, 1} : ( M. v = c(m)w ) = M d hält nicht auf w } Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
109 Unentscheidbare Probleme 7.3 Weitere unentscheidbare Probleme 7.3 Weitere unentscheidbare Probleme Die obige Beweistechnik ist unter dem Namen Reduktion bekannt, da die Frage der Entscheidbarkeit eines neuen Problems auf die der Entscheidbarkeit eines bekannten Problems reduziert wird. Ein ähnliches Verfahren wird auch in Kapitel 8, Komplexitätstheorie, nützlich sein. Studierende sollen diese Beweistechnik beherrschen und einen Vorrat an unentscheidbaren Problemen kennen. Reduktionsschema Gegeben: eine formale Sprache L {0, 1}. Zu zeigen: L ist nicht entscheidbar. Annahme: L ist entscheidbar. Dann exisiert eine TM M mit L(M) = L, die immer hält. Verfahren: Konstruiere mittels M eine TM M für eine bekanntermaßen unentscheidbare Sprache L, Widerspruch! Damit kann L nicht entscheidbar gewesen sein. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
110 Unentscheidbare Probleme Das Akzeptanzproblem 7.3 Weitere unentscheidbare Probleme Satz Die Sprache L acc := { c(m)w : M TM mit w L(M) } ist unentscheidbar. Beweis. Wir nehmen an, die TM M acc entscheidet L acc und hält immer. Idee: Eine TM M so modifizieren, dass sie jede Eingabe w akzeptiert, bei der sie hält. Man kann die Nichtfinalzustände nicht zu Finalzuständen machen, aber man kann einen neuen Endzustand q n hinzufügen und neue Übergänge q i, s q n, s, sofern keine M-Übergänge aus q i, s existieren; die resultierende TM, bezeichnen wir mit M. Die Funktion c(m) c( M) ist natürlich Turing-berechenbar. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
111 Unentscheidbare Probleme 7.3 Weitere unentscheidbare Probleme Beweis (Fortsetzung). Nun konstruieren wir eine zweiteilige TM M halt, die L halt entscheidet: M halt : u u = c(m)w? Nein Ja c( M)w akz. M acc? Nein Ja u akz. M halt u n. akz. u n. akz. hält auf jede Eingabe, da jede Teilmaschine dies tut. Nach erfolgreichem Syntaxcheck ist festzustellen, dass M auf w genau dann hält, wenn M die Eingabe w akzeptiert. Da L halt aber nicht entscheidbar ist, kann M acc nicht existieren. Andererseits ist das Akzeptanzproblem für Kellerautomaten entscheidbar: Kellerautomaten sind analog binär codierbar und können algorithmisch in cfg n umgewandelt werden, sogar in CNF. Der CYK-Algorithmus entscheidet dann das Akzeptanzproblem. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
112 Unentscheidbare Probleme Akzeptanz des leeren Worts 7.3 Weitere unentscheidbare Probleme Satz Die Sprache L ε := { c(m) : M TM mit ε L(M) } ist unentscheidbar. Beweis. Wir nehmen an, die TM M ε entscheidet L ε und hält immer. Idee: Die Akzeptanz von w L(M) durch M auf die Akzeptanz von ε durch eine TM M w zurückführen. Diese enthält alle Zustände von M, aber mit um m := w erhöhtem Index, sowie m neue Zustände q i, i < m. Mit Hilfe von Übergängen q i, # q i, s i sowie q i, s i q i+1, R, i < m, und q m 1, s m 1 q m, s m 1 wird w = s 0 s 1... s m 1 von links nach rechts auf das leere Band geschrieben. Dann wird M mit um m erhöhten Zustandsindizes ausgeführt. Die Funktion c(m), w c(m w ) ist natürlich Turing-berechenbar. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
113 Unentscheidbare Probleme 7.3 Weitere unentscheidbare Probleme Beweis (Fortsetzung). Nun konstruieren wir eine zweiteilige TM M acc, die L acc entscheidet: M acc : u u = c(m)w? Nein Ja c(m w ) akz. M ε? Nein Ja u akz. M acc u n. akz. u n. akz. hält auf jede Eingabe, da beide Teilmaschinen dies tun. Nach erfolgreichem Syntaxcheck ist festzustellen, dass w genau dann von M akzeptiert wird, wenn M w die Eingabe ε akzeptiert. Da L acc aber nicht entscheidbar ist, kann M ε nicht existieren. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
114 Unentscheidbare Probleme Terminierung eines Algorithmus 7.3 Weitere unentscheidbare Probleme Satz Die Sprache L term := { c(m) : M TM, so dass M d unentscheidbar. auf jede Eingabe hält } ist Beweis. Wir nehmen an, die TM M term entscheidet L term und hält immer. Idee: Einschränkung des Verhaltens einer TM M auf ihr Verhalten bei leerer Eingabe: die modifizierte Maschine M soll zunächst die Eingabe löschen, mit Hilfe von Übergängen q 0, s q 1, # q 0, L, s Σ, sowie q 0, # q 2, #, und bei leerem Band weiter wie M mit um 2 erhöhten Zustandsindizes verfahren. Die Funktion c(m) c( M) ist natürlich Turing-berechenbar. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
115 Unentscheidbare Probleme 7.3 Weitere unentscheidbare Probleme Beweis (Fortsetzung). Nun konstruieren wir eine dreiteilige TM M ε, die L ε entscheidet: M ε : u u = c(m)? Nein Ja c( M d ) akz. M term? Nein Ja c(m d ) akz. M U? Nein Ja u akz. u n. akz. u n. akz. u n. akz. M ε hält auf jede Eingabe, da die ersten beiden Teilmaschinen dies tun und die dritte nur bei garantierter Terminierung aufgerufen wird. Nach erfolgreichem Syntaxcheck für M bedeutet die Nichtakzeptanz von c( M d ) durch M term, dass M d bei Eingabe ε nicht hält, und M folglich ε nicht akzeptiert. Im Ja -Fall hält M d bei Eingabe ε, es ist aber noch zu überprüfen, ob ε auch akzeptiert wird. Das leistet M U mit Eingabe c(m d ). Im positiven Fall akzeptiert auch M das leere Wort, d.h., c(m) L ε. Die Unentscheidbarkeit von L ε liefert den gesuchten. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
116 7.4 Satz von Rice Unentscheidbare Probleme 7.4 Satz von Rice Wir brauchen ein effektiveres Verfahren, die Nichtentscheidbarkeit von Teilsprachen von dc oder nc und verwandten Sprachen festzustellen. Definition Für eine Eigenschaft S formaler Sprachen setze L S := { c(m) : M TM und L(M) hat Eigenschaft S } Wir nennen S trivial, falls keine Sprache der Form L(M) die Eigenschaft S erfüllt, oder jede solche Sprache dies tut. Für triviales S, etwa L ist (nicht) semientscheidbar, ist L S Interessanter ist die Umkehrung: Satz von Rice Für nicht-triviale Eigenschaften S ist die Sprache L S entscheidbar. nicht entscheidbar. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
117 Unentscheidbare Probleme 7.4 Satz von Rice Damit erweisen sich z.b. folgende Sprachen als unentscheidbar: { c(m) : M TM und L(M) regulär } { c(m) : M TM und L(M) kontextfrei } { c(m) : M TM und L(M) } Was die vorangehenden ausführlichen Beispiele angeht, so läßt sich etwa L ε mit Hilfe der Eigenschaft ε L(M) charakterisieren. Dagegen ist L term kein Beispiel für die Anwendbarkeit des Satzes von Rice, da die Forderung, M möge auf jede Eingabe halten, keine Eigenschaft der Sprache L(M) ist, denn M ist durch L(M) nicht eindeutig bestimmt. L code ist nicht semi-entscheidbar, geschweige denn entscheidbar. Dennoch könnte man die Eigenschaft c(m) / L(M) betrachten: dies ist ebenfalls keine legale Eigenschaft, die eine Sprache L {0, 1} haben kann oder nicht! Denkbar wäre die Existenz mehrerer TMs, die L akzeptieren, und von denen manche Codes zu L gehören und andere nicht. Insofern ist auch hier der Satz von Rice nicht anwendbar! Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
118 Unentscheidbare Probleme 7.4 Satz von Rice Beweis des Satzes von Rice. S sei nichttrivial. Falls die Eigenschaft S nicht hat, existiert eine TM M 0, so dass L(M 0 ) die Eigenschaft S besitzt. Für eine beliebige TM M und w {0, 1} sei M w die folgende Verknüpfung von M 0 mit M : wenn M 0 ihre Eingabe akzeptiert, ist danach M mit Eingabe w auszugeführen. Genauer: nachdem M 0 akzeptiert hat, ist das Band zu löschen, dann ist w auf das leere Band zu schreiben, und schließlich M auszuführen. Damit ist die Abbildung c(m), w c(m w ) Turing-berechenbar (Details?), und es gilt { L(M w L(M 0 ) falls w L(M) ) = sonst Annahme: L S ist entscheidbar. Dann existiert eine TM M S mit L(M S ) = L S, die immer hält. Nun konstruieren wir eine zweiteilige TM M acc, die L acc entscheidet: Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
119 Unentscheidbare Probleme 7.4 Satz von Rice Beweis (Fortsetzung). M acc : u u = c(m)w? Nein Ja c(m w ) akz. M S? Nein Ja u akz. M acc u n. akz. u n. akz. hält auf jede Eingabe, da beide Teilmaschinen dies tun. u L(M acc ) gdw u = c(m)w c(m w ) L(M S ) = L S gdw u = c(m)w L(M w ) hat Eigenschaft S gdw u = c(m)w L(M w ) gdw u = c(m)w L(M w ) = L(M 0 ) gdw gdw u = c(m)w w L(M) u L acc Also L(M acc ) = L acc, Widerspruch. Damit existiert M acc ist nicht entscheidbar. nicht und L acc Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
120 Unentscheidbare Probleme 7.4 Satz von Rice Beweis (Fortsetzung). Falls die Eigenschaft S hat, betrachten wir die deren Negation S. Weil die Eigenschaft S nicht hat, die ebenso wie S nichttrivial ist, folgt wie oben, dass L S nicht entscheidbar ist. Wir wissen aber bereits, dass die entscheidbaren Sprachen unter Komplementbildung abgeschlossen sind. Also gilt das auch für die nicht entscheidbaren Sprachen. Weiterhin sind die entscheidbaren Sprachen unter endlichen Durchschnitten abgeschlossen. Wegen L S = L S nc unentscheidbar muß auch L S unentscheidbar sein, folglich also auch L S. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
121 Komplexität von Algorithmen Kapitel 8 Komplexität von Algorithmen Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
122 Komplexität von Algorithmen 8.0 Übersicht 8.0 Übersicht Die Klasse der algorithmisch lösbaren (= entscheidbaren) Probleme soll jetzt detaillierter untersucht werden. Das wesentliche Unterscheidungsmerkmal wird sein, ob ein Problem effizient lösbar ist in dem Sinne, daß die Laufzeit einer dtm, die das Problem löst, durch ein Polynom in der Größe der Eingabe beschränkt ist. Die zugehörige Klasse heißt P. Beispiel Eingabe: ungerichteter Graph G = V, E Aufgabe: entscheiden, ob G 2-färbbar ist, d.h., ob die Knoten so mit zwei Farben gefärbt werden können, daß jede Kante verschiedenfarbige Endpunkte hat. Beispiel Eingabe: natürliche Zahl n > 0 Aufgabe: entscheiden, ob n eine Primzahl ist. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
123 Komplexität von Algorithmen 8.0 Übersicht Wenn hingegen eine potentielle Lösung in polynomialer Zeit von einer dtm überprüft werden kann, gehört das Problem zu NP. Beispiel Eingabe: ungerichteter Graph G = V, E Aufgabe: entscheiden, ob G 3-färbbar ist. Für eine potentielle 3-Färbung V f 3 = {0, 1, 2} sind für jede Kante die Farben der Endpunkte zu vergleichen. Beispiel Eingabe: n geographische Orte ( Städte ) und ihre Entfernungen (bzw. Reiskosten), sowie eine Zahl K > 0 Aufgabe: entscheiden, ob es eine Rundreise gibt, die alle Städte genau einmal besucht und deren Länge (oder Preis) durch K beschränkt ist. Für eine Permutation der Orte ist die Länge (der Preis) der zugehörigen Rundreise zu berechnen und mit K zu vergleichen. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
124 Komplexität von Algorithmen 8.0 Übersicht Offenes Problem Stimmt P mit NP überein? Millennium-Problem Die schwierigsten Probleme innerhalb der Klasse NP heißen NP- vollständig. Gelingt der Nachweis, dass eins von ihnen zu P gehört, dann folgt P = NP. (Es gilt als sehr unwahrscheinlich, dass ein effizienter Algorithmus für ein NP- vollständiges Problem gefunden werden kann.) Es sind inzwischen sehr viele NP- vollständige Probleme bekannt: Garey, Michael R.; Johnson, David S. (1979), Computers and Intractability: A Guide to the Theory of NP-Completeness, W. H. Freeman; Eine ständig aktualisierte Liste findet sich bei Pierluigi Crescenzi, and Viggo Kann (Eds.): A compendium of NP optimization problems Wikipedia Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
125 Komplexität von Algorithmen 8.0 Übersicht Wiederholung: Groß-O-Notation Wir wollen Funktionen N R + in Bezug auf ihr Wachstum vergleichen. Informell soll O(g) die Klasse aller Funktionen sein, die asymptotisch (also für große Werte von n N ) nicht schneller wachsen als g. Genauer: Definition Beispiel f O(g) gdw c R +. n 0 > 0. n n 0. f (n) c g(n) Jedes Polynom p vom Grad t erfüllt p O(n t ). Denn aus p(n) = p i n i = n ( t p i /n k i = n t p t + ) p i /n t i i t i t i<t folgt sofort p(n) (p t + kt)n t für k max{p i : i < t}. Andererseits gilt 2 n / O(n t ), denn lim n n t /2 n = 0. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
126 Komplexität von Algorithmen Beispiele effizienter Algorithmen (für Graphen) Beispiele effizienter Algorithmen (für Graphen) Vor einer genaueren Analyse graphentheoretischer Probleme ist zu klären, wie Graphen sinnvoll als Eingaben für TMs codiert werden können. Definition Ein gerichteter Graph G = V, E besteht aus einer Menge V von Knoten (Vertices) und einer Relation E V V. Paare u, v E werden graphisch als gerichtete Kanten (Edges) oder Pfeile u v dargestellt, während E als binäre Adjazenzmatrix über V aufgefaßt werden kann { 1 falls u, v E E u,v = 0 sonst G heißt ungerichtet, falls die Relation E symmetrisch ist. Dann werden in der graphischen Darstellung die Hin- und Rückpfeile u v durch eine ungerichtete Kante u v ersetzt. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
127 Komplexität von Algorithmen Beispiele effizienter Algorithmen (für Graphen) Anstelle von Adjazenzmatrizen kann man auch sog. Adjazenzlisten verwenden, in denen für jeden Knoten seine direkten Nachfolger gespeichert sind, im Wesentlichen die Positionen der Einsen aus der entsprechenden Zeile der Adjazenzmatrix: Beispiel (1) 1 (1, 2, 4) 2 ( ) 3 (0) 4 (2, 3) Während die Größe der Adjazenzmatrix durch V 2 gegeben ist, ist der Wert für die Darstellung mittels Adjazenzlisten mit E + V vielleicht präziser, wegen E O( V 2 ) aber von derselben Größenordnung. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
128 Komplexität von Algorithmen Beispiele effizienter Algorithmen (für Graphen) Definition Einer topologischen Sortierung eines gerichteten Graphen G = V, E mit n Knoten ist eine Funktion V ord n = {0,..., n 1} mit der Eigenschaft u, v E impliziert ord(u) < ord(v) Beispiel Die neue Kante von 4 nach 1 zerstört die topologische Sortierbarkeit. Allgemein kann ein gerichteter Graph genau dann topologisch sortiert werden, wenn er keine Zyklen hat (Test für die Existenz von Zyklen). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
129 Komplexität von Algorithmen Beispiele effizienter Algorithmen (für Graphen) Beispiel (Naiver Algorithmus für Topologisches Sortieren) Eingabe: Gerichteter Graph G = (V, E) mit n Knoten und k Kanten Ausgabe: Topologische Sortierung V ord n, falls G azyklisch 1: {(0) Initialisierung} 2: i := 0 { i : die Zahl, die ord zuweisen soll} 3: W := V { W : die Menge der noch nicht bearbeiteten Knoten} 4: {(1) Rekursionsschritt} 5: while ein Knoten x W ohne Vorgänger in W existiert do 6: ord(x) := i 7: i := i + 1 8: W := W {x} 9: end while {Zyklus falls W, sonst topologische Sortierung} Korrektheit: klar. Laufzeit: (unter Verwendung von Adjazenzmatrizen) Die Befehle in Zeilen 3,2,6,7 und 8 benötigen konstante Zeit A. Schleife 5 wird m 2 -mal durchlaufen, mit m = n,..., 1, da W schrumpft; in der Rest-Matrix über W ist eine 0- Spalte zu finden, in Zeit K. n n T (n) = 2A + (Km 2 + 3A) = 2A + K m 2 + 3An O(n 3 ) m=1 m=1 Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
130 Komplexität von Algorithmen Beispiele effizienter Algorithmen (für Graphen) Beispiel (Verbesserter Algorithmus für topologisches Sortieren) 1: {(0) Initialisierung} 2: i := 0 {Laufzeit A, i : die Zahl, die ord zuweisen soll} { A } 3: for alle Knoten v in V do 4: In[v] := 0 {Laufzeit A, In[v] : Vorgängeranzahl von v } 5: end for {Laufzeit A n } { A n } 6: for alle Knoten u in V do 7: for alle Knoten v mit einer Kante (u, v) in E do 8: In[v] := In[v] + 1 {Laufzeit A } 9: end for {Laufzeit A k(v), k(v) Länge der Nachfolgerliste von v } 10: end for {Laufzeit A k bei Adjazenzlisten} { A k } 11: U := {Laufzeit A, U - Menge aller Knoten v mit In[v] = 0 } { A } 12: for alle Knoten v in V do 13: if In[v] = 0 then 14: U := U {v} 15: end if {Laufzeit 2A } 16: end for {Laufzeit 2A n } { 2A n } 17: {(1) Rekursionsschritt} 18: while U einen Knoten v enthält do 19: U := U {v} ; ord(v) := i ; i := i + 1 {Laufzeit 3A } 20: for alle Knoten w mit (v, w) E do 21: In[w] := In[w] 1 {Laufzeit A } 22: if In[w] = 0 then 23: U := U {w} 24: end if {Laufzeit 2A } 25: end for {Laufzeit 3A k(v) } 26: end while {Laufzeit 3A (n + k), Zyklus falls i < n, sonst topologische Sortierung} { 3A (n + k) } Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
131 Komplexität von Algorithmen Beispiele effizienter Algorithmen (für Graphen) Beispiel (Fortsetzung) Gesamtlaufzeit: T (n, k) = 4A(n + k) + 2A(n + 1) O(n + k). Die FOR-Schleifen in Zeilen 6 und 7 garantieren nur in dieser Reihenfolge eine Laufzeit von A k in Zeile 10. Bei umgekehrter Reihenfolge, oder Verwendung von Adjazenzmatrizen, ergäbe sich hier A n 2. Ein ähnliches Argument liefert für die FOR-Schleife in Zeile 20 innerhalb der WHILE-Schleife in Zeile 18 den Term 3A k in Zeile 26. Im Falle von Adjazenzmatrizen stünde hier 3A n 2. Damit wäre bei Verwendung von Adjazenzmatrizen die Laufzeit gegeben durch T (n) = 4A (n + n 2 ) + 2A (n + 1) O(n 2 ). Bei der Bestimmung der Effizienz kommt es also darauf an, wie man die Größe der Eingabe definiert: Hinsichtlich der Knotenzahl V läuft der Algorithmus mit Adjazenzmatrizen in quadratischer Zeit, verglichen mit kubischer Zeit des naiven Algorithmus. Hinsichtlich der Summe V + E läuft der obige Algorithmus in linearer Zeit. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
132 Komplexität von Algorithmen Beispiele effizienter Algorithmen (für Graphen) Beispiel (Fortsetzung) Korrektheit: Wenn G azyklisch ist, gibt es in jeder Runde Knoten ohne Vorgänger. Folglich gilt U, solange noch unsortierte Knoten existieren. Erfolgt in Zeile 19 die Zuweisung ord(v) = i, so wurden allen Vorgängern von v in früheren Schritten kleinere Werte zugewiesen. Aus obiger Analyse darf man allerdings nicht den Schluss ziehen, die Codierung gerichteter Graphen mittels Adjazenzlisten wäre der Codierung mittels Adjazenzmatrizen überlegen, zumal E O( V 2 ) gilt. Beispiel v1 w4 x3 u0 y2 Adjazenzlisten: u (v),, v (w, x), w (()),, x (w),, y (x),, Knoten i In[i] U? In[i] U? In[i] U? u 0 yes v 1 0 yes w yes x yes y 0 yes Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
133 Komplexität von Algorithmen Beispiele effizienter Algorithmen (für Graphen) Nun wenden wir uns der 2-Färbung ungerichteter Graphen zu. Satz Ein ungerichteter Graph ist genau dann 2-färbbar, wenn er keine Zyklen ungerader Länge besitzt. Beweis. Zyklen ungerader Länge sind offensichtlich nicht 2-färbbar, dürfen somit nicht als Untergraphen auftreten. Gibt es keine Zyklen ungerade Länge, so färben wir pro Komponente einen Knoten v und alle Knoten in gerader Entfernung von v rot, und alle übrigen Knoten blau. Nach Voraussetzung haben alle Verbindungen zwischen je zwei gleichfarbigen Knoten nur gerade Längen, während alle Verbindungen zwischen Knoten unterschiedlicher Farbe von ungerader Länge sind. Idee für Implementieung: Schichtweises Vorgehen: färbe gewähltes v rot, alle Nachbarn blau, die ungefärbten Nachbarn dieser Menge rot usw. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
134 Komplexität von Algorithmen Beispiele effizienter Algorithmen (für Graphen) Beispiel (Algorithmus für 2-Färbung) Eingabe: ungerichteter Graph G = V, E Ausgabe: eine 2-Färbung V = ROT + BLAU, falls eine existiert 1: {(0) Initialisierung} 2: ROT := ; BLAU := ; F := ; {Laufzeit 3A, F : Menge der Knoten in Bearbeitung} { O(1) } 3: {(1) Rekursionsschritt} 4: while v V do 5: V := V {v} ; ROT := ROT + {v} ; F := F + {v} {Laufzeit 4A } 6: while w F do 7: for alle Knoten u V mit {u, w} E do 8: if w ROT then 9: BLAU := BLAU + {u} 10: else 11: ROT := ROT + {u} 12: end if {Laufzeit 2A } 13: F := F + {u} ; V := V {u} {Laufzeit 2A } 14: end for 15: F := F {w} {Laufzeit A } 16: end while 17: end while { O(n + k) } 18: {(2) Ausgabe} 19: Überprüfen, ob BLAU oder ROT eine Kante enthalten { O(n + k) } Die Laufzeit ist linear in V + E, da jeder Knoten und jede Kante einmal angefasst werden. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
135 Komplexität von Algorithmen Beispiele effizienter Algorithmen (für Graphen) Beispiel (Fortsetzung) Korrektheit: Zu jedem Zeitpunkt liegt jeder Knoten v entweder in V, in ROT oder in BLAU. Sobald V =, ist somit jeder Knoten gefärbt. Falls ROT und BLAU keine Kante enthalten, liegt eine 2-Färbung vor. Gehören die Endpunkte von u, w E zu ROT ( BLAU ), sind beide durch einen Weg (un)gerader Länge mit dem Startknoten v verbunden (Induktion). Damit liefern diese Wege samt u, w einen Zyklus ungerader Länge, Widerspruch. Beispiel a c e b d f Knoten a V a F c F d F b F e F f F V a... f b... f d, e, f f F a b, c b, d, e b, e, f e, f f ROT a a a.d.e a.d.e a.d.e a.d.e a.d.e BLAU b, c b, c b, c, f b, c, f b, c, f b, c, f Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
136 Komplexität von Algorithmen Beispiele effizienter Algorithmen (für Graphen) Beispiel (Algorithmus für 3-Färbung) Eingabe: Ungerichteter Graph G = (V, E) mit n Knoten und k Kanten Ausgabe: G mit 3 Farben färben Es ist kein effizienter Algorithmus bekannt (Begründung später). Wenn man alle möglichen Färbungen auf ihre Korrektheit prüfen will, ergibt sich eine Laufzeit O(3 n ). Andererseits kann man nichtdeterministisch eine potentielle Färbung raten und diese deterministisch überprüfen. Beispiel (Algorithmus für gerichteten Weg) Eingabe: Gerichteter Graph G = V, E, Knoten v, w V Aufgabe: entscheiden, ob gerichteter G - Weg von v nach w existiert Idee: iterativ die von v aus erreichbaren Knoten bestimmen und in einer Hilfs-Menge M sammeln; wenn w am Ende zu M gehört, existiert ein gerichteter Weg von v nach w. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
137 Komplexität von Algorithmen Beispiele effizienter Algorithmen (für Graphen) Beispiel (Fortsetzung) 1: {(0) Initialisierung} 2: M := {v} { M : die von v erreichbaren Knoten} 3: {(1) Rekursionsschritt} 4: while eine Kante x, y mit x M und y / M existiert do 5: M := M + {y} 6: E := E { x, y } 7: end while 8: {(2) Ausgabe} 9: JA, falls w M, sonst NEIN Korrektheit: Klar! Laufzeit: Entscheidend ist die WHILE-Schleife in Zeilen 4 7. Bei Verwendung von Adjazenzlisten werden maximal n- mal alle k Kanten getestet, was in einer Laufzeit von O(n k) resultiert. Im Falle von Adjazenzmatrizen ist stattdessen eine (n n)- Matrix maximal n- mal nach Einsen zu durchsuchen, also ergibt sich O(n 3 ). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
138 Komplexität von Algorithmen Weitere Vorüberlegungen Weitere Vorüberlegungen Wir betrachten zunächst 1-Band TMs wie auf Folie 15.Im Allgemeinen soll die Codierung der Eingaben vernünftig sein, etwa: Zahlen werden binär (oder dezimal) codiert (so dass ihr Wert exponentiell in der Länge der Darstellung ist), aber nicht unär (wobei der Wert mit der Länge übereinstimmt). Graphen werden mittels Adjazenzmatrizen oder -listen codiert. Teilmengen n- elementiger Mengen werden als binäre n- Tupel codiert. Besteht die Eingabe aus mehreren Teilen, ist darauf zu achten, dass diese Teile geeignet voneinander getrennt werden, vergl. die Codierung binärer TMs auf Folie 101. Ein wesentliches Problem der Aussagenlogik bestand darin, die Erfüllbarkeit von Formeln ϕ(x 0,..., x n 1 ) in den Variablen x i, i < n, zu überprüfen. Besonders nützlich waren dabei Formeln in einer speziellen Normalform. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
139 Komplexität von Algorithmen Weitere Vorüberlegungen Zur Erinnerung: Definition Eine aussagenlogische Formel ϕ liegt in konjunktiver Normalform (KNF) vor, wenn ϕ die Konjunktion von Klauseln K i, i < n, ist; jede Klausel K i die Disjunktion von Literalen L ij, j < m i, ist; jedes Literal L ij entweder eine Variable oder Negation einer solchen ist. Ist die Anzahl der Literale pro Klausel durch m N beschränkt, sprechen man von m-knf. Jede aussagenlogische Formel kann in eine äquivalente Formel in KNF umgewandelt werden, etwa unter Verwendung der Distributivgesetze und der de Morgan schen Regeln. Ein Beispiel in 2-KNF ist etwa ϕ = ( x y) ( x z) (x z) Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
140 Komplexität von Algorithmen Weitere Vorüberlegungen In Analogie zur m- Färbbarkeit von Graphen stellt sich im Fall logischer Formeln die Frage der m- Erfüllbarkeit: Beispiel Das E-Problem m-sat hat als Eingabe eine Formel ϕ in m-knf. Zu entscheiden ist, ob diese Formel erfüllbar ist, in dem Sinne, dass eine Belegung der auftretenden Variablen mit 0 (bzw. false ) und 1 (bzw. true ) existiert, so dass ϕ den Wert 1 ( true ) erhält. In Abschnitt 8.3 werden wir mittels Reduktion feststellen, dass 2- Sat zu P gehört, während die NP- Vollständigkeit von 3- Sat in Abschnitt 8.4 nachgewiesen wird. Das unbeschränkte Erfüllbarkeitsproblem Sat ist natürlich ebenfalls NP- vollständig (Cooke scher Satz). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
141 Komplexität von Algorithmen 8.2 Die Komplexitätsklassen P und NP 8.2 Die Komplexitätsklassen P und NP Unter P ( NP ) wollen wir die Klasse aller E-Probleme verstehen, die von einem (nicht-)deterministischen Algorithmus in polynomialer Zeit gelöst werden können. Dabei soll die konkrete Implementierung des Algorithmus irrelevant sein, d.h., P und NP sind unabhängig vom verwendeten Algorithmusmodell. Wenn dies gewährleistet ist, kann man ein bequemes Modell wählen, etwa TMs mit mehreren Bändern. Definition Eine Turing-berechenbare Funktion N t N wird als Zeitkomplexität einer ntm M bezeichnet, wenn M für jede Eingabe w Σ n immer nach höchstens t(n) Schritten hält. D. h., die Tiefe des Berechnungsbaums von w ist durch t( w ) beschränkt. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
142 Komplexität von Algorithmen 8.2 Die Komplexitätsklassen P und NP Bemerkung Gelegentlich wird für die Zeitkomplexität nichtdeterministischer Maschinen M gefordert, dass nur für Wörter aus L(M) eine (etwa die kürzeste) akzeptierende Berechnung der Länge nach durch t( w ) beschränkt sein muß. Dies folgt sofort aus der obigen Definition. Umgekehrt kann man M um einen Schrittzähler ergänzen und Berechnungen von w abbrechen, sobald sie mehr als t( w ) Schritte brauchen. Dabei sind w und t( w ) vorher zu bestimmen, was O( w + T ( w )) Schritte braucht, wobei T die Zeitkomplexität einer dtm ist, die t berechnet. Die Zeitkomplexität der modifizierten Maschine liegt dann in O(n + T (n) + t(n)). Dies stimmt nur mit O(t(n)) überein, falls {n, T (n)} O(t(n)) gilt. Damit sind beide Definitionen der Zeitkomplexität nicht äquivalent, aber sofern es sich bei t und T um Polynome handelt, bleibt die Zeitkomplexität polynomial, was für unsere Zwecke ausreicht. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
143 Komplexität von Algorithmen 8.2 Die Komplexitätsklassen P und NP Beispiel Vollständig deterministische endliche Automaten (vdea s) verbrauchen pro Schritt ein Symbol der Eingabe und halten dann. Also benötigen sie lineare Zeit O(n). Beispiel Eine dtm für die Sprache L = { w {a, b} : w = sp(w) } aller Palindrome über Σ = {a, b} könnte wie folgt operieren: Zeichen am rechten Rand löschen und im Zustand speichern; linken Rand suchen, und dortiges Zeichen mit dem gespeicherten Wert vergleichen; im Erfolgsfall linkes Randzeichen löschen und mit dem nächsten Zeichen von links symmetrisch analog verfahren. Bei gleichzeitigem Schreiben und Bewegen erfordern die n/2 Durchläufe n + 1, n 1,... 1 Schritte, was sich durch n/2 ( n/2 + 3)/2 O(n 2 ) abschätzen läßt. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
144 Komplexität von Algorithmen 8.2 Die Komplexitätsklassen P und NP Anmerkungen: Bei gleichzeitiger Bearbeitung von k Zeichen läßt sich eine Beschleunigung um den Faktor k erreichen, da sich die Anzahl der Durchläufe entsprechend verringert. Bei Verwendung einer 2-Band TM kann die Eingabe einmal kopiert und die Kopie direkt in umgekehrter Richtung mit dem Original verglichen werden, wodurch das Speichern des am Rand gelöschten Symbols und die jeweilige Suche nach dem anderen Rand entfällt. Damit läßt sich eine Laufzeit der Größenordnung O(n) realisieren. In Abschnitt 8.4 werden wir zeigen, dass folgende Definition der Klassen P und NP unter solchen Modifikationen des Maschinenmodells robust ist. Definition P ( NP ) ist die Klasse der entscheidbaren formalen Sprachen L, die von einer dtm (ntm) mit polynomialer Zeitkomplexität akzeptiert werden können, d.h., es existiert eine d/ntm M mit L = L(M), und ein Polynom p so dass jede Berechnung von w nach höchstens p( w ) Schritten hält. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
145 Komplexität von Algorithmen 8.2 Die Komplexitätsklassen P und NP Satz P NP Beweis. Klar, da jede dtm auch eine ntm ist. Im nichtdeterministischen Fall gibt es einen alternativen Zugang: anstelle eine Sprache aus NP zu entscheiden, kann man sie verifizieren: Definition Für L Σ heißt L check Γ mit Σ Γ Zertifikatssprache, falls L check P, eine entsprechende dtm heißt Verifizierer; es existiert ein Polynom q so dass für jedes w Σ w L gdw wz L check für ein Wort z Γ mit z q( w ) Ein solches z heißt Zertifikat für w. gilt Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
146 Komplexität von Algorithmen 8.2 Die Komplexitätsklassen P und NP Satz NP besteht genau aus den Sprachen, die Zertifikatssprachen besitzen. Beweis Ein Verifizierer M check, mit Zeitkomplexität p, für L check, mit Längenkomplexität q, liefert einen Entscheider M für L wie folgt: B 0 enthält die Eingabe w ; ihre Länge w und q( w ) werden auf auf B 3 gespeichert, was O(q( w )) Schritte erfordert; auf B 1 wird nichtdeterministisch ein Wort z Γ mit z q( w ) erzeugt ( geraten ); dies erfordert z O(q( w )) Schritte; auf B 2 wird M check mit Eingabe wz simuliert. M hält und akzeptiert genau dann, wenn die Simulation von M check dies tut und hat Zeitkomplexität in O(p(q(n))). Umgekehrt sei M ein Entscheider für L mit Zeitkomplexität t. Als Zertifikate für w L verwenden wir die Wegbeschreibungen der akzeptierenden Berechnungen von w im M- Berechnungsbaum, genauer: Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
147 Komplexität von Algorithmen 8.2 Die Komplexitätsklassen P und NP Beweis (Fortsetzung) Der M- Berechnungsbaum von w hat eine Tiefe t( w ). Die maximale Verzweigungszahl sei r N. Jeder Weg von der Initialkonfiguration zu einer Haltekonfiguration, also jede Berechnung, kann nun durch ein Wort in {0,..., r 1} der Länge t( w ) eindeutig beschrieben werden (aber nicht jedes derartige Wort muß einer Berechnung entsprechen). L check besteht dann aus den Wörtern wz (Σ + r) mit w L und z Wegbeschreibung einer akzeptierenden Berechnung für w. Die Maschine M check simuliert bei Eingabe wz den Ablauf der Maschine M mit Eingabe w gemäß der durch z spezifizierten Berechnung und ist somit deterministisch. Das erfordert z t( w ) Simulationsschritte von M check. Deren Länge ist aber durch eine Konstante beschränkt. Das obige maschinenbezogene Zertifikat wird in der Praxis meist sehr unhandlich sein. Dort verwendet man meistens problembezogene Zertifikate. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
148 Komplexität von Algorithmen 8.2 Die Komplexitätsklassen P und NP Beispiel (Eine Zertifikatssprache für 3-Färbbarkeit) Die Codierung ungerichteter Graphen G = V, E erfolgt mittels Adjazenzmatrizen w und der Größenangabe n := V. Als Zertifikat verwenden wir Codierungen z von Zufallszerlegungen V = R + G + B. wz L check gdw e E. e R e G e B Teilmengen von V lassen sich als binäre n- Tupel codieren, während Adjazenzmatrizen die Größe n 2 haben. L check P : zu überprüfen ist, ob die Eingabe aus n 2 + 3n Bits besteht, und dann, ob die Teilmengen R, G, B V, paarweise disjunkt sind, V ausschöpfen, und keine Kanten {u, v} E als Teilmenge enthalten. Dies kann durch bitweise Vergleiche geschehen, also in polynomialer Zeit. Damit gilt 3- Färbbarkeit NP. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
149 Komplexität von Algorithmen 8.2 Die Komplexitätsklassen P und NP Abschließend überlegen wir uns, dass zumindest P nicht mit der Klasse der entscheidbaren Probleme übereinstimmt: Beispiel Folgende entscheidbare(!) Sprache gehört nicht zu P : L exp := { c(m) : M akzeptiert c(m) in 2 c(m) Schritten } P ist unter Komplementbildung abgeschlossen (warum?). Die Annahme L exp P impliziert dann L exp P. Wähle eine TM M mit L( M) = L exp und mit einem Polynom p als Zeitkomplexität. Wähle n 0 N mit p(n) < 2 n für alle n n 0, und c( M) n 0 (ggf. Zustände zu M hinzufügen, ändert p nicht) Falls c( M) L exp, wird c( M) von M in höchstens p( c( M) ) < 2 c( M) Schritten akzeptiert, d.h., c( M) L exp,. Falls c( M) L exp, wird c( M) von M in höchstens 2 c( M) Schritten akzeptiert, also c( M) L( M) = L exp,. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
150 Komplexität von Algorithmen 8.3 Die Klasse FP von Berechnungsproblemen 8.3 Berechnungsprobleme und Reduzierbarkeit Bisher hatten wir die Zeitkomplexität von E-Problemen betrachtet. Um verschiedene E-Probleme miteinander vergleichen, genauer, sie aufeinander reduzieren, zu können, müssen wir auch die Zeitkomplexität von B-Problemen betrachten. Beispiel Unser Algorithmus zur 2-Färbung von Graphen (falls eine solche existiert) bildet den Code eines Graphen auf den Code einer 2-Färbung ab, bzw. auf die codierte Nachricht, dass keine solche Färbung existiert. Definition FP ist die Klasse aller Funktionen Σ Γ, für die eine dtm M und ein Polynom p existieren, so dass f von M berechnet wird und die Berechnung von f (w) Γ höchstens p( w ) Schritte benötigt. f Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
151 Komplexität von Algorithmen 8.3 Die Klasse FP von Berechnungsproblemen Beispiel (Starke Komponenten) Eingabe: gerichteter Graph G = V, E Aufgabe: die maximalen Mengen wechselseitig durch gerichtete Wege miteinander verbundener Knoten (= starke Komponenten ) berechnen 1: {Initialisierung} 2: i := 0 { i : der Komponentenzähler} 3: {Rekursionsschritt} 4: while V do 5: wähle v V ; V := V {v} ; K i := {v} { K i : die neu zu startende Komponente} 6: for alle Knoten w V do 7: if gerweg(v, w) und gerweg(w, v) then 8: K i := K i + {w} ; V := V {w} 9: end if 10: end for 11: i := i : end while Im Wesentlichen wird der Algorithmus für gerichteten Weg mit Laufzeit O(n + k) in der maximal n- mal zu durchlaufenden FOR-Schleife zweimal aufgerufen. Da die WHILE-Schleife auch maximal n- mal durchlaufen wird, ergibt sich mit Adjazenzlisten eine Laufzeit von O(n 2 (n + k)), und mit Adjazenzmatrizen von O(n 4 ). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
152 Komplexität von Algorithmen 8.3 Die Klasse FP von Berechnungsproblemen Beispiel a d b c e hat die starken Komponenten {a,b,c} {d,e} {f} f Die starken Komponenten von G bilden die Knoten eines Graphen Ḡ : dabei ist K, K genau dann eine Kante von Ḡ, wenn eine G -Kante von einem K -Knoten zu einem K -Knoten existiert. Konstruktionsbedingt ist Ḡ azyklisch, also topologisch sortierbar. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
153 Komplexität von Algorithmen 8.4 FP-Reduzierbarkeit 8.4 FP - Reduzierbarkeit Definition Eine Sprache L Σ ist auf eine Sprache K Γ FP-reduzierbar, Notation L K, wenn eine Funktion Σ f Γ in FP existiert mit w L gdw f (w) K Die Einschränkung auf Funktionen aus FP ist wichtig, denn andernfalls wären alle entscheidbaren Sprachen wechselseitig aufeinander reduzierbar: für echte Teilmengen L Σ und K Γ wähle u K und ū Γ K und definiere Σ f Γ durch { u falls w L f (w) = ū falls w / L Dann gilt w L gdw f (w) K, aber die Reduktion benötigt soviel Zeit wie die Entscheidung, ob w L gilt. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
154 Komplexität von Algorithmen 8.4 FP - Reduzierbarkeit Die Relation wird als Hauptwerkzeug zur Strukturierung der Klasse E aller Entscheidungsprobleme dienen. Informell bedeutet L K, dass L höchstens so schwierig zu lösen ist wie K. Da FP unter Komposition abgeschossen ist und alle Identitätsfunktionen enthält, folgen Reflexivität und Transitivität der Relation. Andererseits werden wir bald sehen, dass nicht antisymmetrisch ist. Es ist also keine Ordnungsrelation im strengen Sinne, aber zumindest noch eine Quasi-Ordnung auf der Klasse der Entscheidungsprobleme, bzw. eine Ordnung den - Äquivalenzklassen, d.h., auf den Klassen gleich schwieriger Probleme (d.h., L M und M L ). Zur besseren Orientierung erwähnen wir bereits jetzt, dass die oberen - Schranken der Klasse NP, d.h., die Probleme, die mindestens so schwierig wie jedes NP- Problem sind, NP- hart heißen. Schließlich bezeichnet man die NP- harten Probleme innerhalb der Klasse NP, also die schwierigsten NP- Probleme, als NP- vollständig. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
155 Komplexität von Algorithmen 8.4 FP - Reduzierbarkeit Beispiel (Das E-Problem Kanten-2-Färbbarkeit) Eingabe: ungerichtete Graphen zu entscheiden: können die Kanten derart mit 2 Farben gefärbt werden, dass Kanten mit gemeinsamem Endpunkt verschieden gefärbt sind. Wir zeigen Kanten-2-Färbbarkeit 2-Färbbarkeit. Idee: Die Kanten von G als Knoten eines sog. Kantengraphen G K interpretieren. Formal: G K := V K, E K mit V K := E und {e, e } E K gdw e e e e Etwa 2 {0, 2} {1, 2} G : 0 1 G K : {0, 1} 4 3 {1, 3} Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
156 Komplexität von Algorithmen 8.4 FP - Reduzierbarkeit Beispiel (Fortsetzung) Korrektheit der Reduktion G G K : wir zeigen G ist genau dann Kanten-2-färbbar wenn G K 2-färbbar ist Für eine Zerlegung der Kantenmenge E = R + B gilt. R + B = E ist eine Kanten-2-Färbung von G wenn { {u, v}, {x, y} } einfarbig, dann {u, v} {x, y} = wenn { {u, v}, {x, y} } einfarbig, dann ist dies keine G K -Kante R + B = E ist eine 2-Färbung von G K Laufzeit: Die Adjazenzmatrizen A und A K der ungerichteten Graphen G bzw. G K sind symmetrisch, also durch die Einträge im oberen Dreieck bestimmt. Mit n := V ergibt sich in Laufzeit O(n 2 ) V K = E = i<j<n A i,j Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
157 Komplexität von Algorithmen 8.4 FP - Reduzierbarkeit Beispiel (Fortsetzung) Wir verwenden die Positionen i, j mit i < j < n der Einsen in A als Knoten des Kantengraphen; diese seien lexikographisch geordnet. Die Kanten von G K entsprechen Paaren von Einsen in derselben Zeile oder Spalte im oberen Dreieck von A. Genauer, für i < j < l < n gilt: A i,j = A i,l = 1 impliziert i, j i, l in G K A i,l = A j,l = 1 impliziert i, l j, l in G K In jedem Fall sind drei geschachtelte Schleifen über i < n, über i < j < n und über i < j < l < n zu durchlaufen, was eine Laufzeit von O(n 3 ) liefert. Allerdings erfordert die Initialisierung der Matrix A K mit Nullen bereits O(n 4 ) Schritte. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
158 Komplexität von Algorithmen 8.4 FP - Reduzierbarkeit Satz Aus L K P (NP) folgt L P (NP), d.h., bzgl. ist P ( NP ) ein unterer Abschnitt der Klasse E aller E-Probleme. Beweis. Wähle eine FP-Reduktion L Σ Γ K, die von einer dtm M f berechnet wird, und eine d/ntm M K mit L(M K ) = K. Diese Maschinen mögen polynomiale Zeitkomplexität p f bzw. p K haben. Die Hintereinanderschaltung M L von M f und M K erfüllt f w L(M L ) gdw f (w) L(M K ) = K gdw w L Da das Schreiben der Ausgabe f (w) mindestens f (w) Schritte erfordert, ist die Laufzeit von M L auf Eingabe w durch p K (p f ( w )) beschränkt, also hat M L ebenfalls polynomiale Zeitkomplexität. Die Zugehörigkeit zu P bzw. NP kann somit auch durch Reduktion auf andere P bzw. NP- Probleme nachgewiesen werden. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
159 Sat P Komplexität von Algorithmen 8.4 FP - Reduzierbarkeit Der Nachweis von 2- Sat P verwendet die Reduktion auf ein graphentheoretisches Problem, das aufgrund früherer Ergebnisse zu P gehört. In klassischer Logik haben wir die Implikation α β als Abkürzung von α β eingeführt. Für eine Klausel α β gilt also α β α β β α Das motiviert uns, 2-KNF Formeln ϕ in Implikationsgraphen G(ϕ) umzuformen, mit den Literalen aller auftretendende Variablen als Knoten und je zwei gerichteten Kanten gemäß der obigen Implikationen, etwa x x ϕ = (x y) ( x z) ( z y) G(ϕ) : y y z z Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
160 Komplexität von Algorithmen 8.4 FP - Reduzierbarkeit Behauptung: ϕ ist erfüllbar gdw für jede Variable x die Literale x und x in verschiedenen starken Komponenten von G(ϕ) liegen. ( ) Wenn eine Belegung der Variablen existiert, die jeder Klausel (α β) den Wert true zuordnet, muß insbesondere α oder β mit true belegt sein. Damit hat G(ϕ) keine Kante von einem mit true zu einem mit false belegten Literal. Da je zwei Knoten einer starken Komponente auf einem gerichteten Kreis liegen, können somit die verschieden belegten Literale x und x nicht in derselben starken Komponente auftreten. ( ) Wähle eine topologische Sortierung ord des Graphen der starken Komponenten [α] von G(ϕ), α Literal, und setze x = true gdw ord[ x] < ord[x] Ist (α β) eine Klausel mit α = false, dann gilt wegen der Kanten β α und α β in G(ϕ) und folglich β = true. ord[ β] ord[α] < ord[ α] ord[β] Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
161 Komplexität von Algorithmen 8.4 FP - Reduzierbarkeit Auf welches Problem habe wir 2- Sat eigentlich reduziert? Definition SinvKomp hat als Eingabe einen gerichteten Graphen G = V, E und eine selbstinverse Abbildung V f V ohne Fixpunkte. Zu entscheiden ist, ob für jedes u V die Knoten u und f (u) in verschiedenen starken Komponenten von G liegen. Offenbar gehört SinvKomp zu P, da die Berechnung der starken Komponenten in polynomialer Zeitkomplexität erfolgen kann, wie auch die Überprüfung, ob a und f (a) zu derselben starken Komponente gehören. Es bleibt nachzuweisen, dass unsere Reduktion ϕ G(ϕ) zu FP gehört. Als Maß m für die Größe der Eingabe ϕ bietet sich die Länge der Formel an, ohne die Klammern bei Infix-Notation. Die Ermittlung der Variablen in ϕ und somit der Knoten von G(ϕ) erfordert lineare Zeit, ebenso wie das Eintragen der zwei Kanten pro Klausel. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
162 Komplexität von Algorithmen 8.4 FP - Reduzierbarkeit Beispiel Die obige Formel ϕ = (x y) ( x z) ( z y) ist erfüllbar, da sich die positiven und negativen Varianten der Variablen x, y und z auf die beiden starken Komponenten des zugehörigen Graphen G(ϕ) verteilen. Die Belegung x = z = true und y = false und ihre Negation liefern beide den Wert true für ϕ. Andererseits ist ψ = (y x) ( y z) ( z x) ( x t) (t x) nicht erfüllbar, da G(ψ) nur eine starke Komponente besitzt: x y z t x y z t Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
163 Komplexität von Algorithmen 8.5 Robustheit der Klassen P und NP 8.5 Robustheit der Klassen P und NP Wir müssen nun untersuchen, of die Definition der Klassen P und NP gegenüber Änderungen des TM-Models robust ist. Ähnche Überlegungen könnten für andere Algorithmus-Modelle angestellt werden. Schließlich interessieren uns Abschlußeigenschaften der Klasse P. Zusätzlicher Speicher: Zustandsmengen der Form Q A erlauben es, nur eine Komponente für die Steuerung der Maschine zu verwenden, während man in der zweiten andere Informationen zwischenspeichern und transportieren kann, statt dafür das Band zu verwenden. Das war aber von Beginn an erlaubt und erweitert das Modell nicht. Erweitertes Bandalphabet: Optionale Bandsymbole, die über Σ + {#} hinausgehen, können die Arbeit einer TM erheblich vereinfachen, insbesondere Verschiebe-Opertationen zwecks Erhaltung eines zusammenhängenden Bandinhalts können entfallen. Der Taschenspielertrick der Hausaufgabe, das Alpahbet Σ zu vergrößern und einen Präprozessor zu verwenden, erzeugt aber nur linearen Overhead. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
164 Komplexität von Algorithmen 8.5 Robustheit der Klassen P und NP Mehrspur-TM: Hier dient B k als Bandalphabet, mit Blanksymbol # : i < k. Zu Beginn steht die Eingabe auf der ersten Spur. Die Identifikation des Alphabets Σ mit Σ { # : i < n 1 } erlaubt uns nun, Mehrspur-Maschinen als Spezialfall von Maschinen mit erweitertem Bandalphabet aufzufassen, s.o. Mehrband-TM: Hierbei existieren k unabhängige Schreib-Leseköpfe. ObdA nehmen wir an, dass M pro Schritt immer nur auf einem Band arbeitet. Andernfalls verlängert die Sequentialisierung von M die Zeitkomplexität nur um einen Faktor k. Die Simulation kann durch eine TM mit 2k Spuren erfolgen: Spur 2i enthält den Inhalt von Band i, während Spur 2i + 1 nur die Kopfposition auf Band i verzeichnet. Satz Jede k - Band dtm M mit mindestens linearer Zeitkomplexität t kann durch eine Einband-TM M mit Zeitkomplexität t 2 simuliert werden. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
165 Komplexität von Algorithmen 8.5 Robustheit der Klassen P und NP Beweis. In den ungeraden Spuren wird zunächst unter dem letzten Eingabesymbol in Spur 0 eine Kopfmarkierung gesetzt, was konstante Zeit erfordert. Eine M-Aktion auf Band i kann durch M auf den Spuren 2i und 2 i + 1 simuliert werden, in derselben Zeit, die M benötigt. Um eine nachfolgende Aktion auf Band j zu simulieren, ist der Kopf von M zur Kopf-Markierung auf Spur 2j + 1 zu verschieben. Dazu sind bei Eingabe w maximal t( w ) Schritte nötig. Insgesamt wird die Schrittzahl also höchstens quadriert. Somit dürfen wir auch bei Komplexitätsargumenten auf die bequemeren Mehrband-Maschinen zurückgreifen. Für andere Algorithmenmodelle (RAM, reale Rechner, etc.) kann man den Zeitbedarf bei der Simulierung durch (Mehrband-)TMs ermitteln. Dieser stellt sich als polynomial heraus, daher bleibt P invariant. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
166 Komplexität von Algorithmen 8.5 Robustheit der Klassen P und NP Satz P ist abgeschlossen unter binären Vereinigungen und Durchschnitten, Komplementbildung, Konkatenation und Kleene-Stern. Beweis. Für binäre Vereinigungen und Durchschnitte, sowie für Kleene-Stern vergl. HA. Für die Komplementbildung verwende die Konstruktion M M aus dem Beweis der Charakterisierung entscheidbarer Sprachen durch ihre Semi-Entscheidbarkeit und die des Komplements (Folie 35). Konkatenation: Die dtm M i möge immer halten und L i Σ i in polynomialer Zeit p i akzeptieren, i < 2. Die Maschine M zerlegt die Eingabe w (Σ 0 Σ 1 ) systematisch in zwei Teile w 0 und w 1 mit w 0 w 1 = w und untersucht diese auf Zugehörigkeit zu L i, i < 2. Sobald beide Tests positiv ausfallen, wird w akzeptiert. Die Anzahl der Zerlegungen ist durch w + 1 beschränkt, die Laufzeit der Tests auf max{p 0 ( w ), p 1 ( w )}. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
167 Komplexität von Algorithmen 8.6 Einige Probleme aus NP 8.6 Einige Probleme aus NP Beispiel ( Hamiltonscher Kreis NP ) Das E-Problem Hamiltonscher Kreis hat als Eingabe einen ungerichteten Graphen G = V, E mit n := V Knoten. Zu entscheiden ist, ob G einen Hamiltonschen Kreis besitzt, d.h., eine Permutation π der Knoten, so dass sie in dieser Reihenfolge durch Kanten zu einem Kreis verbunden werden können, formal {π(i), π(i + 1 mod n)} E für i < V Als Zertifikate eignen sich Permutationen von V. Die Überprüfung, ob die entsprechenden Kanten existieren, kann in linearer Zeit erfolgen. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
168 Komplexität von Algorithmen 8.6 Einige Probleme aus NP Beispiel ( TSP NP ) Das Travelling Salesman Problem in seiner Entscheidungsvariante TSP hat als Eingabe n Städte (geographische Orte) S i, i < n, eine (symmetrische) Matrix d von Entfernungen und eine Schranke K. Zu entscheiden ist, ob eine Rundreise existiert, die alle Städte genau einmal besucht (ein Hamilton scher Kreis), so dass ihre Länge, die Summe der Entfernungen aufeinanerfolgender Städte, durch K nach oben beschränkt ist. Als potentielle Zertifikate eignen sich wieder Permutationen π von V. In linearer Zeit überprüft man die Gültigkeit von d π(i),π(i+1 mod n) K i< V (Die Optimierungsvariante dieses Problems gibt keine Schranke K vor; gesucht ist die bestmögliche Lösung.) Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
169 Komplexität von Algorithmen 8.6 Einige Probleme aus NP Beispiel ( Sat NP ) Sat hat als Eingabe eine Boole sche Formel ϕ(x 0,..., x n 1 ) in KNF (ohne Beschränkungen in der Länge der Klauseln). Zu entscheiden ist, ob ϕ erfüllbar ist. Als Kandidaten für ein Zertifikat eignen sich Zufallsbelegungen der Variablen x 0... x m 1. Die Berechnung des Wahrheitswerts von ϕ kann wiederum in polynomialer Zeit erfolgen. Beispiel ( Zerlegbarkeit P, erst seit 2004 bekannt) Primes hat als Eingabe eine natürliche Zahl n. Zu entscheiden ist, ob n eine Primzahl ist zeigten Agrawal, Kayal und Saxena Primes P. Da P unter Komplementbildung abgeschlossen ist, gehört das Problem Zerlegbarkeit ebenfalls zu P, bei dem zu entscheiden ist, ob n zusammengesetzt ist. Eine Lösung liefert aber leider keine Hinweise auf Primfaktoren. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
170 Komplexität von Algorithmen 8.6 Einige Probleme aus NP Wie wir auf Folie 30 gesehen haben, kann jede immer haltende 1-Band ntm M durch eine immer haltende 3-Band dtm M simuliert werden, indem breadth first alle M-Berechnungen bis zu einer vorgegebenen Tiefe nach akzeptierenden Haltekonfigurationen durchsucht werden. Corollar Jede ntm mit Zeitkomplexität t(n) kann durch eine dtm mit Zeitkomplexität O(2 c t(n) ), c R + geeignete Konstante, simuliert werden. Speziell ist jede Sprache L NP durch eine dtm mit Zeitkomplexität 2 p(n), p Polynom, entscheidbar. Beweis Für w = n ist die Anzahl der Tupel auf B 2 durch i<t(n) r i O(r t(n) ) beschränkt. Jedes Tupel führt zu maximal t(n) Simulationsschritten. Der Übergang zu einer 1-Band-Maschine quadriert die Laufzeit nochmals: O(t(n)r t(n) ) O(r 2 t(n) ) O(r 4 t(n) ) O(2 c t(n) ) wobei r 4 2 c Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
171 Komplexität von Algorithmen 8.7 NP - Vollständigkeit und Cooke scher Satz 8.7 NP-Vollständigkeit und Cooke scher Satz Definition Ein E-Problem L heißt NP- hart, falls L obere - Schranke von NP ist, d.h., für jedes NP- Problem K gilt K L ; Klassenbezeichnung NPH NP- vollständig, falls L - größtes Elemente von NP ist, d.h., L NP ist NP- hart; Bezeichnung NPV. Satz Existiert ein NP-vollständiges Problem L P, so folgt P = NP. Beweis. Nach Definition läßt sich jedes Problem K NP auf L reduzieren und folglich in polynomialer Zeit durch eine dtm lösen. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
172 Komplexität von Algorithmen 8.7 NP - Vollständigkeit und Cooke scher Satz Satz (Cook scher Satz) Das E-Problem Sat der Erfüllbarkeit einer Boole schen Formel in KNF ist NP- vollständig. Beweis Die Zugehörigkeit zu NP war bereits oben gezeigt worden. Für jede Sprache {0, 1} L NP bleibt zu zeigen: L Sat Idee: Ausgehend von einer ntm M mit m Zuständen, die L in polynomialer Zeit p akzeptiert, konstruiert man zu jedem w Σ eine Boole sche Formel ϕ w in KNF, die eine akzeptierende Berechnung von w durch M beschreibt. Dann ist nachzuweisen: w L gdw. ϕ w erfüllbar (Korrektheit der Reduktion) ϕ w kann in Zeit O(p( w ) 2 ) aus w konstruiert werden (damit gehört die Reduktion zu FP ). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
173 Komplexität von Algorithmen 8.7 NP - Vollständigkeit und Cooke scher Satz Beweis (Fortsetzung) Vorbereitung: gegeben ist eine binäre 1-Band ntm M mit polynomialer Zeitkomplexität p und L(M) = L. Die Zustände sind vom Anfangszustand q 0 bis zum Endzustand q m 1 (dieser hat keine Übergänge) durchnummeriert. B = {s 0, s 1, s 2 } mit s 0 = #, s 1 = 0, s 2 = 1, s 3 = L und s 4 = R. Das Band sei durch Z indexiert, mit 0 an der Position des Kopfes in der Initialkonfiguration mit Eingabe w. Es genügt, Felder im Bereich p( w ) bis p( w ) zu betrachten. Es gibt d Übergänge q i(y), s j(y) q i (y), s j (y), y < d, mit d i, i n, d j 3 und d j 5 (Indexfunktionen) Die Formel ϕ w soll eine akzeptierende Berechnung von M auf Eingabe w beschreiben. Dabei ist zu maximal p( w ) Zeitpunkten der Inhalt von 2p( w ) Bandzellen zu spezifizieren, weiterhin Zustand und Kopfposition der Maschine und, bis auf den letzten Zeitpunkt, der aktuelle Übergang. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
174 Komplexität von Algorithmen 8.7 NP - Vollständigkeit und Cooke scher Satz Beweis (Fortsetzung) Dafür dienen entsprechende Variable: Name Interpretation: in Schritt t Anzahl qi t ist M in Zustand q i i < m, t < p( w ) kr t ließt M Bandzelle r p( w ) < r < p( w ), t < p( w ) l t r, nr t, er t, steht #, 0, 1 in Bandzelle r p( w ) < r < p( w ), t < p( w ) uy t wird Übergang y ausgeführt y < d, t < p( w ) 1 ϕ w wird Konjunktion der Beschreibung folgender vier Teile sein: der Initialkonfiguration; der Akzeptanzbedingung für w ; der Konsistenzbedingungen (KBD n) für M : zu jedem Zeitpunkt t ist M in höchstens einem Zustand; steht in jedem Feld genau ein Symbol; steht der Kopf auf genau einer Position; findet höchstens ein Übergang statt. des Übergangseffekts auf Zustand, Kopfposition und Bandinhalt. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
175 Komplexität von Algorithmen 8.7 NP - Vollständigkeit und Cooke scher Satz Beweis (Fortsetzung) Initialkonfiguration: Initialzustand bzw. -kopfposition sind bestimmt durch q0 0 und k0 0, während der Bandinhalt w = s 0... s n 1 {0, 1} mittels geeigneter Variablen nr 0 bzw. er 0 mit n < r 0 spezifiziert wird. Dazu kommt die Angabe, dass die übrigen relevanten Felder leer sind: p(n)<r n l 0 r 0<r<p(n) Dies benötigt O(p(n)) triviale Klauseln. Z.B. liefert w = 010 die Formel q0 0 k0 0 n 2 0 e 1 0 n0 0 Akzeptanzbedingung: p(3)<r 3 l 0 r t<p( w ) q t m 1 (1 Klausel) l 0 r 0<r<p(3) Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236 l 0 r
176 Komplexität von Algorithmen 8.7 NP - Vollständigkeit und Cooke scher Satz Beweis (Fortsetzung) KBD Zustände: Für t < p(n) ist M in höchstens einem Zustand: q t i q t j bzw. q t i q t j für alle i < j < m (m(m 1)/2 Klauseln) KBD Feldinhalt: Für t < p(n) und p(n) < r < p(n) gilt (l t r n t r e t r ) ( l t r n t r ) ( n t r e t r ) ( e t r l t r ) Diese 4 p(n)(2p(n) 1) O((p(n)) 2 ) Klauseln besagen, dass jedes relevante Feld genau ein Symbol enthält. KBD Kopfposition: Für t < p(n) drücken 1 + (2p(n) 1)(p(n) 1) Klauseln aus, dass der Kopf in genau einer Position steht: ( k t r kr t ) p(n)<r<p(n) k t r p(n)<r<r <p(n) Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
177 Komplexität von Algorithmen 8.7 NP - Vollständigkeit und Cooke scher Satz Beweis (Fortsetzung) KBD Übergänge: Für t < p(n) drücken d(d 1)/2 Klauseln aus, dass höchstens ein Übergang stattfindet: u t y u t z für y < z < d Beschreibung der Übergangseffekte: Für jeden der d Übergänge q i(y), s j(y) q i (y), s j (y) drücken p(n) 1 Teilformeln(!) die Zustandsänderung für t < p(n) 1 aus: ( ) uy t qi(y) t qt+1 i (y) Gemäß der Definition der Implikation liefern die Distributivgesetze nun insgesamt 2 (p(n) 1) d äquivalente Klauseln: ( ) ( ) uy t qi(y) t uy t q t+1 i (y) für t < p(n) 1 und y < d Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
178 Komplexität von Algorithmen 8.7 NP - Vollständigkeit und Cooke scher Satz Beweis (Fortsetzung) Speziell für s j(y) = 0 und s j (y) = L, beschreiben weitere 2(p(n) 1) 2 Teilformeln Kopfbewegung und den ursprünglichen Feldinhalt: ( u t y kr t ) ( k t+1 r 1 ) nt r für t < p(n) 1, p(n) + 1 < r < p(n) Nach Definition der Implikation liefern die de Morganschen Regeln und die Distributivgesetze nun 4(p(n) 1) 2 äquivalente Klauseln: ( uy t kr t ) ( k t+1 r 1 ) ( nt r u t Y kr t ) ( k t+1 ) nt r ( uy t kt r kr 1) t+1 ( u t Y kr t nr t ) Schließlich bleibt wegen s j (y) = L der Bandinhalt unverändert: ( u t y xr t ) x t+1 r bzw. uy t xr t xr t+1 ( ) für t < p(n) 1, p(n) + 1 < r < p(n) und x {l, n, e}, was weitere 6(p(n) 1) 2 Klauseln liefert. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
179 Komplexität von Algorithmen 8.7 NP - Vollständigkeit und Cooke scher Satz Beweis (Fortsetzung) Falls s j(y) {#, 1} bzw. s j (y) = R kann man analog verfahren, während für Aktionen der Form s j (y) {#, 0, 1} insbesondere die Klauseln ( ) für den Bandinhalt zur Zeit t + 1 anzupassen sind (HA). Schließlich bleibt auszudrücken, dass Zustände außer q0 0 tatsächlich nur aufgrund von Übergängen entstehen. Leider ist es nicht möglich, für t < p(n) 1 die Klausel zu verwenden (warum?) Stattdessen soll y<d ut y ein Zustand zur Zeit t + 1 nur aufgrund eines Übergangs zur Zeit t angenommen werden können ( k(p(n) 1) Klauseln): q t+1 z i (y)=z u t y bzw. q t+1 z i (y)=z Hingegen kann die Änderung der Feldinhalte kann aufgrund der zu ( ) analogen Formeln für s j(y) {#, 1} nur jene Ursache haben, braucht also nicht gesondert betrachtet zu werden. u t y Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
180 Komplexität von Algorithmen 8.7 NP - Vollständigkeit und Cooke scher Satz Beweis (Fortsetzung) Laufzeit: ϕ w entsteht durch Konjunktion aller Klauseln. Die resultierende Formel in KNF hat eine Länge, die quadratisch in p(n), und damit polynomial in n = w ist. Korrektheit: Nach Konstruktion existiert eine Variablenbelegung, die ϕ w den Wert true zuordnet, wenn M bei Eingabe w eine akzeptierende Berechnung durchführen kann. Umgekehrt ist im Fall der Erfüllbarkeit von ϕ w die Akzeptanzbedingung erfüllt, d.h., es gibt eine Zeit T < p(n) mit qm 1 T = true. Sofern T > 0, existiert mindestens ein Übergang, der den Endzustand q m 1 produziert. Zum Zeitpunkt T 1 wird aber nur genau ein Zustand qu T 1 angenommen und es findet genau ein Übergang uy T 1 statt. Auf diese Weise kann man rückwärts den Zustand q0 0 erreichen. Die Initialkonfiguration und die Konsistenzbedingungen garantieren dann, dass wirklich eine Berechnung der Maschine M vorliegt. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
181 Komplexität von Algorithmen 8.7 NP - Vollständigkeit und Cooke scher Satz Satz (Ladner 1975) Falls P NP, dann wird NP nicht von P und NPV ausgeschöpft, d.h., es gibt dann E-Probleme, die weder NP- vollständig sind, noch zu P gehören. Beispiel Ein Kandidat für ein derartiges Problem ist Graph-Isomorphismus: die Eingabe besteht aus zwei Graphen G i = V i, E i, i < 2. Zu entscheiden ist, ob es eine Bijektion V 0 f V 1 gibt mit u, v E 0 gdw. f (u), f (v) E 1. Bemerkung Im Gegensatz dazu ist das Problem Subgraph-Isomorphismus NP-vollständig: für eine Eingabe aus zwei Graphen G i = V i, E i, i < 2, ist zu entscheiden, ob es eine Injektion V 0 f V 1 gibt mit u, v E 0 gdw. f (u), f (v) E 1. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
182 Komplexität von Algorithmen 8.8 Weitere NP - vollständige Probleme 8.8 Weitere NP-vollständige Probleme Beispiel ( 3- Sat ist NP- vollständig) 3-Sat gehört aus demselben Grund wie Sat zu NP, vergl. S Idee für eine Reduktion Sat 3-Sat : Wir formen eine Klausel ϕ := (α 0 α 1 α k 1 ) der Länge k > 3 iterativ um zu (α 0 α 1 b 0 ) ( b 0 α 2 α k 1 ) (α 0 α 1 b 0 ) ( b 0 α 2 b 1 ) ( b 1 α 3 α k 1 )... bis eine Konjunktion von k 2 Klauseln der Länge 3 erreicht ist. Dafür sind k 3 neue Variablen nötig, also ist die Laufzeit pro Klausel linear. Korrektheit: Die Existenz eines j < k mit α j = true ist äquivalent zu b 0 = true und es existiert 2 j < k mit α j = true, oder b 0 = false und es existiert j < 2 mit α j = true Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
183 Komplexität von Algorithmen 8.8 Weitere NP - vollständige Probleme Beispiel ( 3- Färbbarkeit ist NP- vollständig) Auf S. 124 haben 3- Färbbarkeit NP gezeigt. Um 3- Sat auf 3- Färbbarkeit zu reduzieren, betrachten wir H : d a x b c Behauptung 0: Sind a, b und c in H rot, dann auch d. Beweis: Wenn b und c rot sind müssen die Farben blau und gelb bei den links danebenliegenden Knoten auftreten, folglich ist x rot. Dasselbe Argument für a und x liefert, dass d rot sein muß. Behauptung 1: Ist einer der Knoten a, b oder c blau, kann auch d blau gefärbt werden. Beweis: Klar, wenn a, b und c blau sind. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
184 Komplexität von Algorithmen 8.8 Weitere NP - vollständige Probleme Beispiel (Fortsetzung) Ist a blau und x rot, können wir die links danebenliegenden Knoten rot bzw. gelb und dann d blau färben. Ist b oder c blau, kann x blau gefärbt werden, und ebenso d, unabhängig von der Farbe von a. Reduktion: Einer Formel ϕ in KNF ordnen wir einen Graphen G ϕ zu, der aus drei Typen von Teilgraphen besteht: Dreiecken R G B und x x und für jede Klausel (α β γ) eine Kopie von H G für jede Variable x in ϕ B α x β γ mit Knoten α, β bzw. γ in den obigen Literal-Dreiecken. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
185 Komplexität von Algorithmen 8.8 Weitere NP - vollständige Probleme Beispiel (Fortsetzung) So ist etwa die Klausel (x y z) für den folgenden Teilgraphen verantwortlich: z z y y x x R G B Jede weitere 3- Klausel liefert eine weitere Kopie des Hilfsgraphen H, die bei B anzuheften ist, und ggf. weitere bei G anzuheftende Dreiecke für neue Variablen. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
186 Komplexität von Algorithmen 8.8 Weitere NP - vollständige Probleme Beispiel (Fortsetzung) Korrektheit: Ist ϕ erfüllbar, so färben wir die Knoten R, G und B mit den Farben rot, gelb bzw. blau. Im Dreieck für die Variable x ist dann das wahre Literal blau und das falsche rot zu färben. Wegen der Erfüllbarkeit von ϕ ist in jeder Kopie von H ein Knoten α, β oder γ blau gefärbt, was mit der Färbung von B konsistent ist. Ist G ϕ 3-färbbar, dann seien obda die Knoten R, G und B rot, gelb und blau gefärbt. Kein Variablen-Knoten kann dann gelb gefärbt sein, und nach der ersten Behauptung können in keiner Kopie von H die Knoten α, β und γ rot gefärbt sein. Also ist einer dieser Knoten blau, was nach der zweiten Behauptung zur blau-färbung von B konsistent ist, und damit ist die Klausel wahr. Laufzeit: Die Anzahl der Variablen-Dreiecke und der Kopien von H beträgt jeweils O( ϕ ). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
187 Komplexität von Algorithmen 8.8 Weitere NP - vollständige Probleme Satz k -Färbbarkeit ist NP-vollständig für jedes k > 2. Beweis. Das Beispiel zeigt die NP- Vollständigkeit von 3- Färbbarkeit. Zwecks Reduktion k - Färbbarkeit (k + 1)- Färbbarkeit fügen wir einen neuen Knoten zu G hinzu, den wir in linearer Zeit mit allen alten Knoten verbinden. Der neue Graph G ist genau dann (k + 1)-färbbar, wenn G k - färbbar ist. Definition Ein Graph heißt planar, wenn er ohne Kantenüberschneidungen in der Ebene gezeichnet werden kann. Planare k -Färbbarkeit ist trivial für k > 3 Appel, Haken 1976 ; NP-vollständig für k = 3 ; in P für k < 3. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
188 Komplexität von Algorithmen 8.8 Weitere NP - vollständige Probleme Die Laufzeit ist im Falle von Adjazenzmatrizen quadratisch in n, da einzig die Nullen der Adjazenzmatrix durch Zweien zu ersetzen sind. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236 Beispiel (Hamilton scher Kreis (HC) ist NP- vollständig) Eingabe: ungerichteter Graph G = V, E. Zu entscheiden ist, ob ein Rundweg (Kreis) existiert, der alle Knoten genau einmal besucht. Aufgabe 6.5 (zum Selbststudium) zeigt einen expliziten Beweis basierend auf [Christos H. Papadimitriou. Computational Complexity. Addison-Wesley, 1994]. Beispiel (TSP ist NP- vollständig) TSP NP : vergl. Seite 147. HC TSP : ordne einem ungerichteten Graphen G = V, E die Konstante K := V zu und die {1, 2}- wertige Kostenmatrix mit d i,j = 1 gdw {i, j} E Korrektheit: Klar, da ein Hamilton scher Kreis in einem Graphen mit n Knoten die Länge n haben muß.
189 8.9 Die Klasse conp Komplexität von Algorithmen 8.9 Die Klasse conp Der Abschluß von P unter Komplementbildung sollte von rechts wegen bewiesen werden, indem man die Endzustandsmenge einer dtm, die immer hält, durch ihr Komplement ersetzt (wie im Fall regulärer Sprachen). Die technische Konvention eines einzigen Endzustands q F erfordert den Umweg, einen neuen Endzustand q G einzuführen, und Übergänge p, s q G, a, sofern q q F und keine Übergänge aus p, s existieren. Die Zeitkomplexität wird davon nicht tangiert. Wendet man dasselbe Verfahren auf eine ntm M an, die immer hält, so braucht die Sprache L( M) nicht mit dem Komplement Σ L übereinzustimmen: sobald für w L(M) auch eine nicht-akzeptierende Berechnung existiert, gehört w auch zu L( M). Tatsächlich ist die Frage, ob NP mit conp übereinstimmt, bisher offen. Im negativen Fall würde P NP folgen. Auf jeden Fall gilt aber P conp. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
190 Komplexität von Algorithmen 8.9 Die Klasse conp Beispiel (Gültigkeit ist conp- vollständig) Eingabe: Boole sche Formel ϕ in KNF. Zu entscheiden ist, ob jede Belegung der Variablen ϕ den Wert true zuordnet. Als Alphabet für Boole sche Formeln diene Σ = {x, 0, 1,,,, (, )}. Die Variablen sollen die Form xw haben, w eine Binärzahl. Somit können wir die Menge der Formeln in KNF als (reguläre!) Sprache Knf über Σ auffassen, die die Menge Gültigkeit der gültigen Formeln enthält. Das Komplement Gültigkeit ist die Vereinigung aus Σ Knf, was regulär ist und folglich zu P NP gehört; und Knf Gültigkeit = { ϕ Knf : ϕ erfüllbar } ; mit Belegungen der Variablen, die für ϕ den Wert false liefern, als Zertifikaten folgt auch hier die Zugehörigkeit zu NP. Da NP unter binären Vereinigungen abgeschlossen ist, folgt Gültigkeit NP, und somit Gültigkeit conp. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
191 Komplexität von Algorithmen 8.9 Die Klasse conp Beispiel (Fortsetzung) Der Nachweis der conp- Vollständigkeit erfordert zu zeigen, dass jedes conp- Problem auf Gültigkeit FP- reduziert werden kann. Aber aus L conp folgt L Sat, etwa vermöge einer FP-Reduktion g. Für die Selbst-Abbildung w g(w) auf Σ gilt zweifellos w L gdw w / L gdw g(w) nicht erfüllbar gdw g(w) gültig Leider ist dies noch keine FP- Reduktion von L auf Gültigkeit, da g(w) als Negation einer KNF-Formel i.a. nicht in KNF vorliegt; das Hineinziehen der Negation zu den Literalen liefert sogar eine Formel in DNF, deren äquivalente Umwandlung in KNF zu exponentiellem Längenwachstum führen kann. Mit Hilfe neuer Variablen läßt sich g(w) aber in eine gleicherfüllbare Formel ψ(w) in KNF umwandeln, die gegenüber g(w) nur linear wächst (vergl. HA 5.5(d)). Damit liefert w ψ(w) die gewünschte FP- Reduktion L Gültigkeit. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
192 Komplexität von Algorithmen 8.9 Die Klasse conp Der nächste Satz folgt aus der entsprechenden Aussage in NP : Satz Aus L K conp folgt L conp, d.h., bzgl. ist conp ein unterer Abschnitt der Klasse E aller E-Probleme. Offenes Problem Stimmt der Durchschnitt von NP und conp mit P überein? Satz NP = conp genau dann wenn es ein conp- vollständiges Problem in NP gibt. Beweis. ( ) Aus conpv NP folgt conp NP, da NP ein unterer Abschnitt ist. Also gilt auch NP = coconp conp. ( ) Das conp- vollständige Problem Gültigkeit gehört zu NP. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
193 Komplexität von Algorithmen 8.10 Komplexität von Optimierungsproblemen 8.10 Komplexität von Optimierungsproblemen Das TSP in seiner E-Variante wirkt etwas künstlich: die Schranke K hat intrinsisch wenig mit dem Problem zu tun. Gesucht ist eigentlich die beste Reiseroute. Ähnlich verhält es sich mit der Färbbarkeit von Graphen: hier ist eigentlich die minimale Farbenzahl von Interesse, mit der ein Graph gefärbt werden kann. An diese kann man sich herantasten, indem man die Schranke k im zugehörigen E-Problem sukzessive verringert. Das deutet an, dass es neben den Klassen der Entscheidungs- oder E-Probleme und der Berechnungs- oder B-Probleme eine weitere Klasse interessanter und wichtiger Probleme von praktischer Relevanz gibt: die Optimierungs- oder O-Probleme. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
194 Komplexität von Algorithmen 8.10 Komplexität von Optimierungsproblemen Die Probleme MaximalesMatching und MaxFlow Definition Ein gerichteter Graph G = V, E heißt bipartite, wenn eine Zerlegung V = V 0 + V 1 existiert, so dass alle Kanten nur von Knoten in V 0 zu Knoten in V 1 verlaufen, formal E V 0 V 1 + V 1 V 0. Unter einem Matching versteht man dann eine Menge paarweise disjunkter Kanten, d.h., je zwei Kanten haben keinen gemeinsamen Endpunkt. Bzgl. der Kantenzahl maximale Matchings kann man finden, indem man gegebene Matchings solange mittels sog. erweiternder Wege in größere Matchings umwandelt, wie möglich. Dann ist zu beweisen, dass alle derart konstruierbaren Matchings dieselbe Kantenzahl haben. Stattdessen werden wir das Optimierungsproblem MaximalesMatching auf ein allgemeineres Problem reduzieren. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
195 Komplexität von Algorithmen 8.10 Komplexität von Optimierungsproblemen Definition Einem Netzwerk ist ein gerichteter Graph G = V, E zusammen mit zwei ausgezeichneten Knoten s, t V (für Source und Target ) ohne ein- bzw. ausgehende Kanten; einer Kapazitätsfunktion V V c N, die der Bedingung u, v / E gdw c u, v = 0 genügt. Ein Fluß durch das Netzwerk ist eine Abbildung V V f Z mit (F0) f u, v c u, v für u, v V V ; (F1) f u, v = f v, u für alle u, v V ; (F2) u V f u, v = 0 für alle Knoten v V {s, t}. Gleichgewicht Schließlich ist die Größe des Flusses f gegeben durch f := s,v E f s, v = v,t E f v, t Kapazitätsbeschränkung Schiefsymmetrie Achtung: f ist ein Netto-Fluß: fließen tatsächlich 4L von u nach v und 3L von v nach u, so gilt f (u, v) = 1 und f (v, u) = 1. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
196 Komplexität von Algorithmen 8.10 Komplexität von Optimierungsproblemen Ford-Fulkerson Algorithmus (1956), informell Um einem Fluß f in einem Netzwerk auf Maximalität zu prüfen versuchen wir, einen größeren Fluß f zu finden. Dann hat auch der Differenzfluß f = f f positive Größe. Dieser lebt aber auf einem hinsichtlich f modifizierten Netzwerk: Definition Zu einem Netzwerk V, E, s, t, c und einem Fluß f ist das abgeleitete Netzwerk N(f ) = V, E, s, t, c bestimmt durch u, v E gdw c u, v := c u, v f u, v > 0 Achtung: Die Bedingung c u, v f u, v > 0 kann auch erfüllt sein, wenn u, v / E und somit c u, v = 0 gilt. Somit können in N(f ) alte Kanten verschwinden und neue hinzukommen. Wegen (F2) impliziert ein positiver Fluß auf N(f ), dass t von s aus erreichbar sein muß. Anderfalls ist der bisherige Fluß maximal. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
197 Komplexität von Algorithmen 8.10 Komplexität von Optimierungsproblemen Algorithmus für maximalen Fluß (Initialisierung:) f 0 sei der Null-Fluß. (Rekursion:) Falls t von s in N(f n ) erreichbar ist, wähle einen Pfad P von s nach t in N(f n ) ; bestimme die minimale Kapazität k entlang der P - Kanten; Hinzufügen aller P -Kanten mit dem Wert k zu f n liefert f n+1. Beispiel v 0 v v 0 v N(f ) : s t f : s 7 t v 2 v v 2 v 3 In N(f 3 ) ist t von s aus nicht mehr erreichbar, also ist f 3 maximal Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
198 Komplexität von Algorithmen 8.10 Komplexität von Optimierungsproblemen Die maximale Größe eines Flusses ist natürlich durch das Minimum der Kapazitätssummen der Kanten aus s bzw. nach t beschränkt. Daher terminiert der obige Algorithmus nach endlich vielen Schritten, da der Fluß pro Schritt um mindestens 1 größer wird. (Für R- wertige Kapazitäten und Flüsse gilt dieses Argument nicht mehr!) Da obiges Argument bzgl. des Differenzflusses für jeden Fluß f und jeden Fluß F maximaler Größe anwendbar ist, folgt sofort, dass der Algorithmus unabhängig von der Wahl der Verbindungspfade immer ein globales Maximum liefert, nicht nur ein lokales. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
199 Komplexität von Algorithmen 8.10 Komplexität von Optimierungsproblemen Beispiel ( MaximalesMatching MaxFlow ) Einem bipartiten Graph G = V 0 + V 1, E V 0 V 1 ordnen wir als Netzwerk N(G) den Graphen V 0 + V 1 + {s, t}, {s} V 0 + E + V 1 {t} zusammen mit den neuen Knoten s und t und der auf der neuen Kantenmenge konstant 1- wertigen Kapazitätsfunktion zu. Laufzeit: Zwei neue Knoten lassen den Graphen linear wachsen; die Adjazenzmatrix codiert die Kapazitätsfunktion. Korrektheit: Ein Matching M für G läßt sich durch Verbinden der beteiligten Knoten mit s bzw. t zu einem Fluß m auf N(G) ergänzen; die paarweise Disjunktheit der Kanten des Matchings ist äquivalent zur Gleichgewichtsbedingung des Flusses. Die Anzahl der Kanten in M stimmt mit der Größe des Flusses überein, also bewirkt eine Vergrößerung des Matchings eine Vergrößerung des Flusses und umgekehrt. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
200 Komplexität von Algorithmen 8.10 Komplexität von Optimierungsproblemen Beispiel (Fortsetzung) N(f ) : f : Wir stellen fest: Haben alle Kanten Kapazität c, entsteht das abgeleitete Netzwerk durch Umkehrung aller Kanten im gewählten Pfad von s nach t. Beim Anfügen des neuen Pfades an den bestehenden Fluß heben sich entgegengesetzt gerichtete Kanten auf. Auch die Wahl eines absurd langen Pfades, etwa in N(f 1 ) oben, vergrößert das bisherige Matching nur um eine Kante (warum?). Kürzere Pfade haben denselben Effekt und sind daher vorzuziehen. In N(f 3 ) ist dagegen kein kürzerer Pfad möglich. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
201 Komplexität von Algorithmen 8.10 Komplexität von Optimierungsproblemen Formalisierung von Optimierungsproblemen Definition Ein Optimierungsproblem Σ, E, A, L, c besteht aus einem Alphabet Σ, codiert Probleminstanzen und Lösungen; Sprachen E, A Σ der Probleminstanzen bzw. Lösungen; einer Lösungsrelation L E A, die Probleminstanzen mit zulässigen Lösungen verbindet; einer Kostenfunktion L c N. Eine TM M löst das Mini/Maximierungsproblem Σ, E, A, L, c, falls M bei Eingabe von v E mit Ausgabe w A hält und gilt v L w ; c v, w c v, w für alle w A mit v L w. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
202 Komplexität von Algorithmen 8.10 Komplexität von Optimierungsproblemen Da die Kostenfunktion N- wertig ist, hat jede lösbare Instanz eines Minimierungsproblems auch eine minimale Lösung, während bei Maximierungsproblemen keine maximale Lösung zu existieren braucht. Definition PO ist die Klasse der Optimierungsprobleme P = Σ, E, A, L, c mit E, A P ; Es gibt ein Polynom p, so dass aus v, w L folgt w p( v ) (die Lösungen sind kurz ); die charakteristische Funktion χ L und c gehören zu FP ; Definition P wird von einer dtm mit polynomialer Zeitkomplexität gelöst. Das dem Mini/Maximierungsproblem P = Σ, E, A, L, c zugrunde liegende E-Problem P dec hat neben v E eine Zahl k N als Eingabe. Zu entscheiden ist, ob w A existiert mit v, w L und c v, w k. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
203 Komplexität von Algorithmen 8.10 Komplexität von Optimierungsproblemen Bemerkung P PO impliziert natürlich P dec P. Sofern P NP, folgt aus der NP-Vollständigkeit von P dec dann auch P / PO. Beispiel ( MaxMatching PO ) Codierung einer Probleminstanz: Knotenzahl n, Adjazenzmatrix A und binäres Partitionierungs- n- Tupel β, bzgl. dessen Bipartizität vorliegt. Codierung von potentiellen Lösungen durch (n n)- Matrizen M. Syntaxcheck Probleminstanz: A hat nur Einsen in Positionen, deren Koordinaten verschiedene β - Werte haben (der Graph ist bipartite). Syntaxcheck potentielle Lösung: pro Zeile und Spalte tritt höchstens eine Eins auf (das Matching besteht aus disjunkten Kanten). A L M gdw M A komponentenweise (Teilgraph). c(m) ist die Hälfte der Anzahl der Einsen in M (Symmetrie). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
204 Komplexität von Algorithmen 8.10 Komplexität von Optimierungsproblemen Beispiel (Fortsetzung) Der Lösungsalgorithmus verwendet Erreichbarkeit P bzgl. s und t im abgeleiteten Netzwerk; letzteres entsteht durch Umkehrung gewisser Kanten, was in polynomialer Zeit machbar ist. Terminologie Optimierungsproblemen tragen Namen mit Präfix Min oder Max. Beispiel ( MinFärbb / PO ) Eingabe: ungerichteter Graph; zu bestimmen ist die Minimalzahl an Farben für eine Knotenfärbung. Das zugehörige E-Problem MinFärbb dec umfaßt 3- Färbbarkeit, was bekanntlich NP- vollständig ist. Beispiel ( MinTSP / PO ) Hier stimmt MinTSP dec mit dem NP-vollständigen E-Problem TSP überein, vergl. S Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
205 Komplexität von Algorithmen 8.11 Approximation von Optimierungsproblemen 8.11 Approximation von Optimierungsproblemen Gegeben: ein Optimierungsproblem P mit P dec NP-vollständig Ziel: optimale Lösung effizient approximieren, mittels einer dtm mit polynomialer Zeitkomplexität Wir unterscheiden verschiedene Ansätze: Heuristik: ein Algorithmus, der erfahrungsgemäß gute Lösungen konstruiert, aber ohne harte Schranken für die Approximationsgüte. Approximationsalgorithmus: dieser liefert harte Schranke für die Güte der Approximation. PTAS (polynomial-time approximation scheme): parametrisierter Algorithmus, der beliebig gute Approximationen erlaubt, auf Kosten der Laufzeit. volles PTAS: zusätzlich hängt die Laufzeit polynomial von der Approximationsgüte ab. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
206 Komplexität von Algorithmen 8.11 Approximation von Optimierungsproblemen Approximationsalgorithmus für MinKÜ Gegeben: ungerichteter Graph G = V, E ; Gesucht: minimale Knotenmenge D V, die jede Kante e E nichtleer schneidet (Knotenüberdeckung). Gemäß einer Übungsaufgabe ist MinKÜ dec = KÜ NP-vollständig. 1: D := ; {bisherige Überdeckung} 2: while der aktuelle Graph eine Kante e hat do 3: D := D e ; {Überdeckung um Endpunkte von e vergrößern.} 4: G := V e, E ; {diese Knoten und inzidente Kanten aus G entfernen (zwei Zeilen und Spalten der Adjazenzmatrix löschen)} 5: end while Korrektheit: Jede aus E entfernte Kante schneidet D nichtleer, und alle Kanten werden aus E entfernt. Laufzeit: O( E ), denn jede Kante wird irgendwann entfernt. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
207 Komplexität von Algorithmen 8.11 Approximation von Optimierungsproblemen Güte der Approximation Satz Die minimale Größe opt(g) einer Knotenüberdeckung und die Größe c(g) der vom Algorithmus gelieferten Lösung erfüllen c(g) 2opt(G). Beweis. D entsteht durch Vereinigung paarweise disjunkter Kanten. Jede andere Knotenüberdeckung D, speziell eine optimale, muß einen Endpunkt jeder dieser Kanten enthalten, also mindestens D /2 viele Knoten. Definition Für ε > 0 heißt ein deterministischer Algorithmus für P mit polynomialer Laufzeit ε-approximierend für P = Σ, E, A, L, c, falls c v, w opt(v) opt(v) ε wobei opt(v) := opt{ c v, w : v, w L } Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
208 Komplexität von Algorithmen 8.11 Approximation von Optimierungsproblemen Beispiel Der obige Algorithmus für MinKÜ ist 1-approximierend, denn c(g) 2opt(G) impliziert c(g) opt(g) opt(g). Für ε < 1 ist der Algorithmus nicht ε- approximierend: G : liefert c(g) = 2 aber opt(g) = 1. Beispiel ( SiT(k) ) Das O-Problem Scheduling of Independent Tasks(k) hat ein n-tupel t N n als Eingabe, zu interpretieren als Bearbeitungszeiten von n voneinander unabhängigen Aufgaben (Tasks). Für diese stehen k gleichmächtige Prozessoren zur Verfügung. Gesucht ist eine Abbildung S(t) n k (Arbeitsplan oder Schedule), die die Gesamtlaufzeit T (t) minimiert: T (t) = max{ t i : j < k } i S(t) 1 {j} Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
209 Komplexität von Algorithmen 8.11 Approximation von Optimierungsproblemen Ein typischer Laufzeitplan hat etwa die Form 5 4 Prozessor Zeit Verschieben der letzten Aufgabe von Prozessor 4 nach Prozessor 1 verbessert in diesem Fall die Gesamtlaufzeit. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
210 Komplexität von Algorithmen 8.11 Approximation von Optimierungsproblemen Idee für einen SiT(k)- Algorithmus: die Aufgaben gemäß Zeitbedarf absteigend sortieren, in dieser Reihenfolge so verteilen, dass Prozessoren mit der bisher geringsten Belastung bevorzugt werden. Algorithmus für SiT(k) Gegeben: t N n ; Gesucht: Schedule n S(t) k, der die Gesamtlaufzeit minimiert. 1: t absteigend sortieren; 2: for m < k do 3: T m = 0 ; 4: end for 5: for i < n do 6: wähle j < k mit T j = min m<k T m ; 7: S(i) := j ; 8: T j := T j + t i ; 9: end for Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
211 Komplexität von Algorithmen 8.11 Approximation von Optimierungsproblemen Korrektheit: Die zweite FOR- Schleife sorgt dafür, dass jedem Task ein Prozessor zugeordnet wird. Laufzeit: Wegen der Konstanz von k haben die erste FOR- Schleife und der Körper der zweiten FOR- Schleife konstante Laufzeit. Also benötigt die zweite Schleife lineare Laufzeit. Die Sortierung erfordert O(n log n). Beispiel 1, 3, 5, 3, 10, 7 liefert umsortiert t 0, t 1, t 2, t 3, t 4, t 5 = 10, 7, 5, 3, 3, 1, was bei k = 3 Maschinen zu folgenden Zuordnungen und Laufzeiten führt: S(t) 1 {0} = {0}, S(t) 1 {1} = {1, 4}, S(t) 1 {2} = {2, 3, 5} 2 Prozessor Zeit Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
212 Komplexität von Algorithmen 8.11 Approximation von Optimierungsproblemen Satz Der obige Algorithmus ist 1-approximierend. Beweis Wähle eine Aufgabe i, die zur Zeit T (t) endet. Falls i < k folgt t i = T (t), und somit T (t) = T opt. Andernfalls haben wir Prozessor k Da alle Prozessoren bis zur Zeit T (t) t i 0 T (t) t i T (t) beschäftigt sind, gilt T (t) t i T opt und folglich T (t) T opt t i Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
213 Komplexität von Algorithmen 8.11 Approximation von Optimierungsproblemen Beweis (Fortsetzung) Nach Voraussetzung muß zudem t i T (t) t i und folglich t i T opt gelten, denn sonst wäre die Aufgabe i früher verplant worden. Damit also T (t) T opt T opt t i T opt t i t i = 1 Ohne Beweis stellen wir fest, dass der Algorithmus sogar 1 3 -approximierend ist. Man spricht in diesem Zusammenhang auch von der Güte der Approximation. Ziel: PTAS für k = 2. Dazu: Optimalalgorithmus für SiT(2) verwenden: finde alle Teilsummen von t N n mit dynamischer Programmierung; jede minimale Teilsumme τ := 1 2 i<n t i liefert das Minimum; es kann verschiedene Möglochkeiten geben, das zu erreichen. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
214 Komplexität von Algorithmen 8.11 Approximation von Optimierungsproblemen Für t N n sei im Folgenden B j die Liste der möglichen Teilsummen des Anfangsstücks t o, t 1,..., t j 1, und bezeichne die Konkatenation von Listen. Optimalalgorithmus für SiT(2) Gegeben: t N n ; Gesucht: Schedule n S(t) i<n t i ; B 0 = 0 ; 2, der die Gesamtlaufzeit minimiert. 1: τ := 1 2 2: for j < n do 3: B j+1 := B J (t j + B j ) = B j b + t j : b B j ; 4: end for 5: finde die kleinste Komponente b in B n mit b τ ; 6: finde eine Teilfolge von t i : i < n mit Summe b durch Backtracking durch die B i ; ordne diese dem Prozessor 0 zu Korrektheit: Klar. Laufzeit: O(n τ), aber dies ist exponentiell in der Länge der (vernünftigen nicht-unären) Codierungen der t i! Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
215 Komplexität von Algorithmen 8.11 Approximation von Optimierungsproblemen Beispiel Für t = 10, 53, 37, 22 erhalten wir τ = 122/2 = 61 sowie B 0 = 0 B 1 = 0, B 2 = 0, 10, , B 3 = 0, 10, 53, 63, , , , B 4 = 0, 10, 53, 63, 37, 47, 90, 100, 22, 32, 75, 59, 69, 112, 122 Damit ordnet die optimale Lösung den beiden Prozessoren die Aufgaben der Längen 22 und 37 bzw. 10 und 53 zu. Idee: ε-approximation für Eingabe t N n durch Optimallösung für linear verkürzte Eingabe t = rnd( 1 λ t) Nn mit λ > 1 realisieren. Durch die Verkürzung der Eingabewerte um den Faktor λ gehen Bits verloren (Rundungsfehler), daher wird S(t ) i.a. nicht mit S(t) übereinstimmen. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
216 Komplexität von Algorithmen 8.11 Approximation von Optimierungsproblemen Der relative Fehler der Kosten hat dann die Form c(t) opt(t) le λ opt(t ) opt(t) λ opt(t ) opt(t) opt(t) opt(t) τ Nun müssen wir durch geeignete Wahl von λ sicherstellen, dass der Zähler nach oben durch τ ε beschränkt ist, damit der relative Fehler ε bleibt. Der Vergleich entsprechender Teilsummen b und b für t bzw. t aus den jeweiligen Optimalalgorithmen liefert λ b b = λ b b /λ λ n 2 ( ) da b eine Summe aus höchstens n gerundeten Werten ist. Setze λ := max{1, 2τɛ/n} Falls 1 2τ ɛ/n gilt, ist die optimale Lösung des ursprünglichen Problems zu bestimmen, was dem Zähler des obigen Bruchs den Wert 0 zuweist. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
217 Komplexität von Algorithmen 8.11 Approximation von Optimierungsproblemen Lineare Verkürzung durch Abschneiden von Ziffern/Bits umgeht reelle Arithmetik: statt rnd ist dann zu verwenden, wodurch in ( ) der Faktor 1 2 entfällt. Für die β Basis der Zahlencodierung erhält man den Skalierungsfaktor λ := β r mit r := max{ x N : β x τε/n } Die Zeitkomplexität liegt nun in O(n τ/λ) = O(n/ε), was linear ist. Definition Ein PTAS für ein O-Problem P = Σ, E, A, L, c ist ein Algorithmus M mit Eingabe v E und ε > 0, dessen Ausgabe w A mit v, w L einen relativen Fehler ε aufweist. Weiterhin muß für jedes ε > 0 ein Polynom p ε existieren, so dass M(, ε) eine Laufzeit in O(p ε ) hat. Ein PTAS heißt voll, falls die Laufzeit des Algorithmus polynomial in v und in 1/ε ist. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
218 Komplexität von Algorithmen 8.11 Approximation von Optimierungsproblemen Beispiel Der oben beschriebene Algorithmus für SiT(2) ist ein volles PTAS. Beispiel Das O-Problem MinBinPAcking hat als Eingabe ein Tupel a N n von Gewichten und eine Kapazität C N. Gesucht ist die Minimalzahl an Körben der Kapazität C, die alle Gewichte aufnehmen können. Diese Problem besitzt ein PTAS dessen Laufzeit exponentiell in 1/ε ist. Unter der Voraussetzung P NP existiert kein volles PTAS für MinBinPAcking (ohne Beweis). Satz Unter der Voraussetzung P NP existiert für kein ε > 0 ein ε- approximierender Algorithmus für MinTSP. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
219 Komplexität von Algorithmen 8.11 Approximation von Optimierungsproblemen Beweis Indirekt: wir nehmen an, A sei ein ε- approximierender Algorithmus für MinTSP. Dann läßt sich das E-Problem HamiltonscherKreis (HK) in polynomialer Zeit von einer dtm lösen, im Widerspruch zu seiner NP- Vollständigkeit. Zu einem ungerichteten Graphen G = V, E definieren wir die Entfernungsmatrix 0 falls u = v d u,v := 1 falls {u, v} E 2 + εn sonst Die von A berechnete Rundreise möge die Länge K haben. Behauptung: G hat genau dann einen HK, wenn K n(1 + ε). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
220 Komplexität von Algorithmen 8.11 Approximation von Optimierungsproblemen Beweis (Fortsetzung) ( ) Besitzt G einen HK, so hat die optimale Rundreise die Länge n. Dann gilt K n = K 1 ε gdw K n(1 + ε) n n ( ) Ohne HK in G hat die optimale Rundreise mindestens die Länge 2 + εn + n n + εn = 1 + n(1 + ε) > n(1 + ε) Der resultierende Algorithmus für HK berechnet also d wie oben, wendet A auf die entsprechende Instanz von MinTSP an und prüft, ob die Länge des gefundenen Rundwegs durch n(1 + ε) beschränkt ist. Die Korrektheit ist klar, und die Laufzeit ist polynomial. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
221 Komplexität von Algorithmen 8.11 Approximation von Optimierungsproblemen Die Voraussetzung P NP liefert eine Einteilung der O-Probleme in eine strikt wachsende Hierarchie von Klassen mit Trennbeispielen: PO det. Polynomialzeit-Lösungsalgorithmen MaxMatching vptas volle PTAS SiT(2) PTAS Polynomialzeitapproximationsschemata MinBinPacking APX es ex. ein ε-approximierender Algo MinKÜ NPO ndet. Polynomialzeit-Lösungsalgorithmen MinTSP Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
222 Komplexität von Algorithmen 8.12 Raumkomplexität 8.12 Raumkomplexität Speicherbedarf von Algorithmen ist das zweite wichtige Effizienzkriterium. Definition (1. Versuch) Eine Funktion N t R + wird als Raumkomplexität einer ntm M bezeichnet, wenn der Kopf von M für jede Eingabe w X n höchstens auf t(n) verschiedene Felder zugreift. (Á priori muß M nicht immer halten!) (N)PSPACE bezeichnet die Klasse aller E-Probleme, die von einer (n)dtm mit polynomialer Raumkomplexität akzeptiert werden können. In Analogie zur oben verwendeten Schreibweise findet man auch die Bezeichnungen PTIME und NPTIME für P bzw. NP. Da eine TM pro Schritt nur ein Feld beschreiben kann, gilt automatisch P = PTIME PSPACE und NP = NPTIME NSPACE Obwohl die Turingmaschinen hier nicht immer halten müssen, gilt Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
223 Komplexität von Algorithmen 8.12 Raumkomplexität Satz PSPACE- Sprachen sind entscheidbar. Beweisskizze Für jede Eingabe kann nur endlicher Teil des Bandes erreicht werden, also gibt es auch nur endlich viele mögliche Konfigurationen. Berechnet man zunächst eine Schranke für deren Anzahl und zählt dann die Schritte, so kann man feststellen, wann sich eine Konfiguration wiederholt haben muß. Im deterministischen Fall kann die Eingabe dann nicht mehr akzeptiert werden, insofern kann man die Berechnung abbrechen. Für eine ntm M versagt dieses Argument, weil Berechnungszweige ignoriert werden können. Der übliche Übergang zur Determinisierung M d, führt hier leider nicht weiter: die Schranke für die Anzahl der erreichbaren Konfigurationen ist exponentiell in der Raumkomplexität, aber die Buchführung über die Berechnungstiefe in M d erfolgte unär! Statt hier etwa zu binärer Darstellung überzugehen, wählen wir einen anderen Ausweg. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
224 Komplexität von Algorithmen 8.12 Raumkomplexität Zuvor aber eine vereinfachende Annahme über Turingmaschinen: Lemma Jede 1-Band TM mit Raumkomplexität t(n) n ist äquivalent zu einer 1-Band TM mit derselben Raumkomplexität, die nur mit leerem Band halten kann. Beweisskizze Die Eingabe w Σ wird am rechten und am linken Rand durch spezielle Randmarkierer begrenzt. Nach Rückkehr zum rechten Rand von w wird die Ursprungsmaschine ausgeführt, wobei die Randmarkierer nach Bedarf verschoben werden. Hält diese Berechnung, wird der Bandbereich zwischen den Randmarkierern (einschließlich) gelöscht. Im Gegensatz zum bislang unbestimmten Verhältnis zwischen nichtdeterministischen und deterministischen Turing-Maschinen bei der Zeitkomplexität, herrscht bei der Raumkomplexität Klarheit: Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
225 Komplexität von Algorithmen 8.12 Raumkomplexität Satz (Savitch, 1970) Jede ntm mit polynomialer Raumkomplexität p kann von einer dtm mit Raumkomplexität p 2 simuliert werden, also PSPACE = NPSPACE. Beweis Die ntm M habe Raumkomplexität p(n) n und möge nur bei leerem Band halten, d.h., K F = q F, # ist die einzige Haltekonfiguration. Zwecks Abschätzung der Anzahl κ der von der Initialkonfiguration bei der Berechnung von w mit w = n aus potentiell erreichbaren Konfigurationen setzen wir r := Q und m := B. κ r m p(n) p(n) < r (m p(n)) 2 < 2 C p(n) für geeignetes C N Wir betrachten jetzt nur noch solch potentiell erreichbare Konfigurationen. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
226 Komplexität von Algorithmen 8.12 Raumkomplexität Beweis (Fortsetzung) Genau dann, wenn eine Konfiguration K von K aus in höchstens 2 i Schritten erreicht werden kann, setzen wir abkürzend REACH(K, K, i) = true Also akzeptiert M die Eingabe w genau dann, wenn gilt wobei K w REACH(K w, K F, C p(n)) = true die Initialkonfiguration bei Eingabe w ist. Gesucht: ein deterministischer Algorithmus für REACH(K, K, i), der für Werte i < C p(n) selbst polynomiale Raumkomplexität hat. Wir geben eine rekursive Konstruktion für einen derartigen Algorithmus an: i = 0 : REACH(K, K, 0) = true gdw K = K oder K K. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
227 Komplexität von Algorithmen 8.12 Raumkomplexität Beweis (Fortsetzung) i + 1 : Wir nehmen an, für i 0 haben wir einen REACH-Algorithmus mit der gewünschten Eigenschaft. Nun ist REACH(K, K, i + 1) genau dann wahr, wenn eine Zwischenkonfiguration K existiert mit REACH(K, K, i) = true und REACH( K, K, i) = true Insgesamt sind dann höchstens 2 2 i = 2 i+1 Schritte nötig, um K von K aus zu erreichen. Der Algorithmus für i + 1 probiert nun systematisch alle von der K w potentiell erreichbaren Konfigurationen K durch. Raumkomplexität: Die Spezifikation einer erreichbaren Konfiguration benötigt maximal p(n) + 2 Bandzellen. Beim rekursiven Aufruf kann der Platz vom letzten Versuch wiederverwendet werden. Der Zähler i ist durch C p(n) O(p(n)) beschränkt. aus Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
228 Komplexität von Algorithmen 8.12 Raumkomplexität Beweis (Fortsetzung) Der Raumbedarf S(i) erfüllt damit die Rekursion S(0) = C p(n) und S(i + 1) = C p(n) + S(i) Dies läßt sich auflösen zu S(C p(n)) = C p(n) + S(C p(n) 1) = C p(n) + C p(n) + S(C p(n) 2)... = (C p(n)) 2 Damit ist die Behauptung bewiesen. Nun folgt unmittelbar NP NPSPACE = PSPACE REC. Für die Oberklasse PSPACE von NP läßt sich nun in analoger Weise der Begriff der Vollständigkeit formulieren. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
229 Komplexität von Algorithmen 8.12 Raumkomplexität Definition Die Syntax quantifizierter Boole scher Formeln (qbf) hat die BNF ϕ ::= x true false ϕ ϕ ϕ ϕ ϕ ϕ ϕ x.ϕ x.ϕ Die Menge der freien Variablen einer qbf ϕ ist gegeben durch Frei(true) = Frei(false) := Frei(x) := {x} Frei( ϕ) := Frei(ϕ) Frei(ϕ ψ) = Frei(ϕ ψ) = Frei(ϕ ψ) := Frei(ϕ) Frei(ψ) Frei( x.ϕ) = Frei( x.ϕ) := Frei(ϕ) {x} Nicht freie Variablen sind durch einen Quantor gebunden. ϕ heißt geschlossen, falls jede auftretenden Variable gebunden ist. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
230 Komplexität von Algorithmen 8.12 Raumkomplexität Schreibweise: ϕ(x 0, x 1,..., x n 1 ) bedeutet Frei(ϕ) { x i : i < n}. Fakt Jede geschlossene qbf ϕ kann in sogenannter Prenex-Normalform (PNF) dargestellt werden ϕ = Q 0 x 0. Q 1 x Q n 1 x n 1. ψ(x 0,..., x n 1 ) wobei ψ keine Quantoren enthält. Mit Hilfe von Dummy-Variablen ist es zudem möglich, alternierende Prenex-Normalform (apnf) zu erreichen, bei der Existenz- und All-Quantor alternieren: ϕ = x 0. x Q m 1 x m 1. ψ(x 0,..., x m 1 ) Beispiel Das E-Problem QuantifizierteBoolescheFormel (QBF) hat als Eingabe eine geschlossene quantifizierte Boolesche Formel ϕ in PNF. Zu entscheiden ist, ob ϕ wahr ist. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
231 Komplexität von Algorithmen 8.12 Raumkomplexität Satz QBF PSPACE. Beweis. Enthält ϕ = Q 0 x 0. Q 1 x Q n 1 x n 1. ψ(x 0,..., x n 1 ) keine Quantoren, gilt ϕ {true, false}. Andernfalls entfernt man Q 0 und bewertet A = Q 1 x Q n 1 x n 1. ψ(false,..., x n 1 ) B = Q 1 x Q n 1 x n 1. ψ(true,..., x n 1 ) Falls Q 0 =, bildet man A B, andernfalls A B. Die Laufzeit dieses rekursiven Verfahrens beträgt O(2 n ), bei einer Rekursionstiefe von n (Anzahl der Quantoren). Da die Auswertung quantorenfreier Formeln logarithmischen Platz in der Anzahl der Variablen benötigt (HA), liegt der Platzbedarf in O(n + log n) = O(n). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
232 Komplexität von Algorithmen 8.12 Raumkomplexität Satz QBF ist PSPACE- hart und somit PSPACE- vollständig. Beweis (vergl. Sipser) Für L PSPACE ist L QBF nachzuweisen. Betrachte eine dtm M für L Σ mit polynomialer Raumkomplexität p. Analog zum Beweis des Cooke schen Satzes können Zustand, Bandinhalt und Kopfposition von M durch Boolesche Formeln in KNF beschrieben werden, also auch die Konfigurationen von M. Wir führen neue Variable c i für Konfigurationen ein und konstruieren daraus entsprechend der Idee im Beweis des Satzes von Savitch eine qbf ρ c0,c 1,i, die ausdrückt, dass c 1 von c 0 aus in höchstens 2 i Schritten erreicht werden kann. Für w Σ n ist dann w L äquivalent zur Wahrheit von ρ cw,c F,C p(n). Behauptung: w ρ cw,c F,C p(n) braucht polynomiale Zeit in w = n. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
233 Komplexität von Algorithmen 8.12 Raumkomplexität Beweis (Fortsetzung) Idee: Abschätzung der Zeit durch Abschätzung der Länge. Wie zuvor ist der Fall ρ c0,c 1,0 trivial. i i + 1 mittels Zwischenkonfigurationen: ρ c0,c 1,i+1 = m. (ρ c0,m,i ρ m,c1,i ) (vorläufig) Das Einfügen von Zwischenkonfigurationen verdoppelt aber die Länge der Formeln, was zu exponentiellem Wachstum führt. Das läßt sich mit Hilfe universeller Quantifizierung verhindern: ρ c0,c 1,i+1 = m. x. y. ( ( x, y = c 0, m x, y = m, c 1 ) ρ x,y,i ) was die Länge pro Schritt um eine Konstante vergrößert, bei O(p(n)) Schritten also ρ cw,c F,C p(n) O(p(n)). Das Hinschreiben braucht also O(p(n)) Zeit. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
234 Komplexität von Algorithmen 8.12 Raumkomplexität QBF kann als Erweiterung von Sat aufgefaßt werden: eine KNF-Formel ϕ(x 0,..., x t 1 ) ist genau dann erfüllbar, wenn folgende Formel wahr ist x 0. x x t 1. ϕ(x 0,..., x t 1 ) qbf-formeln in apnf lassen sich auch spieltheoretisch interpretieren: zwei Spieler, Eloise und Abelard, wählen abwechsend Werte für die Variablen in ψ = x 0. x Q m 1 x m 1. ϕ(x 0,..., x m 1 ) Eloise für die durch Existenzquantoren gebundenen Variablen, Abelard für die übrigen. Eloise gewinnt, falls in der so bestimmten Belegung ϕ wahr ist, andernfalls gewinnt Abelard. Definition Die Sprache FormelSpiel besteht aus denjenigen geschlossenen Formeln in apnf, für die Eloise eine Gewinnstrategie hat. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
235 Komplexität von Algorithmen 8.12 Raumkomplexität Man überzeugt sich leicht davon (HA!), dass FormelSpiel PSPACE - vollständig ist. Die kleinste Raumkomplexität, die sich mit der ursprünglichen Definition formulieren läßt, ist linear, O(n), denn der Platz der Eingabe zählt mit! Doch eine sinnvolle Definition sub-linearer Raumkomplexität erfordert, die Handhabung der Eingabe zu überdenken: Definition (Raumkomplexität revisited) Eine 2-Band Turingmaschinen mit einem read-only Eingabeband und einem normalen Arbeitsband hat Raumkomplexität f (n), falls jede Eingabe der Länge n höchstens f (n) Raum auf dem Arbeitsband benötigt. Wenn es um die Berechnung von Funktionen geht, ist zusätzlich noch ein write-only Ausgabeband vorzusehen. Im Gegensatz zu endlichen Automaten und Kellerautomaten wird die Eingabe nicht notwendig als Strom verarbeitet, da auf dem Eingabeband Schritte in beiden Richtungen möglich sind, two-way statt one-way. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
236 Komplexität von Algorithmen 8.12 Raumkomplexität Weitere interessante Raum-Komplexitätsklassen: Definition Die Klasse L ( NL ) besteht aus allen E-Problemen, die von einer (nicht)deterministischen Turingmaschine mit Raumkomplexität in O(log n) gelöst werden können. Beispiel Sowohl die Sprache der korrekt geklammerten Ausdrücke über {), (} als auch die die Sprache {w {a, b} : w a = w b } liegen in L : Man muß nur die Anzahl noch offener Klammern bzw. die Anzahlen von Symbolen a sowie b binär bestimmen und mit 0 bzw. miteinander vergleichen. Man kann zeigen, dass Erreichbarkeit in gerichteten Graphen und 2-Sat in NL liegen und sogar NL- vollständig sind, woraus L NL P folgt. Es ist offen, ob diese Inklusionen echt sind. Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS / 236
Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395
Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395 Turing-Machine Wir suchen ein Modell zur formalen Definition der Berechenbarkeit von Funktionen und deren Zeit- und Platzbedarf. Verschiedene Modelle
Mächtigkeit von WHILE-Programmen
Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 26. November 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit
Grundlagen der Theoretischen Informatik, SoSe 2008
1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)
Primzahlen und RSA-Verschlüsselung
Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also
Übung Theoretische Grundlagen
Übung Theoretische Grundlagen Berechenbarkeit/Entscheidbarkeit Nico Döttling November 26, 2009 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT University of the State of Baden-Wuerttemberg and National Laboratory
Theoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Turing-Maschine, Berechenbarkeit INSTITUT FÜR THEORETISCHE 0 KIT 07.11.2011 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen
Informationsblatt Induktionsbeweis
Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln
Grundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik 3. Endliche Automaten (V) 21.05.2015 Viorica Sofronie-Stokkermans e-mail: [email protected] 1 Bis jetzt Determinierte endliche Automaten (DEAs) Indeterminierte
4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls
4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls δ(q, a, Z) + δ(q, ɛ, Z) 1 (q, a, Z) Q Σ. Die von einem DPDA, der mit leerem Keller akzeptiert,
Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier [email protected]
Grundlagen Theoretischer Informatik I SoSe 2011 in Trier Henning Fernau Universität Trier [email protected] 1 Grundlagen Theoretischer Informatik I Gesamtübersicht Organisatorisches; Einführung Logik
Einführung in die Algebra
Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv
Die Komplexitätsklassen P und NP
Die Komplexitätsklassen P und NP Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 3. Dezember 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und
1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)
Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff
Theoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
Theoretische Informatik SS 04 Übung 1
Theoretische Informatik SS 04 Übung 1 Aufgabe 1 Es gibt verschiedene Möglichkeiten, eine natürliche Zahl n zu codieren. In der unären Codierung hat man nur ein Alphabet mit einem Zeichen - sagen wir die
Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung
Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung Frank Heitmann [email protected] 13. Mai 2014 Frank Heitmann [email protected] 1/17 Überblick Wir hatten
Grundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen
effektives Verfahren ~ Algorithmus (Al Chwarismi) Regelsystem, Methode, Rezept, Gebrauchsanleitung Programm (griech. προγραφω, vor-schreiben)
effektive Verfahren Ein Verfahren ist effektiv, wenn es für jeden Fall, der in einem zuvor abgegrenzten Bereich von eindeutigen Unterscheidungen auftreten kann, eine eindeutige und ausführbare Handlungsanweisung
Mathematische Maschinen
Mathematische Maschinen Ziel: Entwicklung eines allgemeinen Schemas zur Beschreibung von (mathematischen) Maschinen zur Ausführung von Algorithmen (hier: (partiellen) Berechnungsverfahren). Mathematische
7 Rechnen mit Polynomen
7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
Das Briefträgerproblem
Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................
Programmiersprachen und Übersetzer
Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch
50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte
50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien
1 topologisches Sortieren
Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung
Informatik IC2. Balazs Simon 2005.03.26.
Informatik IC2 Balazs Simon 2005.03.26. Inhaltsverzeichnis 1 Reguläre Sprachen 3 1.1 Reguläre Sprachen und endliche Automaten...................... 3 1.2 Determinisieren.....................................
Gleichungen Lösen. Ein graphischer Blick auf Gleichungen
Gleichungen Lösen Was bedeutet es, eine Gleichung zu lösen? Was ist überhaupt eine Gleichung? Eine Gleichung ist, grundsätzlich eine Aussage über zwei mathematische Terme, dass sie gleich sind. Ein Term
Algorithmen II Vorlesung am 15.11.2012
Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales
Wortproblem für kontextfreie Grammatiken
Wortproblem für kontextfreie Grammatiken G kontextfreie Grammatik. w Σ w L(G)? Wortproblem ist primitiv rekursiv entscheidbar. (schlechte obere Schranke!) Kellerautomat der L(G) akzeptiert Ist dieser effizient?
Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
Konfiguration einer TM als String schreiben: Bandinschrift zwischen den Blank-Zeichen Links von der Kopfposition Zustand einfügen.
H MPKP Konfiguration einer TM als String schreiben: Bandinschrift zwischen den Blank-Zeichen Links von der Kopfposition Zustand einfügen. Beispiel: 1234q567 bedeutet: Kopf steht auf 5, Zustand ist q. Rechnung:
Beweisbar sichere Verschlüsselung
Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit [email protected] 6
Erstellen von x-y-diagrammen in OpenOffice.calc
Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei
3. Ziel der Vorlesung
3. Ziel der Vorlesung Der Zweck der Vorlesung ist das Studium fundamentaler Konzepte in der Algorithmentheorie. Es werden relevante Maschinenmodelle, grundlegende und höhere Datenstrukturen sowie der Entwurf
Lineare Gleichungssysteme
Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der
GTI. Hannes Diener. 6. Juni - 13. Juni. ENC B-0123, [email protected]
GTI Hannes Diener ENC B-0123, [email protected] 6. Juni - 13. Juni 1 / 49 Die Turingmaschine war das erste (bzw. zweite) formale Modell der Berechenbarkeit. Sie wurden bereits 1936 (also lange
Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen
Berechenbarkeit und Komlexität Entscheidbarkeit und Unentscheidbarkeit Wolfgang Schreiner [email protected] Research Institute for Symbolic Comutation (RISC) Johannes Keler University,
Anmerkungen zur Übergangsprüfung
DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung
PowerPoint: Text. Text
PowerPoint: Anders als in einem verarbeitungsprogramm steht in PowerPoint der Cursor nicht automatisch links oben auf einem Blatt in der ersten Zeile und wartet auf eingabe. kann hier vielmehr frei über
Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über
Güte von s Grundlegendes zum Konzept der Güte Ableitung der Gütefunktion des Gauss im Einstichprobenproblem Grafische Darstellung der Gütefunktionen des Gauss im Einstichprobenproblem Ableitung der Gütefunktion
Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.
Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,
Professionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss
Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige
Zeichen bei Zahlen entschlüsseln
Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren
Frohe Weihnachten und ein gutes neues Jahr!
Frohe Weihnachten und ein gutes neues Jahr! Die mit dem Stern * gekennzeichneten Übungen sind nicht verpflichtend, aber sie liefern zusätzliche Punkte. Unten wird immer mit I das reelle Intervall [0, 1]
4. Dynamische Optimierung
4. Dynamische Optimierung Allgemeine Form dynamischer Optimierungsprobleme 4. Dynamische Optimierung Die dynamische Optimierung (DO) betrachtet Entscheidungsprobleme als eine Folge voneinander abhängiger
OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland
OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben
Bestimmung einer ersten
Kapitel 6 Bestimmung einer ersten zulässigen Basislösung Ein Problem, was man für die Durchführung der Simplexmethode lösen muss, ist die Bestimmung einer ersten zulässigen Basislösung. Wie gut das geht,
Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter H. Schmitt David Farago, Christoph Scheben, Mattias Ulbrich Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt
Kompetitive Analysen von Online-Algorithmen
Kompetitive Analysen von Online-Algorithmen jonas echterhoff 16. Juli 004 1 Einführung 1.1 Terminologie Online-Algorithmen sind Algorithmen, die Probleme lösen sollen, bei denen Entscheidungen getroffen
Komplexität und Komplexitätsklassen
Dr. Sebastian Bab WiSe 12/13 Theoretische Grundlagen der Informatik für TI Termin: VL 21 vom 21.01.2013 Komplexität und Komplexitätsklassen Die meisten Probleme mit denen wir zu tun haben sind entscheidbar.
Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])
3.7 Erstellen einer Collage Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) Dann Größe des Dokuments festlegen beispielsweise A4 (weitere
Zwischenablage (Bilder, Texte,...)
Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen
Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.
Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann [email protected]
Mathematischer Vorbereitungskurs für Ökonomen
Mathematischer Vorbereitungskurs für Ökonomen Dr. Thomas Zehrt Wirtschaftswissenschaftliches Zentrum Universität Basel Gleichungen Inhalt: 1. Grundlegendes 2. Lineare Gleichungen 3. Gleichungen mit Brüchen
Kapitel 4 Schaltungen mit Delays (Schaltwerke) Literatur: Oberschelp/Vossen, Kapitel 4. Kapitel 4: Schaltungen mit Delays Seite 1
Kapitel 4 Schaltungen mit Delays (Schaltwerke) Literatur: Oberschelp/Vossen, Kapitel 4 Kapitel 4: Schaltungen mit Delays Seite 1 Schaltungen mit Delays Inhaltsverzeichnis 4.1 Einführung 4.2 Addierwerke
Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen
Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen 1. Quadratische Gleichungen Quadratische Gleichungen lassen sich immer auf die sog. normierte Form x 2 + px + = 0 bringen, in
Der Zwei-Quadrate-Satz von Fermat
Der Zwei-Quadrate-Satz von Fermat Proseminar: Das BUCH der Beweise Fridtjof Schulte Steinberg Institut für Informatik Humboldt-Universität zu Berlin 29.November 2012 1 / 20 Allgemeines Pierre de Fermat
Anwendungshinweise zur Anwendung der Soziometrie
Anwendungshinweise zur Anwendung der Soziometrie Einführung Die Soziometrie ist ein Verfahren, welches sich besonders gut dafür eignet, Beziehungen zwischen Mitgliedern einer Gruppe darzustellen. Das Verfahren
10 Erweiterung und Portierung
10.1 Überblick In vielen Fällen werden Compiler nicht vollständig neu geschrieben, sondern von einem Rechnersystem auf ein anderes portiert. Das spart viel Arbeit, ist aber immer noch eine sehr anspruchsvolle
Software-Engineering SS03. Zustandsautomat
Zustandsautomat Definition: Ein endlicher Automat oder Zustandsautomat besteht aus einer endlichen Zahl von internen Konfigurationen - Zustände genannt. Der Zustand eines Systems beinhaltet implizit die
Konzepte der Informatik
Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens
Die reellen Lösungen der kubischen Gleichung
Die reellen Lösungen der kubischen Gleichung Klaus-R. Löffler Inhaltsverzeichnis 1 Einfach zu behandelnde Sonderfälle 1 2 Die ganzrationale Funktion dritten Grades 2 2.1 Reduktion...........................................
Erwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
Grammatiken. Einführung
Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische
1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:
Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:
Mediator 9 - Lernprogramm
Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop
Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1
Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen
Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt
Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt AMPEL-Steuerung(en) Die Beschreibung und Programmierung der Ampel (vor allem Ampel_5) können sehr kompliziert
Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang
sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche
AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b
AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität
Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?
Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden [email protected] WS 2013/14 Isomorphie Zwei Graphen (V 1, E 1 ) und (V
Erfüllbarkeit und Allgemeingültigkeit
Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 3.3 Aussagenlogik Erfüllbarkeit 44 Erfüllbarkeit und Allgemeingültigkeit Def.: eine Formel ϕ heißt erfüllbar, wennesein I gibt, so dass I = ϕ
Inhalt. Allgemeine Einführung. Argumentationsvermögen. Räumliches Vorstellungsvermögen. Begabungen und Fähigkeiten messen
Beispielheft Inhalt Allgemeine Einführung Test Eins: Test Zwei: Test Drei: Test Vier: Test Fünf: Argumentationsvermögen Auffassungsvermögen Zahlenvermögen Sprachverständnis Räumliches Vorstellungsvermögen
Satz. Für jede Herbrand-Struktur A für F und alle t D(F ) gilt offensichtlich
Herbrand-Strukturen und Herbrand-Modelle Sei F eine Aussage in Skolemform. Dann heißt jede zu F passende Struktur A =(U A, I A )eineherbrand-struktur für F, falls folgendes gilt: 1 U A = D(F ), 2 für jedes
Woche 1: Was ist NLP? Die Geschichte des NLP.
Woche 1: Was ist NLP? Die Geschichte des NLP. Liebe(r) Kursteilnehmer(in)! Im ersten Theorieteil der heutigen Woche beschäftigen wir uns mit der Entstehungsgeschichte des NLP. Zuerst aber eine Frage: Wissen
Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3
Lineare Funktionen Inhaltsverzeichnis 1 Proportionale Funktionen 3 1.1 Definition............................... 3 1.2 Eigenschaften............................. 3 2 Steigungsdreieck 3 3 Lineare Funktionen
Grundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 27. Aussagenlogik: Logisches Schliessen und Resolution Malte Helmert Universität Basel 28. April 2014 Aussagenlogik: Überblick Kapitelüberblick Aussagenlogik: 26.
Softwarelösungen: Versuch 4
Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]
Zusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen
Zusammenfassung Zusammenfassung der letzten LV Einführung in die Theoretische Informatik Woche 6 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Satz 1 Seien F, G Boolesche Ausdrücke
Anleitung über den Umgang mit Schildern
Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder
2.11 Kontextfreie Grammatiken und Parsebäume
2.11 Kontextfreie Grammatiken und Parsebäume Beispiel: Beispiel (Teil 3): Beweis für L(G) L: Alle Strings aus L der Länge 0 und 2 sind auch in L(G). Als Induktionsannahme gehen wir davon aus, dass alle
4 Aufzählungen und Listen erstellen
4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer
Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
Lieferschein Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 [email protected] www.hp-engineering.
Lieferschein Lieferscheine Seite 1 Lieferscheine Seite 2 Inhaltsverzeichnis 1. STARTEN DER LIEFERSCHEINE 4 2. ARBEITEN MIT DEN LIEFERSCHEINEN 4 2.1 ERFASSEN EINES NEUEN LIEFERSCHEINS 5 2.1.1 TEXTFELD FÜR
Modellbildungssysteme: Pädagogische und didaktische Ziele
Modellbildungssysteme: Pädagogische und didaktische Ziele Was hat Modellbildung mit der Schule zu tun? Der Bildungsplan 1994 formuliert: "Die schnelle Zunahme des Wissens, die hohe Differenzierung und
LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.
Zusätze zum Gelben Rechenbuch LU-Zerlegung Peter Furlan Verlag Martina Furlan Inhaltsverzeichnis Definitionen 2 (Allgemeine) LU-Zerlegung 2 3 Vereinfachte LU-Zerlegung 3 4 Lösung eines linearen Gleichungssystems
1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.
Der Serienversand Was kann man mit der Maske Serienversand machen? 1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden. 2. Adressen auswählen,
Enigmail Konfiguration
Enigmail Konfiguration 11.06.2006 [email protected] Enigmail ist in der Grundkonfiguration so eingestellt, dass alles funktioniert ohne weitere Einstellungen vornehmen zu müssen. Für alle, die es
Grundfunktionen und Bedienung
Kapitel 13 Mit der App Health ist eine neue Anwendung in ios 8 enthalten, die von vorangegangenen Betriebssystemen bislang nicht geboten wurde. Health fungiert dabei als Aggregator für die Daten von Fitness-
Dokumentation. estat Version 2.0
Dokumentation estat Version 2.0 Installation Die Datei estat.xla in beliebiges Verzeichnis speichern. Im Menü Extras AddIns... Durchsuchen die Datei estat.xla auswählen. Danach das Auswahlhäkchen beim
Die Klassen P und NP. Dr. Eva Richter. 29. Juni 2012
Die Klassen P und NP Dr. Eva Richter 29. Juni 2012 1 / 35 Die Klasse P P = DTIME(Pol) Klasse der Probleme, die sich von DTM in polynomieller Zeit lösen lassen nach Dogma die praktikablen Probleme beim
Wie halte ich Ordnung auf meiner Festplatte?
Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,
Algorithmische Mathematik
Algorithmische Mathematik Wintersemester 2013 Prof. Dr. Marc Alexander Schweitzer und Dr. Einar Smith Patrick Diehl und Daniel Wissel Übungsblatt 6. Abgabe am 02.12.2013. Aufgabe 1. (Netzwerke und Definitionen)
Codierungstheorie Rudolf Scharlau, SoSe 2006 9
Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets
Lösungsmethoden gewöhnlicher Differentialgleichungen (Dgl.)
Lösungsmethoden gewöhnlicher Dierentialgleichungen Dgl) Allgemeine und partikuläre Lösung einer gewöhnlichen Dierentialgleichung Eine Dierentialgleichung ist eine Gleichung! Zum Unterschied von den gewöhnlichen
EM-Wellen. david vajda 3. Februar 2016. Zu den Physikalischen Größen innerhalb der Elektrodynamik gehören:
david vajda 3. Februar 2016 Zu den Physikalischen Größen innerhalb der Elektrodynamik gehören: Elektrische Stromstärke I Elektrische Spannung U Elektrischer Widerstand R Ladung Q Probeladung q Zeit t Arbeit
4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:
4. AUSSAGENLOGIK: SYNTAX 4.1 Objektsprache und Metasprache 4.2 Gebrauch und Erwähnung 4.3 Metavariablen: Verallgemeinerndes Sprechen über Ausdrücke von AL 4.4 Die Sprache der Aussagenlogik 4.5 Terminologie
