Theoretische Informatik II

Werbung
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
Herunterladen