Theoretische Informatik II Einheit 5.4 Grenzen überwinden 1. Pseudopolynomielle Algorithmen 2. Approximierende Algorithmen 3. Probabilistische Algorithmen Wie kann man “unlösbare” Probleme angehen? • Künstliche Intelligenz – Heuristische Lösung unentscheidbarer Probleme (ohne Erfolgsgarantie) – Theorembeweisen, Programmverifikation und -synthese (unvollständig) • Approximierende & probabilistische Algorithmen – Effiziente Bestimmung von nahezu optimalen Lösungen – Z.B. Primzahltest mit geringem Fehler (logarithmisch statt linear) • Selbstorganisation statt vorformulierter Lösungen – Lernverfahren, Neuronale Netze, genetische Algorithmen, . . . Suche nach neuen Lösungsmöglichkeiten liefert tieferes Verständnis der Materie Theoretische Informatik II §5.4: 1 Grenzen überwinden Pseudopolynomielle Algorithmen Gibt es “leichte” N P-vollständige Probleme? • Was unterscheidet CLIQU E von KP ? – Beide Probleme sind N P-vollständig, aber · 3SAT ≤pCLIQU E codiert Formel durch gleich großen Graph · 3SAT ≤pKP benutzt exponentiell große Zahlen als Codierung – Ist KP nur wegen der großen Zahlen N P-vollständig? • Es gibt “bessere” Lösungen für KP KP ={ (g1..gn, a1..an, G, A) | ∃J ⊆{1..n}. Σi∈J gi ≤G ∧ Σi∈J ai ≥A } – Man muß nicht alle Kombinationen von {1..n} einzeln auswerten – Man kann iterativ den optimalen Nutzen bestimmen, indem man die Anzahl der Gegenstände und das Gewicht erhöht – Sehr effizient, wenn das maximale Gewicht nicht zu groß wird Theoretische Informatik II §5.4: 2 Grenzen überwinden Iterative Lösung für KP KP = { (g1..gn, a1..an, G, A) | ∃J ⊆{1..n}. Σi∈J gi ≤G ∧ Σi∈J ai ≥A } • Betrachte Subprobleme KP (k, g) (g und k fest) – Verwende Gegenstände 1, .., k und Maximalgewicht g≤G – Definiere optimalen Nutzen N (k, g) · N (k, 0) = 0 für alle k · N (0, g) = 0 für alle g · N (k, g) = max{N (k−1, g−gk ) + ak , N (k−1, g)} • Löse Rucksackproblem KP iterativ – – – – Es gilt (g1..gn, a1..an, G, A) ∈ KP ⇔ N (n, G)≥A Gleichungen beschreiben rekursiven Algorithmus für N (n, G) Tabellarischer Algorithmus bestimmt alle N (k, g) mit k≤n, g≤G Laufzeit ist O(n ∗ G) ⇓ (g1..gn, a1..an, G, A) ∈ KP ist in O(n∗G) Schritten lösbar Theoretische Informatik II §5.4: 3 Grenzen überwinden Pseudopolynomielle Algorithmen Liegt das Rucksackproblem KP etwa in P ? • Lösung für KP ist nicht wirklich polynomiell – n ∗ G kann exponentiell wachsen relativ zur Größe der Eingabe – Größe von (g1..gn, a1..an, G, A) ist O(n ∗ (logG + logA)) • KP ist ein Zahlproblem – L⊆Σ∗ ist Zahlproblem, wenn M AX(w), die größte in einer Eingabe w codierte Zahl, nicht durch ein Polynom beschränkt werden kann – Weitere Zahlprobleme: P ART IT ION , BP P , T SP , M SP , . . . – Keine Zahlprobleme: CLIQU E, V C, IS, SGI, LCS, DHC, HC, GC,. . . • KP hat pseudopolynomielle Lösung – Algorithmen für ein Zahlproblem L⊆Σ∗ sind pseudopolynomiell, wenn ihre Rechenzeit durch ein Polynom in |w| und M AX(w) beschränkt ist Theoretische Informatik II §5.4: 4 Grenzen überwinden Starke N P -vollständigkeit • Pseudopolynomiell = ˆ effizient bei kleinen Zahlen – Ist L⊆Σ∗ pseudopolynomiell lösbar, so ist für jedes Polynom p Lp ≡ {w ∈ L | M AX(w)≤p(|w|)} ∈ P – Die Restriktion von KP auf polynomiell große Gewichte liegt in P – Hat jedes Zahlproblem eine pseudopolynomielle Lösung? • T SP ohne pseudopolynomielle Lösung (falls P6=N P) – Der Reduktionsbeweis HC≤pT SP zeigt HC≤pT SPn – Eine Restriktion von T SP auf kleine Zahlen bleibt N P-vollständig • T SP ist stark N P-vollständig – L⊆Σ∗ stark N P-vollständig ≡ Lp N P-vollständig für ein Polynom p – L stark N P-vollständig ⇒ L hat keine pseudopolynomielle Lösung ⇓ Beschränkung auf kleine Zahlen löst das P−N P Problem nicht Theoretische Informatik II §5.4: 5 Grenzen überwinden Approximationsalgorithmen • Viele Probleme haben Optimierungsvariante CLIQU Eopt: bestimme die größte Clique im Graphen T SPopt: bestimme die kostengünstigste Rundreise BP Popt: bestimme die kleinste Anzahl der nötigen Behälter KPopt: bestimme das geringstmögliche Gewicht für einen festen Nutzen Alle Probleme sind N P-hart Wie effizient kann man eine optimale Lösung annähern? • Optimierungsproblem L⊆Σ∗ – Für w ∈ Σ∗ gibt es mehrere akzeptable Lösungen x mit (w, x) ∈ L – OP TL(w): Wert einer optimalen Lösung für Eingabe w • Approximationsalgorithmus A für L⊆Σ∗ – A berechnet für w ∈ Σ∗ ein x=A(w) mit (w, x) ∈ L – RA(w) = OP TL(w) / A(w): Güte des Algorithmus A ∞ – RA = inf{r≥1 | ∀∞w ∈ Σ∗.RA(w)≤r}: asymptotische worst-case Güte Bestimme bestmögliche worst-case Güte einer Approximation – – – – Theoretische Informatik II §5.4: 6 Grenzen überwinden Approximationsschemata für Knapsack KP = { (g1..gn, a1..an, G, A) | ∃J ⊆{1..n}. Σi∈J gi ≤G ∧ Σi∈J ai ≥A } • Multiplikativer Fehler kann beliebig klein werden – Für jedes gibt es einen Approximationsalgorithmus A mit Laufzeit O(n3 ∗ −1) und Güte RA(w)≤1+ für alle w • Kein konstanter additiver Fehler möglich – Für kein k gibt es einen polynomiellen Algorithmus AKP mit der Eigenschaft |OP TKP (w)−AKP (w)|≤k für alle w Gäbe es AKP , dann konnen wir KP wie folgt polynomiell entscheiden – Transformiere w = (g1..gn, a1..an, G, A) in w0 = (g1..gn, a1∗(k+1)..an∗(k+1), G, A∗(k+1)) – Wegen |OP TKP (w 0)−AKP (w 0)|≤k folgt |OP TKP (w)−bAKP (w 0)/(k+1)c | ≤ bk/(k+1)c = 0 – Also gilt w ∈ KP ⇔ bAKP (w 0)/(k+1)c≥A Beweistechnik: Multiplikation des Problems, nachträgliche Division des Fehlers Theoretische Informatik II §5.4: 7 Grenzen überwinden Approximationsschemata für Binpacking BP P = { a1, ...an, b, k | ∃f :{1..n}→{1..k}. ∀j≤k. P i ∈ {i|f (i)=j} ai ≤b } ∞ = 11/9 erreichbar • Asymptotische Güte RA – First-Fit Decreasing: Sortiere Objekte in absteigender Reihenfolge und packe sie jeweils in erste freie Kiste, in der genügend Platz ist – Es gilt F F D(w) = 11/9∗OP TBP P (w) + 4 für alle w • Keine absolute Güte RA < 3/2 möglich (falls P6=N P) – Die Reduktion P ART IT ION ≤pBP P benutzt 2 Behälter Pn der Größe S := i=1 ai/2, auf welche die Zahlen verteilt werden – Jeder Approximationsalgorithmus A mit RA < 3/2 liefert A(w) = 2, falls w ∈ P ART IT ION und sonst A(w)≥3 – Wegen P ART IT ION ∈ N PC kann A nicht polynomiell sein Beweistechnik: Einbettung eines N P-vollständigen Entscheidungsproblems Theoretische Informatik II §5.4: 8 Grenzen überwinden Approximation des Traveling Salesman Problems T SP = { c12, .., cn−1,n, B | ∃ Bijektion π. Pn−1 i=1 cπ(i)π(i+1)+cπ(n)π(1) ≤ B } ∞=3/2 erreichbar bei Dreiecksungleichung • RA – ∀i, j, k. ci,j ≤ci,k +ck,j : Direkte Verbindung kürzer als Umwege: • Keine endliche Grenze für multiplikativen Fehler ∞ – Es gibt keinen polynomiellen Algorithmus A mit RA =r für ein r ∈ N Wenn es A geben würde, dann entscheiden wir HC polynomiell wie folgt – Transformiere einen Graphen G = (V, E) in w = c12, ..., cn−1,n, |V | mit cij = 1 falls {i, j} ∈ E und cij = r|V | + 1 sonst – Dann G ∈ HC ⇒ OP TT SP (w)=|V | und G 6∈ HC ⇒ OP TT SP (w)>(r+1)∗|V | – Für große Graphen: A(w)≤r∗OP TT SP (w) also G ∈ HC ⇔ A(w)≤r∗|V | Für kleine Graphen verwende den exponentiellen Entscheidungsalgorithmus Beweistechnik: Reduktion auf N P-vollständiges Problem mit Multiplikation des Kostenunterschieds zwischen positiver und negativer Antwort Theoretische Informatik II §5.4: 9 Grenzen überwinden Travelling Salesman mit Dreiecksungleichung T SP∆ = { c12, ..., cn−1,n, B | ∀i, j, k. ci,j ≤ci,k +ck,j ∧ ∃π:{1..n}→{1..n}. Pn−1 π bijektiv ∧ i=1 cπ(i)π(i+1) + cπ(n)π(1) ≤ B } • Approximationsalgorithmus – Zu w = c12, ..., cn−1,n, B konstruiere vollständigen Graphen G=(V, E) mit V = {v1, .., vn} und Gewichten ci,j für {vi, vj } ∈ E – Konstruiere minimal spannenden Baum T = (V, ET ) Kruskal Algorithmus (Einheit 5.1) hat Laufzeit O(|V | + |E| log |E|) – Durchlaufe T so, daß jede Kante genau zweimal benutzt wird – Verkürze den entstandenen Rundweg so, daß einem Knoten zum nächsten noch nicht angesteuerten Knoten verzweigt wird • Laufzeit des Algorithmus ist O(n3) ∞≤3/2 • Güte des Algorithmus ist RA Theoretische Informatik II §5.4: 10 (aufwendige Analyse) Grenzen überwinden Probabilistische Algorithmen “Approximation” einer Entscheidung • Verhalten gesteuert durch Zufallszahlgenerator – Falsche Entscheidungen sind möglich aber unwahrscheinlich – Approximation = ˆ Verringerung der Fehlerwahrscheinlichkeit – Fehler unter 2−100 liegt unter Wahrscheinlichkeit von Hardwarefehlern • Viele sinnvolle Anwendungen – Quicksort: schnellstes Sortierverfahren in der Praxis – Linearer Primzahltest (relativ zur Anzahl der Bits) • Wie weist man gut Eigenschaften nach? – Einfaches Modell für probabilistische Algorithmen formulieren – Eigenschaften abstrakter probabilistischer Sprachklassen analysieren Theoretische Informatik II §5.4: 11 Grenzen überwinden Quicksort als zufallsabhängiger Algorithmus • Divide & Conquer Ansatz für Sortierung – Wähle Pivotelement ai aus Liste a1, ..., an – Zerlege Liste in Elemente, die größer oder kleiner als ai sind – Sortiere Teillisten und hänge Ergebnisse aneinander • Laufzeit abhängig vom Pivotelement – O(n∗ log2 n), wenn Teillisten in etwa gleich groß sind – Pivotelement muß nahe am Mittelwert sein – Deterministische Bestimmung guter Pivotelemente zu zeitaufwendig – Wahl eines festen Pivotelements erhöht Laufzeit für bestimmte Eingabelisten auf O(n2) • Gute Pivotelemente sind in der Mehrzahl – Zufällige Wahl führt für jede Eingabe zu Erwartungswert O(n∗ log 2 n) – Im Durchschnitt schneller als deterministische O(n∗ log 2 n)-Verfahren Theoretische Informatik II §5.4: 12 Grenzen überwinden Probabilistische Berechnungsmodelle • Probabilistische Turingmaschine – Struktur: M = (Q, Σ, Γ, δ, q0, B, F ) – Zustandsüberführungsfunktion: δ : Q×Γ → (Q×Γ×{L, R})2 Jede Alternative wird mit Wahrscheinlichkeit 1/2 gewählt – Rechenzeit: maximale Rechenzeit aller möglichen Rechenwege – P T M : polynomiell zeitbeschränkte probabilistische Turingmaschine • P rob(M ↓w): Wahrscheinlichkeit der Akzeptanz – Wahrscheinlichkeit aller akzeptierenden Konfigurationsfolgen relativ zu allen möglichen Konfigurationsfolgen bei Eingabe w • Probabilistische Algorithmen – Abstrakteres Modell: Programme mit zufälligen Entscheidungen – Komplexitätsbestimmung durch asymptotische Analyse wie bisher Was kann man mit polynomiell zeitbeschränkten probabilistischen Algorithmen erreichen? Theoretische Informatik II §5.4: 13 Grenzen überwinden Klassen probabilistischer Sprachen • P P : Probabilistic Polynomial Monte-Carlo-Algorithmen – Wahrscheinlichkeit für korrekte Antwort ist größer als 1/2 w ∈ L ⇒ P rob(M ↓w) > 1/2 und w 6∈ L ⇒ P rob(M6 ↓w) > 1/2 • BP P : Bounded error Probabilistic Polynomial – Wahrscheinlichkeit für korrekte Antwort ist größer als 1/2+ • RP : Random Polynomial – Wahrscheinlichkeit für Akzeptanz von w ∈ L ist mindestens 1/2 – Eingaben w 6∈ L werden mit Sicherheit nicht akzeptiert • ZP P : Zero error PP Las-Vegas-Algorithmen – Erwartungswert der Laufzeit ist polynomiell – Wahrscheinlichkeit für rechtzeitige korrekte Antwort mindestens 1/2 – M gibt keine falschen Antworten Iteration kann Fehler sehr klein machen Theoretische Informatik II §5.4: 14 Grenzen überwinden Beispiel probabilistischer Algorithmen Prüfe ob ein Graph G=(V, E) eine 3-Clique enthält • Teste zufällige Dreieckskandidaten – Zufällige Auswahl von v1 ∈ V und {v2, v3} ∈ E mit v1 6∈ {v2, v3} – Teste deterministisch , ob {v1, v3} ∈ E und {v1, v2} ∈ E gilt – Akzeptiere, wenn Dreieck in k Iterationen gefunden, sonst verwerfe • Wahrscheinlichkeit korrekter Akzeptanz > 1/2 3 – Wahrscheinlichkeit für Auswahl einer Dreieckskante > |E| 1 – Wahrscheinlichkeit für Auswahl des dritten Knotens > |V |−2 3 −k |E|·(|V 3 k . |−2) – Akzeptanzwahrscheinlichkeit > 1 − (1− |E|·(|V |−2) ) = 1 − e – Wähle k := |E|·(|V3 |−2) • Keine falschen Positive – Es wird nur akzeptiert, wenn wirklich ein Dreieck gefunden wird • Laufzeit polynomiell (RP Algorithmus) – Individueller Test ist linear in |G|, Anzahl der Iterationen quadratisch Theoretische Informatik II §5.4: 15 Grenzen überwinden Iteration probabilistischer Algorithmen • k-fache Iteration von RP Algorithmen reduziert Fehlerwahrscheinlichkeit auf 2−k – Ist M die k-fache statistisch unabhängige Iteration einer PTM ML für L ∈ RP , so gilt w ∈ L ⇒ P rob(M ↓w) ≥ 1−2−k und w 6∈ L ⇒ P rob(M6 ↓w) = 1 – Einfaches wahrscheinlichkeitstheoretisches Argument • (2t+1)-fache Iteration eines BP P Algorithmus für −k k t > − log(1−4 liefert Fehlerwahrscheinlichkeit < 2 2) – Sei M t die (2t+1)-fache statistisch unabhängige Iteration einer PTM M für L ∈ BP P , die genau dann akzeptiert, wenn M mindestens t+1-mal k−1 akzeptiert, so gilt für t > − log(1−4 2) w ∈ L ⇒ P rob(M t↓w) > 1−2−k und w 6∈ L ⇒ P rob(M t6 ↓w) > 1−2−k – Aufwendige Analyse (siehe Wegener 75–77 für Details) • Keine Aussagen für P P Algorithmen möglich Theoretische Informatik II §5.4: 16 Grenzen überwinden Primzahltest für n≥3 (Solovay/Strassen) Essentiell für offene kryptographische Systeme 1. Ist n gerade dann halte ohne zu akzeptieren 2. Ansonsten wähle a ∈ {1...n−1} zufällig 3. Ist ggT (n, a)6=1 dann halte ohne zu akzeptieren 4. Ansonsten teste a(n−1)/2 ≡ J(a, n) (mod n) Ist dies der Fall, dann akzeptiere n, sonst verwerfe n (Jacobi Symbol) • RP -Algorithmus für Erkennung von Zusammengesetztheit – Für jede Primzahl gilt a(n−1)/2 ≡ J(a, n) (mod n) (Ausgabe korrekt) – Für zusammengesetztes n gilt dies für maximal die Hälfte aller a<n (Wahrscheinlichkeit eines falschen Akzeptierens maximal 1/2) • Iterative Berechnung von J(a, n) möglich a=1 a<n gerade: a<n ungerade, ggT (a, n)=1: a>n: 1 J(a/2, n), falls (n2−1)/8 gerade, sonst −J(a/2, n) J(n, a), falls (a−1)(n−1)/4 gerade, sonst −J(n, a) J(a mod n, n) • Rechenzeit maximal 6 ∗ (log n)2 Theoretische Informatik II §5.4: 17 Grenzen überwinden Zusammenhänge zwischen den Sprachklassen • P ⊆ ZP P ⊆ RP ⊆ BP P ⊆ P P – ZP P ist wie P, aber Laufzeit ist nur im Erwartungswert polynomiell – ZP P ⊆ – RP BP P folgt aus dem Iterationssatz für RP ⊆ RP und BP P ⊆ P P folgt direkt aus den Definitionen • ZP P = RP ∩ co−RP HMU, Satz 11.17 – Gegenseitige Simulation möglich • RP ⊆ N P HMU, Satz 11.19 – Das Verhalten einer PTM kann durch eine NTM M simuliert werden – Da die PTM kein Wort w 6∈ L akzeptiert, akzeptiert M ebenfalls nicht • N P ∪ co−N P ⊆ P P – NTM akzeptiert, wenn Wahrscheinlichkeit der Akzeptanz nicht Null – Aufwendige Simulation durch P P Algorithmen möglich Theoretische Informatik II §5.4: 18 Grenzen überwinden Sprachklassenhierarchie P:P y N P ∪ co−N P BP P 6 6 NP : 6 N P ∩ :co−N P RP y RP ∩ co−RP ZP P 6 P Theoretische Informatik II §5.4: 19 Grenzen überwinden