Clique

Werbung
Rechenzeit für A
Sei tB die Rechenzeit eines Algo für B.
Seien p,q,r monotone Polynome (– → +).
Rechenzeit des resultierenden Algo für A:
tA (n) p(n) + q(n)·tB(r(n)).
Ist polynomiell, falls tB Polynom.
Insgesamt:
140
Orakel
Für die Angabe von ATB müssen wir das
Unterprogramm für B nicht kennen.
Das Unterprogramm heißt daher auch Orakel.
Wir erhalten Beziehung zwischen A und B,
ohne effiziente Algos für A und B zu kennen.
141
Beweis von unteren Schranken
Wir haben gezeigt:
Kontraposition liefert:
D.h., mit Hilfe von Turing-Reduktionen können
auch untere Schranken übertragen werden.
142
Eigenschaften von Turing-Red.
• T ist reflexiv (ATA).
• T ist transitiv (ATBTC ⇒ ATC)
Definiere: A=TB, wenn ATB und BTA.
• =T ist reflexiv (A=TA)
• =T ist symmetrisch (A=TB ⇔ B=TA)
• =T ist transitiv (A=TB=TC ⇒ A=TC)
⇒ =T ist Äquivalenzrelation.
Äquivalenzklassen: Mengen von „gleich
schweren“ Problemen.
143
Vergleich von Entscheidungs- und
Optimierungsproblemen [K4.2]
TSPopt (travelling salesman problem)
Eingabe: n Orte und eine Entfernungsmatrix.
Aufgabe: Berechne eine billigste Rundreise,
bei der jeder Ort genau einmal besucht wird.
5
Beispiel:
3
1
4
34
2
1
∞
4
3
8
144
Entscheidungs- und Opt.varianten
TSPopt: Berechne eine billigste Rundreise, bei
der jeder Ort genau einmal besucht wird.
TSPeval: Berechne die Kosten einer billigsten
Rundreise, bei der jeder Ort genau einmal
besucht wird.
TSPdec:
Eingabe: n Orte, Entfernungsmatrix, Zahl B.
Frage: Gibt es eine Rundreise mit Kosten
höchstens B, bei der jeder Ort genau einmal
besucht wird?
145
Alle Varianten sich gleich schwer
Zeige: TSPdec T TSPeval T TSPopt T TSPdec
1. TSPdec T TSPeval
Konstruiere Algo für TSPdec mit TSPeval-Orakel
- Löse die Eingabe für TSPdec mit dem Orakel
- Prüfe, ob Kosten der Lsg. höchstens B sind.
2. TSPeval T TSPopt
- Löse die Eingabe für TSPeval mit dem Orakel.
- Berechne aus der Lösung die Kosten.
146
3. TSPopt T TSPdec
Eingabe: Entfernungsmatrix C.
Sei wmax die größte Zahl in C ungleich ∞.
Falls Lösung mit endlichen Kosten ex., sind
diese im Bereich 0,...,n·wmax.
Zwischenschritt: Bestimme min. Kosten:
Binäre Suche mit dem TSPdec-Orakel auf dem
Bereich 0,...,n·wmax.
→ O(log(n·wmax)) Orakelaufrufe
(polyn. in der Eingabelänge)
147
TSPopt T TSPdec (Fortsetzung)
Seien B die minimalen Kosten.
Teste für jede Kante, ob sie notwendig ist:
Probeweise Kosten durch ∞ ersetzen und mit
dem Orakel testen, ob es noch Rundreise
mit Kosten B gibt.
- Wenn ja: Kante nicht notwendig, Kosten
bleiben auf ∞.
- Wenn nein: Kante notwendig, Kosten auf
alten Wert zurücksetzen.
Insgesamt O(log(n·wmax)+n2) Orakelaufrufe.
148
2. Beispiel: Cliquenproblem
Cliqueopt:
Eingabe: Ungerichteter Graph G=(V,E).
Aufgabe: Berechne eine Clique mit maximaler
Knotenanzahl, also eine Menge V´⊆V, so
dass alle Knoten aus V´ paarweise
verbunden sind.
Bsp:
149
Varianten des Cliquenproblems
Cliqueopt: Berechne eine maximale Clique.
Cliqueeval: Berechne die Größe einer max.
Clique.
Cliquedec: Berechne zu zusätzlicher Zahl B,
ob es eine Clique der Größe B gibt.
Es gilt:
Cliquedec T Cliqueeval T Cliqueopt T Cliquedec
150
Cliqueopt T Cliquedec
1. Bestimme die Größe einer max. Clique:
Rufe Orakel mit B=1,...,|V| auf, die Größe ist
der letzte Wert mit Antwort „Ja“.
Sei K die Größe einer max. Clique.
2. Berechnung einer max. Clique:
Entferne jeden Knoten probeweise aus dem
Graphen und teste mit dem Orakel, ob es
noch eine Clique der Größe K gibt.
Insgesamt O(|V|) Orakelaufrufe.
151
3. Beispiel: Bin Packing
BPopt:
Eingabe: n Objekte mit Größen a1,...,an,
Kistengröße b.
Aufgabe: Verpacke die Objekte in möglichst
wenige Kisten.
BPeval: Berechne die minimale Anzahl von
Kisten.
BPdec: Genügen k Kisten?
BPdec BPeval BPopt BPdec.
T
T
T
152
BPopt BPdec
T
1. Bestimme die minimale Kistenanzahl kmin
durch Aufruf d. BPdec-Orakels mit k = 1,...,n.
2. Erzwinge, dass Objekte 1 u. 2 in dieselbe
Kiste gepackt werden und teste, ob kmin
Kisten immer noch reichen.
Dazu: Objekte 1 u. 2 durch ein Objekt mit
Größe a1+a2 ersetzen.
Analog weiter mit den übrigen Paaren von
Objekten.
153
Fazit
Ähnliche Turingreduktionen gibt es für fast alle
anderen Probleme X in der Vorlesung.
Xdec T Xeval T Xopt meist einfach.
Xopt T Xdec meistens:
1. Schritt: (binäre oder lineare) Suche zur
Bestimmung des Werts einer opt. Lösung.
2. Schritt: Bestimmung der Lösung durch
probeweises Verändern der Eingabe.
Es genügt in der Regel, nur die
Entscheidungsvarianten zu untersuchen.
154
Vergleich von verwandten Problemen
[K4.3]
Hamiltonkreis (HC, Hamiltonian circuit)
Eingabe: Ungerichteter Graph G=(V,E).
Frage: Gibt es einen Kreis, der jeden Knoten
genau einmal enthält?
Variante für gerichtete
Graphen: DHC
(directed Hamiltonian
circuit)
155
Satz K4.3.1: DHC =T HC T TSP.
Beweis:
Restriktion
• HC T DHC.
Geg: ungerichteter Graph G=(V,E).
Ersetze jede Kante {u,v} durch (u,v) u. (v,u).
Resultat: Gerichteter Graph G´.
Teste mit DHC-Orakel, ob G´ DHC hat.
Zu zeigen:
1. G´ hat DHC ⇒ G hat HC.
2. G hat HC ⇒ G´ hat DHC.
156
lokale Ersetzung
• DHC T HC.
Geg: Gerichteter Graph G=(V,E).
- Ersetze jeden Knoten v durch Knoten
v1,v2,v3 und Kanten {v1,v2} u. {v2,v3}.
- Ersetze jede Kante (u,v) durch (u3,v1).
- Teste mit dem HC-Orakel, ob G´ HC hat.
u
w
v
u
v1
v2
1. G hat DHC ⇒ G´ hat HC.
2. G´ hat HC ⇒ G hat DHC.
v3
w1
157
Restriktion
• HC T TSPdec:
Geg: ungerichteter Graph G=(V,E).
- Erzeuge TSP-Problem mit |V| Städten und
Entfernungsmatrix
1. G hat HC ⇒ TSP-Lösung mit Kosten |V|.
2. TSP-Lösung mit Kosten |V| ⇒ G hat HC.
Beobachtung: Konstruiertes TSP ist symm.,
erfüllt die Dreiecksungleichung u. hat nur die
Entfernungen 1 und 2. Name: TSPsymm,∆,2
158
Herunterladen