Ein Approximationsalgorithmus

Werbung
1
Ein Approximationsalgorithmus
zum MAXIMUM INDEPENDENT SET (MIS)
Eine Ausarbeitung von Massud Salehi ([email protected])
bzgl. des Artikels
"Algorithms for Graphs Embeddable with few Crossings per Edge"
von den Autoren
Alexander Grigoriev
&
Hans L. Bodlaender
Einführung:
Bekanntlich gibt es ja sehr viele Probleme in der Informatik, welche nicht
effizient lösbar sind. Um solche Probleme genauer zu untersuchen, wurden
u.a. aber insbesondere Begriffe wie "Klasse NP", "NP-Vollständigkeit" etc.
eingeführt.
Diese
Begriffe
haben
natürlich
eigene
mathematisch
sehr
genaue
Definitionen, auf welche wir hier aber nicht genauer eingehen werden, da
sie in dieser Ausarbeitung nicht wirklich relevant sind (das Gleiche gilt
auch für manche andere Begriffe, die weiter unten erwähnt werden). Der
Einfachheit halber werden wir uns an dieser Stelle also damit begnügen,
dass NP-vollständige Probleme diejenigen sind, welche sich mit exakten
Algorithmen nicht effizient lösen lassen. Für solche Probleme kann es
sinnvoll sein, wenigstens eine Lösung zu finden, die einer optimalen Lösung
möglichst nahe kommt.
Statt einer exakten Lösungsalgorithmus (welcher zu Zeitaufwendig ist) kann
man sich also mit sog.
Approximationsalgorithmen begnügen. Diese haben
dann (wie der Name es schon erahnen lässt) zwar den Nachteil, dass sie i.a.
keine exakten Lösungen liefern, aber dafür eben effizient(er) sind. Es
stellt sich also die Frage wie ungenau bzw. genau diese Näherungslösungen
am Ende dann wirklich sind.
In dieser Ausarbeitung konzentrieren wir uns auf das Problem MAXIMUM
INDEPENDENT SET (MIS), oder auch STABILE MENGE genannt. Wie der Name es
schon fast sagt, geht es bei diesem Problem darum, eine maximale
Knotenmenge M in einem Graphen G zu bestimmen, so dass keine dieser Knoten
unter einander benachbart sind, also E(G(M)) = Ø. Wir werden wie üblich
zunächst
einige
Definitionen
einführen
um
dann
einen
Approximationsalgorithmus zu MIS angeben zu können. Danach werden wir in
einem LEMMA eine Aussage bzgl. des Algorithmus beweisen und zum Schluss ein
THEOREM über dessen Genauigkeit.
1
2
Definitionen & Konventionen:
Def:
Ein Graph ist ein Tupel G = (V, E), wobei V = {v1, ..., vn} eine endliche
Menge ist und E Teilmenge V×V.
Bem:
An dieser Stelle muss wirklich darauf hingewiesen werden, dass eine
grafische Darstellung (z.B. eine Zeichnung) eines Graphen streng genommen
kein Graph ist, sondern nur eine von mehreren Möglichkeiten G darzustellen.
Tatsächlich ist ein Graph also "ein Modell zur Beschreibung von Objekten,
die untereinander in gewisser Beziehung stehen. Die Objekte werden als
Knoten, die Beziehungen als Kanten (Verbindungslinien zwischen den Knoten)
dargestellt.
Knoten
haben
Namen
und
können
Träger
von
Werten,
Eigenschaften, etc. sein."
Insb. heißt das, dass wir darauf achten müssen, auf was für ein Objekt
(bzw. Oberfläche) wir einen Graphen darstellen oder besser gesagt
"einbetten". Eine Oberfläche kann eine (glatte) Ebene, eine Kugel, ein
Torus usw. sein. Das bringt uns zu dem Begriff "Genus" (bzw. Geschlecht).
In der Literatur wird dieser Begriff immer wieder auf verschiede Weisen
verwendet, was verwirrend sein kann. Mal taucht die Formulierung "... Genus
eines Graphen... " auf, mal "...der Graph auf einer Fläche der Genus g..."
usw. Die Idee basiert im Grunde darauf eine minimale Zahl für
Kantenkreuzungen eines Graphen auf einer Oberfläche anzugeben. Wir einigen
uns auf folgende
Der Genus bzw. das Geschlecht einer Oberfläche sei die Anzahl der Henkel,
die sie besitzt und der Genus bzw. das Geschlecht eines Graphen G sei die
minimale (natürliche) Zahl n, so dass G auf einer Oberfläche mit n Henkeln
Kreuzungsfrei eingebettet werden kann.
Def(Gute Einbettung):
Wir nennen eine Einbettung von G auf K gut, falls gilt:
1. Alle Knoten v aus V sind eindeutig auf S
2. Jede Kantenkreuzung in G ist eindeutig auf S (das soll heißen, dass auf
S keine zwei Kreuzungen in ein und dem selben Punkt positioniert sind)
3. Für jede Kante e = (u,v) aus E gilt: e ist ausschließlich nur mit u und
v benachbart
(Eine Einbettung hat natürlich auch eine eigene mathematische Definition. Darauf einzugehen
wäre aber an dieser Stelle nicht wirklich sinnvoll. Es reicht, wenn wir uns darunter das
vorstellen, wofür der Begriff offensichtlich auch steht.)
2
3
Def:
Seien
•
•
•
wieder
G = (V, E) ein Graph
K eine Oberfläche des Geschlechts g
Für eine bel. Einbettung von G auf K und jedes e aus E sei
λ(e) := Anzahl der Kreuzungen von e auf K (bzgl. der Einbettung),
also die Anz. der Kanten, die e auf K überschneiden
Wir setzen
φ = φ(G):= minüber alle mögl. guten Einbettungen von G auf K (maxe aus E λ(e))
und bezeichnen φ als den Kreuzungsparameter von G (auf K).
Def:
Ein
Graph
G
heißt
planar,
falls
er
den
Kreuzungsparameter null besitzt, also
Genus(G) = φ(G) = 0.
Genus
null
und
den
Erläuterungen zu φ:
(solche Erläuterungen, die im Folgenden immer wieder auftauchen, sollen in erster Linie zum
besseren Verständnis des Sachverhalts beitragen. Inbs. sind sie i.d.R. eher locker und weniger
mathematisch formuliert. Das kann dazu führen, dass sie hin und wieder streng genommen
mathematisch nicht ganz richtig sind)
•
•
•
•
Sei G in q verschiedene Weisen Einbettbar
Bestimme für jede Einbettung
i=1,...,q die Kante e mit der größten
Kreuzungszahl mi := λ(e)
D.h. jetzt haben wir q (nicht unbedingt verschiedene) Zahlen m1,...,mq
Bestimme jetzt φ := min{m1,...,mq}
(ist G planar, so ist mind. ein mi = 0 und somit
φ(G) = min{m1,...,mq} = mi = 0)
Ab jetzt werden wir von folgenden Annahmen ausgehen:
• G=(V,E) ein Graph
• Es liegt immer eine gute Einbettung von G auf K vor (bel. aber feste)
•
Sowohl der Genus g als auch φ seien beschränkt (durch irgendwelche
•
Konstanten)
Zwei Kanten in G können sich evtl. auch mehrmals kreuzen
Jetzt eine Definition, die auf dem ersten Blick unter Umständen sehr
verwirrend sein kann, nämlich die sog. "Baum-Dekomposition". Deshalb schon
vorher eine kurze Bem:
Ziel ist es eigentlich etwas Kompliziertes (zB. einen sehr dichten Graphen)
durch eine einfachere Struktur (ZB. Bäume) zu präsentieren.
Def:
Seien
• I eine endl. Indexmenge aus N (mit p:=|I|)
• Xi Teilmengen aus V, wobei i aus I ~> X := {Xi aus V : i aus I}
• T := (I,F) (~> verwirrend, aber unten folgt eine Erläuterung)
Das Tupel BD(G) := (X,T) nennen wir dann Baum-Dekomposition oder auch
Baumzerlegung, falls:
a) T ist ein Baum
b) Ui aus I Xi = V
c) Zu jeder (u,v) aus E ex. ein i aus I sd u und v in Xi sind
d) Für jedes v aus V induziert Tv := {i aus I : v aus Xi) ein
Unterbaum von T
(Die Xi's werden auch "bags" bzw. "Taschen" genannt)
3
4
Erläuterungen:
• Wie gesagt, soll ja aus G irgendwie so etwas wie Baum entstehen.
• Aber wie soll das gehen, wenn X eine Menge von Mengen ist und T so
komisch definiert ist?
• Die Knoten von T werden mit den Zahlen 1,2,...,p aus I beschrieben,
die wiederum in Wirklichkeit Knotenmengen aus V sind.
• Zusätzlich muss man beachten, das die Xi's i.a. nicht disjunkt sind.
Deshalb auch die Aussage in c):
o Alle Xi's, die zB. den Knoten v enthalten, müssen einen
Unterbaum Tv von T ergeben.
o Dh. Für jedes v aus V muss gelten:
die Xi's, welche v enthalten, müssen in T wieder einen Unterbaum
Tv induzieren (dh. wenn man also diese Xi's nur über die Kanten
von T mit einander verbindet).
Insb. sollte Tv dann zusammenhängend und kreisfrei sein!
• Wie kommen jetzt überhaupt die Kanten von T zustande?
• Die Antwort verbirgt sich in Aussage d):
• für i≠j haben die Knoten Xi und Xj eine gemeinsame Kante, gdw sie
einen gemeinsamen Knoten besitzen; sind sie also disjunkt, so gibt es
keine Kante zwischen ihnen. Dabei können Xi und Xj natürlich höchstens
eine gemeinsame Kante haben, egal wie viele Knoten sie gemeinsam
haben.
Def:
Die Weite eines Baum-Dekomposition (X,T) ist der Wert maxiaus I |Xi|-1.
Die Baumweite eines Graphen G ist dann das Minimum aller Weiten über alle
Baum-Dekompositionen von G.
Def:
Ein Teilgraph H von G heißt Minor von G, wenn er durch eine oder mehrere
der folgenden Operationen entsteht:
1. das Löschen einer Kante
2. das Löschen eines Knoten (und somit auch seine benachbarten Kanten)
3. Kontraktion einer Kante
Offenbar gilt Aussage:
H Minor (oder Teilgraph) von G
=>
4
Baumweite(H) ≤ Baumweite(G)
5
Der Approximations-Algorithmus A
Wir geben jetzt einen Näherungs-Algorithmus (PTAS polynomial time
algorithmus scheme) für das Maximum Independent Set (MIS) an.
Sei G eingebettet auf einer Oberfläche K des Geschlechts g.
Input:
• Graph G
• Kreuzungsparameter φ von G auf K
• Ein k aus N mit k ≥ φ + 2
Beginn -------------------------------------------------------------------1. Sei d die Anzahl aller Kantenkreuzungen in G auf K. Konstruiere aus G
den Graph G'=(V',E') dadurch, dass man jede Kantenkreuzung durch neue
Knoten u1,...,ud ersetzt.
2. Führe eine Breitensuche auf G' aus (mit einem bel. Knoten aus V' als
Wurzel), so dass dann ein Baum T aus G' entsteht.
3. Für jedes i=0,1,...,k-1 gehe wie folgt vor:
3.1.
Lösche in G' die Levels von T, welche kongruent zu i (mod k) sind und
zwar zusammen mit ihren φ folgenden Levels.
Dies führt dazu, dass aus G' nun Untergraphen H1,...,Hr entstehen, so
dass jeder Ht = (Wt, Ft) durch (k-(φ+1)) > 0 aufeinander folgenden
Levels in T induziert ist.
3.2.
Betr. jetzt die Untergraphen G1,...,Gr in G, welche durch die
Knotenmenge Vt:= (Wt geschnitten V) induziert sind; also Gt=(Vt, Et),
wobei Et:= E(Vt) (also Ft c Et c E)
Beachte den Unterschied zwischen den Ht's und den Gt's :
• während die (evtl.) Kreuzungsknoten u1,...,ud in Wt platziert
waren, werden sie in Vt nicht mehr berücksichtigt. (Das ist ja auch
•
sinnvoll, da wir unser MIS nicht in G', sondern in G suchen)
Außerdem werden die Kanten, die nicht in Ft berücksichtigt
worden waren, deren Endknoten sich aber in Vt befinden, jetzt
in den Gt's wieder berücksichtigt. (Insb. verlieren die Gt's
i.a. ihre Baumeigenschaften, was aber nicht schlimm ist)
(*):
Viel wichtiger ist, dass es durch die Vorgehensweise in (3.1)
(also "Lösche ... die Levels ... i ... und zwar zusammen mit
ihren φ folgenden Levels"). Da jede Kante maximal φ Kreuzungen
hat, existiert keine Kante mehr aus E, dessen Endknoten in
verschiedenen Gt's bzw. Vt's liegen!!!
D.h. in G gilt: für i≠j ist kein Knoten in Vi mit einem Knoten
aus Vj benachbart!
3.3.
Zusätzlich gilt für jedes t=1,...,r : Baumweite(Gt)= O(k) (Beweis
später). Daraus folgt, dass wir in jedem Gt eine MIS in Zeit n·2O(k)
(also nicht mehr n·2n) finden können.
Sei also Si ein MIS über alle G1,...,Gr.
(die Schleife mit i ist jetzt hier zu Ende)
4. Bestimme jetzt unter S1,...,Sk-1 die Menge Si mit |Si| maximal.
Setze S := Si
End-----------------------------------------------------------------------Output: S
5
6
Erläuterungen:
• Bei der Wahl von k kann man sich fragen: was ist denn, wenn k >
Höhe(T) ist? Dann kommt man doch früher oder später für irgendein i
in die Situation, in der ein Gt = G ist und wir dann ein Si in G (also
ein MIS) suchen müssen. Das ist richtig, aber in solchen Fällen
lautet das Gegenargument: k ist in erster Linie fest (bzw.
beschränkt). Wenn die Höhe des Baumes T kleiner ist und wir somit in
eine Situation wie oben kommen, dann kann man sagen, dass das Problem
so "einfach" ist, dass man es quasi "per Hand" lösen könnte. Und da
man geneigt ist Probleme (wie zB. MIS) immer so allgemein wie möglich
zu behandeln, ist es so, dass wir von sehr großen Graphen ausgehen;
so groß, dass i.a. k < Höhe(T) ist.
Für kleine Beispiele, um sich die Arbeitsweise von A klar zu machen,
ist es am besten, wenn man k so klein wie möglich, also k= φ+2 wählt.
•
Im Schritt 3.2. muss beachtet werden, dass wir diese Gt's wirklich
für jedes i =0,...,k-1 separat erzeugen müssen. Insb. haben wir am
Ende ja S1,...,Sk-1.
•
Was besagt die Aussage (*)? Oder genauer: Warum müssen wir denn φ+1
Levels löschen, damit keine Kante mehr aus E existiert, dessen
Endknoten in verschiedenen Gt's liegen?
•
In erster Linie dürfen wir im Eifer des Gefechts nicht vergessen,
dass wir ein MIS suchen. Locker formuliert, soll dies dadurch
erreicht werden, dass wir (nach den obigen Regeln) immer so viele
Knoten entfernen, so dass wir irgendwann mit Sicherheit sagen können
unser S bildet ein MIS.
Hier ein besonders vereinfachtes
Algorithmus A verständlich zu machen:
Bsp.
um
die
Grundidee
von
Seien a,b,c aus V, sd. wir in G bzw. in T den Pfad (a-b-c) haben
(a und b nicht benachbart). Was macht dann A?
Falls φ = 0:
• G' ist dann identisch mit G
• Während der i-Schleife müssen wir auf jeden Fall einmal den Knoten
b löschen und da dann a und c in den verschieden Untergraphen Gt
und Gt+1 wären, wäre eine mögliche Wahl von S zB. {a,c,...}
Diese Möglichkeit soll aber immer noch bestehen, wenn φ ≠ 0 ist und
zB. die Kante (a,b) φ-mal von anderen Kanten überkreuzt wird!
Was macht also A in diesem Fall?
• zunächst einmal G' konstruieren, wobei diesmal natürlich G'≠ G
ist.
• erhalten jetzt also den um φ verlängerten Pfad (a-u1-...-uφ-b-c)
• Des weiteren
soll unsere Tiefensuche im Schritt 3. OE so sein,
dass alle Knoten von (a-u1-...-uφ-b-c) in verschiedenen Levels
platziert sind.
• Oben im Fall φ = 0 bzw. (a-b-c) reichte es nur b zu löschen, um
unsere gewünschten Ergebnisse zu erreichen.
• Jetzt aber müssen wir wohl die Knoten u1,...uφ UND b (also φ+1
Knoten) löschen um die selben Ergebnisse (nämlich S={a,c,...}) zu
erhalten.
• So viel zur Grundidee. (Wie schon oben erklärt war dies nur ein
sehr einfaches Bsp. Hätte man sämtliche mögliche Fälle, die A
abdeckt mit einem Bsp. klären wollen, hätte man dementsprechend
ein viel komplizierteres Bsp. angeben müssen, wobei dann die
Übersicht verloren gegangen wäre.)
6
7
LEMMA:
• Sei Gt ein bel. Subgraph, der in A im Schritt 3.2. konstruiert wird und
k wie oben.
Dann gilt:
Baumweite(Gt) = O(k)
Bew.:
Schon mal vorab:
Wir werden jetzt nicht auf die Definition der O-Notation eingehen.
Stattdessen werden wir gewisse Voraussetzungen schaffen, damit wir ein
Ergebnis aus Bakers Forschungen anwenden können.
Da G auf einer Oberfläche K des Geschlechts g (i.a. mit Kreuzungen)
eingebettet ist und G' aus G so konstruiert wird, das man die
Kantenkreuzungen in G auf K durch Knoten ersetzt, besitzt G' auch das
Geschlecht (höchstens) g.
Betr. wir jetzt, wie im 3.1. erklärt, einen der Subgraphen Ht von G' in T.
Darauf basierend wollen wir einen Minor M von G' konstruieren, worauf wir
dann Bakers Ergebnisse anwenden werden:
Ht ist ja durch s:= (k-φ-1)>0 Levels von T induziert.
Sei das Level q+1 in T das erste Level in Ht und das Level q+s in T das
letzte Level in Ht (also (q+s)-q = s).
Betr. jetzt den Minor M von G', der dadurch entsteht, dass man alle Knoten
in T, welche sich auf den ersten q Levels von T befinden zu einem (Wurzel-)
Knoten w kontrahiert und alle Knoten, die sich in T auf den Levels echt
größer q+s befinden, löscht.
M ist also insb. ein Baum, der Ht enthält, die Höhe s = k-φ-1 (wobei
Höhe(w)=0) und den Genus g hat.
Zusätzlich hat der längste Weg zwischen zwei Knoten in M dann maximal die
Länge (bzw. den sog. Diameter) 2(k-φ-1).
Und so ein Minor hat laut Baker maximal die Baumweite O(g·k). Da Ht ein
Subgraph von M ist, hat auch er höchstens die Baumweite O(g·k). Es ist
O(g·k) = O(k), da g ja (durchgehend in dieser Ausarbeitung) als beschränkt
vorausgesetzt wird.
Zu zeigen war aber Baumweite(Gt) = O(k). Dh. wir müssen jetzt genauer auf
die Beziehung zwischen Gt und Ht eingehen.
Plan:
• Wir konstruieren aus Ht einen Graphen H't
• Wir zeigen:
o Baumweite von H't ist auch beschränkt mit O(k)
o Gt ist ein Minor von H't
• Damit wäre die Baumweite von Gt dann auch O(k)
Zu der Konstruktion von H't aus Ht:
Locker formuliert, wollen wir in erster Linie darauf hinaus, dass es zu
jeder Kante (a,b) in Gt (i.a. mit Kantenkreuzungen) einen Pfad P(a,b) von a
nach b gibt. Zusätzlich wollen wir es noch so machen, dass alle Pfade
Knotendisjunkt sind:
• Betr. alle Kreuzungsknoten v (welche wir in A im Schritt 1.
hinzugefügt haben) in Ht
• Ersetze v durch zwei neue Knoten v1 und v2 und der zugehörigen neuen
Kante (v1,v2)
~> Wie soll das gehen?
7
8
•
•
•
•
•
•
Betr. wir dazu eine einfache Kreuzung zweier Kanten (a,b) und
(c,d) in Gt.
Schritt 1. in A: ersetze diese Kreuzung durch v.
Haben jetzt also die Pfade (a-v-b) und (c-v-d), welche nicht
disjunkt sind, da sie den Knoten v gemeinsam haben.
ziehe
diese
zwei
Pfade
jetzt
so
auseinander
(lockere
Formulierung!), so dass aus v die Kante (v1,v2) entsteht.
Jetzt haben wir die Pfade (a-v1-b) und (c-v2-d), welche jetzt
Knotendisjunkt sind, aber durch die Kante (v1,v2) miteinander
verbunden sind.
Um die Eigenschaft "disjunkt" zu erreichen, haben wir also die
Dimension quasi (um eins) erhöht.
Ist jetzt d die Baumweite von Ht, so kann die Baumweite von H't, aufgrund
der oben beschrieben Konstruktion bzw. wenn wir jeden Kreuzungsknoten (in
der selben "Tasche Xi") durch zwei neue ersetzen, dann nicht größer sein
als 2d+1.
Also ist die Baumweite von H't ebenso beschränkt (bzw. O(k)).
Noch zu zeigen: Gt ist ein Minor von H't
Um dies zu zeigen können wir nicht einfach rückwärts die obige Konstruktion
durchgehen. Dennoch ist die Vorgehensweise ziemlich einfach:
Lösche alle Kanten, welche bei der Konstruktion von H't zustande kamen und
durch die die Knotendisjunkten Pfade verbunden waren.
Î
Jetzt sind die Pfade komplett unabhängig von einander
Î
Kontrahiere jetzt alle Kanten der Pfade, so dass von jedem Pfad am
Ende nur noch eine einzige Kante übrig bleibt.
Î
Diese Übriggebliebenen Kanten entsprechen jetzt jenen Kanten in Gt,
ganz am Anfang.
Also ist Gt ein Minor von H't.
Î Baumweite(Gt) = O(k).
q.e.d.
8
9
THEOREM:
Seien
• G ein Graph (mit g, φ beschränkt)
• M eine beliebige maximal unabhängige Menge (MIS) in G
Dann gilt:
Algorithmus A liefert in k·n·2O(k) Schritten als Output eine unabhängige
Knotenmenge S (in G) mit:
(k-φ-1)/k · |M| ≤ |S| ≤ |M|
(Insb. ist S i.a. also nicht maximal im Sinne einer MIS)
Bew.:
Da wir im Algorithmus A (in Schritt 3.3) für jedes i aus {0,...,k-1} eine
unabhängige Menge Si erhalten und am Ende S:= max Si setzen, wissen wir,
dass wir als Output auf jeden Fall eine unabhängige Menge erhalten.
Wieder werden wir an dieser Stelle eine Aussage aus Bakers Ergebnissen
bzgl. unser Algorithmus A zu Hilfe nehmen.
Baker (*):
Während der i-Schleife im Algorithmus A, existiert mind. ein i aus
{0,...k-1}, so dass maximal (φ+1)/k der Knoten von M (also einer optimalen
Lösung in G) sich auf den Levels (von T), welche kongruent zu
i, i+1,...,i+φ (mod k) sind, befinden.
Bezeichne diese Levels jetzt mit i-Levels.
(Diese i-Levels sind genau die Levels, welche im Schritt 3.1. gelöscht werden!)
Î Erläuterung:
• Bestimme für jedes i aus {0,...k-1} die i-Levels:
i,i+1,...,i+φ UND auch die, welche zu diesen bzgl. k kongruent sind.
• Setze q:= (φ+1)/k · |M|
(es ist q < |M|, da (φ+1)<k bzw. (φ+1)/k < 1)
•
•
(*) besagt jetzt:
Es gibt mind. ein i, so dass höchstens q Knoten aus M sich auf die
oben bestimmten i-Levels in T befinden!
Die Idee dabei ist:
• Mindestens wie viele Knoten einer MIS können durch Algorithmus A am
Ende in S landen?
• Andersrum gefragt:
Wie viele Knoten einer MIS werden am Ende in S höchstens ausgelassen?
• (*) basiert eben auf diese zweite Formulierung.
• Sie besagt (mehr oder weniger): höchstens (φ+1)/k Knoten einer MIS
werden ausgelassen.
• Daraus folgt: Mindestens 1 - (φ+1)/k = (k-φ-1)/k Knoten aus einer MIS
landen am Ende (doch) in S.
Î
Also:
(k-φ-1)/k · |M| ≤ |S| ≤ |M|.
Zu "k·n·2O(k)":
Im Algorithmus A ist Schritt 3, dort wo die Gt's und die jeweiligen Si's
bestimmt werden, der aufwendigste.
Wir haben aber schon gezeigt, dass die Baumweiten der Gt's durch O(k)
beschränkt sind.
9
10
Somit kann man für jedes i die gesuchten Mengen in
Schritten finden.
Wegen i=0,...,k-1 folgt also k·n·2O(k) und damit die Beh.
höchstens
n·2O(k)
q.e.d.
Die obige Laufzeit kann man auch so ausdrücken, dass die Auswirkung bzw.
der Einfluss von g und φ deutlich wird. Dazu betr. wir ein ε > 0 und
sprechen dann von einer sog. (1-ε)-Approximation. Unseren k (als Input bei
A) müssen wir dann so wählen, dass k ≥ (φ+1)/ε ≥ φ/ε ist. Damit hätten wir
dann
die
Baumweite
O(g·φ/ε)
(statt
O(k))
und
bei
der
Laufzeit
(φ/ε)·n·2O(g·φ/ε) (statt k·n·2O(k)).
Bem:
Der erste Gedanke bei der Wahl von ε wäre wohl, dass man ihn so klein wie
möglich wählt (damit 1-ε ja quasi zu 1 wird). Wegen "(φ/ε)·n·2O(g·φ/ε)"
müssten wir aber dann eine viel höhere Laufzeit in Kauf nehmen.
Kurz gesagt:
Je mehr man eine höhere Genauigkeit möchte, umso mehr muss man eine höhere
Laufzeit in Kauf nehmen.
10
Herunterladen