Kap. 4: Baumzerlegung von Graphen Überblick Literatur 4.1

Werbung
Überblick
Kap. 4: Baumzerlegung von
Graphen
• 4.1 Einführung
– Definition und Motivation
Professor Dr. Petra Mutzel
• 4.2 Algorithmen für Graphen mit
beschränkter Baumweite
Lehrstuhl für Algorithm Engineering, LS11
8./9./10. VO
– Dynamische Programmierung
• 4.3 Berechnung einer Baumzerlegung
4./11./18. Dezember 2006
2
Literatur
4.1 Einführung
• Hans L. Bodlaender: A Tourist Guide through Treewidth,
Acta Cybernetica 11, 1-23, 1993 (Intro)
• Viele NP-schwierige Optimierungsprobleme in
Graphen G sind in polynomieller Zeit lösbar, falls G
ein Baum ist.
• A. Koster, H. Bodlaender, S. van Hoesel: Treewidth:
Computational Experiments, ZIB-Report 01-38, Berlin,
2001 (Alternative Charakterisierungen, Heuristiken)
• Bodlaender, Fomin, Koster, Kratsch, Thilikos: On Exact
Algorithms for Treewidth, ESA 2006, LNCS 4168, 2006
• Idee: Vielleicht sind diese auf „baumartigen“
Graphen auch in polynomieller Zeit lösbar.
• Bachoore und Bodlaender: A branch and bound algorithm
for exact, upper, and lower bounds on Treewidth, AAIM
2006, LNCS 4041, 2006.
• Einführung der Baumweite von G: „Wie weit ist G
weg von einem Baum?“
• R. Niedermeier und J. Alber: Parametrisierte Algorithmen,
Universität Tübingen, VO-Folien im WS 2002/03, S. 130151 (Intro, Dynamische Prog.)
• Hoffnung: Polynomielle Algorithmen für Graphen
mit beschränkter Baumweite.
3
Definition der Baumweite
4
Beispiel Baumzerlegung
Robertson & Seymour 1983
b
• Eine Baumzerlegung von G=(V,E) ist ein Paar
({Xi: i∈I}, T=(I,F)) mit {Xi: i∈I} ist eine Familie von
Teilmengen von V, eine für jeden Knoten von T, und
einem Baum T mit folgenden Eigenschaften:
a
– ⋃i∈I Xi = V
– Für alle Kanten vw∈E existiert ein i∈I mit v,w∈Xi
– Für alle i,j,k∈I: falls j auf einem Weg von i nach k in T
liegt, dann gilt Xi∩Xk ⊆ Xj
• Die Baumweite einer Baumzerlegung ({Xi: i∈I}, T=(I,F))
ist: maxi∈I |Xi|-1.
• Die Baumweite eines Graphen tw(G) ist die kleinste
Baumweite über alle möglichen Baumzerlegungen von G.
c
d
e
f
cd
e
de
f
h
i
j
k
g
i j
ab
c
gf
df
h
h i
i k
Ein Graph G und eine Baumzerlegung von G mit tw(G)=2
5
6
1
Bemerkungen zur Baumzerlegung
Motivation zur Baumzerlegung
• Einige i.a. NP-schwierige Optimierungsprobleme können
auf Graphen mit beschränkter Baumweite in polynomieller
Zeit gelöst werden, wie z.B.
– stabile Mengenproblem (independet set)
– Hamiltonkreisproblem
– Steinerbaumproblem
–…
• Anwendungen z.B. bei Expertensystemen zur
Inferenzberechnung in Bayesschen Netzwerken
• Optimierungsprobleme im Compilerbau: die Kontrollflussgraphen von goto-free Programmen einiger
Programmiersprachen haben beschränkte Baumweite
(z.B. 7 für C++, 6 für C, 3 für Pascal).
• Ein Baum G hat Baumweite tw(G)=1.
• Je kleiner die Baumweite eines Graphen ist, desto
baumartiger ist er
• Die Knotenmengen Xi einer Baumzerlegung werden oft
auch als „Bag“ bezeichnet.
• Es gibt verschiedene äquivalente Definitionen von
Baumzerlegungen bzw. Baumweite.
• Man sagt: G hat beschränkte Baumweite (bounded
treewidth), wenn seine Baumweite durch eine kleine
Konstante beschränkt ist.
• Zur Ermittlung der Baumweite von Graphen: s. Kapitel
4.3.
7
8
4.2 Algorithmen für Graphen mit
beschränkter Baumweite
Motivation zur Baumzerlegung
Courcelle et al. 1990: Jedes Graphproblem, das durch
Formeln mit den folgenden Sprachbefehlen zusammensetzbar ist, kann auf Graphen mit beschränkter Baumweite (bei geg. Baumdekomposition) in linearer Zeit
gelöst werden:
– logische Operationen (⋀,⋁, NOT,⇨)
– Quantifizierungen über Knoten, Kanten,
Knotenmengen und Kantenmengen (z.B. ∃v∈V, ∀F⊆E)
– Mitgliedschafttests (z.B. v∈V)
– Nachbarschaftstests (z.B. vw∈E, v ist Endknoten von e)
– und gewisse Erweiterungen
Idee:
•
Ermittle eine Baumzerlegung des Eingabegraphen
s. Abschnitt 4.3
Wende dynamisches Programmieren auf der
Baumzerlegung an.
jetzt!
•
Die dynamische Programmierung auf einer Baumzerlegung wächst exponentiell mit deren Baumweite.
Deswegen: nur sinnvoll für Baumzerlegungen mit kleiner
Baumweite.
•
erweiterte monadic second order formulas
z.B. Graphfärbung,…
•
9
10
Dynamische Programmierung auf
Baumzerlegungen
Dynamische Programmierung auf
Baumzerlegungen für Vertex Cover
1. Initialisierung: Für alle Xi={x1,…,xni} erstelle die Tabelle:
Idee für Optimierungsproblem auf Knotenmenge:
• Geg.: Baumzerlegung mit Baumweite ≤k, T hat Wurzel r.
• Beginne von den Blättern hoch zur Wurzel
– Für jedes Xj berechne naiv alle 2 |Xj| Möglichkeiten zur
Gewinnung einer Lösung auf dem Teilgraphen G[Xj].
– Verwaltung in Tabellen Aj
– Sei j der Elter von Blatt i in T:
– Gleiche Aj mit den 2|Xi| Möglichkeiten für Xi ab und
erziele so eine Lösung für den Graphen G[Xj∪Xi].
– Danach ist Xj Blatt.
11
x1
0
0
x2
0
0
1
1
1
1
…
…
…
…
…
…
…
xni-1 xni
0
0
0
1
1
1
m
m: anfangs: Größe
des jeweiligen VC
0
1
Jede Zeile entspricht einer „Färbung“ C: {x1,…,xni} → {0,1}ni
C(xi)=1 ⇔ Knoten xi ist im vertex cover
12
2
Dynamische Programmierung auf
Baumzerlegungen für Vertex Cover
Dynamische Programmierung auf
Baumzerlegungen für Vertex Cover
2. Überprüfung der enumerierten VC auf Gültigkeit:
4. Dynamische Programmierung:
• Für alle enumerierten Färbungen von Xi:
– Für alle Kanten uv ∈ E(G[Xj]) teste:
• Falls C(u)=0 und C(v)=0, dann: C ist nicht gültig
3. Initialisierung der m-Werte:
• Für alle Tabellen der Xi und jede Färbung C: Xi→ {0,1}ni
setze:
• m(C):= |C-1(1)| falls C gültige Färbung ist, und „+∞“ sonst
13
Dynamische Programmierung auf
Baumzerlegungen für Vertex Cover
• Sei j der Elternknoten von i in T. Aktualisiere die Tabelle
von Xj durch die Werte von Xi:
• Hierfür seien
Xi={z1,…,zs,u1,…,ut}
Xj={z1,…,zs,v1,…,vr}, wobei Xi ∩ Xj = {z1,…,zs}
• Für jede mögliche Färbung Cz von {z1,…,zs} und jede
Erweiterung C: Xj → {0,1}nj setze:
m(C):= m(C) + min { m(Ci) | Ci: Xi → {0,1}ni ist Erweiterung
von Cz} – |Cz-1(1)|
• Bilde entsprechende Verzeigerung der Tabellen (für
Endberechnung der Lösung)
14
Korrektheit des Algorithmus
• Jeder Knoten aus V wird in der Berechnung
berücksichtigt: ergibt sich aus Bedingung (1) einer
Baumzerlegung.
5. Konstruktion eines optimalen VC:
• Größe eines optimalen VC ergibt sich aus dem Minimum
der Einträge der letzten Spalte des Wurzelknotens r.
• Rekonstruktion eines optimalen VC durch Rückverfolgung
der Verzeigerungen.
• Jede Kante wird in VC überdeckt: durch Aussortierung
der nicht gültigen VCs zu Beginn und durch Bed. (2) von
Baumzerlegungen.
Beispiel: s. Tafel
• Die dynamische Programmierung über die Baumzerlegung ist konsistent: ergibt sich aus Bed. (3) von
Baumzerlegungen.
15
16
4.3 Berechnung einer Baumzerlegung
Laufzeit des Algorithmus
• Das Problem, die Baumweite eines Graphen zu
bestimmen, ist NP-vollständig [Arnborg, Corneil,
Proskurowski 1987].
Theorem: Für Graphen mit Baumzerlegung Χ =({Xi: i∈I},
T=(I,F)) und Baumweite tw(Χ) berechnet der obige
Algorithmus ein optimales vertex cover in Zeit O(2tw(Χ) |I| ).
• Es gibt einen Algorithmus mit Laufzeit O(f(k)n), der
testet, ob ein gegebener Graph Baumweite ≤ k
besitzt. Falls ja, dann liefert der Algorithmus eine
entsprechende Baumzerlegung [Bodlaender 1996].
Bw.:
• Für jede Kante e in T muss ein Abgleich zweier Tabellen
stattfinden.
• Das Aktualisieren einer Tabelle für Xj durch die Tabelle
von Xi (bei geschicktem vorherigem Sortieren) geht in
O(2|Χj|+ 2|Χi| ) = O(2tw(Χ)).
• Problem: Die Funktion f(k) = 235k → nicht praktikabel
3
bisher: Heuristiken, Dyn. Programmierung, Branch & Bound
17
hierzu: alternative Charakterisierungen
18
3
4.3.1 Alternative Charakterisierungen
Graph Triangulierungen
• Ein Graph heißt chordal (bzw. trianguliert), wenn jeder
Kreis der Länge mindestens 4 eine Sehne (chord) enthält.
Lemma: Für jeden Graphen G=(V,E) existiert eine
Triangulierung GT=(V,E∪Et) mit tw(GT)=tw(G).
Lemma (o. Bw.): Ein Graph G=(V,E) ist trianguliert ⇔ G
besitzt eine Baumzerlegung ({Xi: i∈I}, T=(I,F)) mit der
zusätzlichen Eigenschaft für alle i∈I, dass alle Knoten, die
sich in bag Xi befinden, miteinander benachbart sind.
Bw.: Sei G=(V,E) ein Graph und ({Xi: i∈I}, T=(I,F)) eine
Baumzerlegung mit minimaler Baumweite.
• Wir konstruieren einen Graphen GT=(V,ET) durch die folgende
Regel: vw∈ET ⇔ vw∈Xi für ein i∈I.
• nach obigem Lemma ist GT trianguliert.
• wg. Eigenschaft (ii) von Baumzerlegungen gilt: E⊆ET ⇒
ET=E∪Et.
• Baumweite von G und GT ist gleich.
Theorem: Die Baumweite eines triangulierten Graphen G ist
gleich der Cliquenzahl ω(G) (i.e., |größte Clique|) minus 1.
Bw.: In einer Baumzerlegung nach obigem Lemma gilt:
• maximum cardinality Set Xi ⊆ maximum clique Q
In jeder Baumzerlegung gilt:
• Für jede clique existiert ein i∈I in T mit Q⊆Xi.
19
Graph Triangulierungen
Korollar: Die Baumweite für einen Graphen G zu bestimmen
ist äquivalent zur Bestimmung einer Triangulierung GT von
G mit kleinster Cliquenzahl.
20
Perfekte Eliminationsschemata
• Eine lineare Ordnung von G=(V,E) ist eine Bijektion π: V →
{1,2,…,|V|}.
• Notation: π <,v := {w∈V | π(w) < π(v)}
• genauso: π ≤,v und π >,v und π ≥,v
Heuristiken basieren auf der folgenden
Beobachtung: Die Cliquenzahl jeder Triangulierung von G ist
eine obere Schranke für die Baumweite von G.
Idee der Heuristiken:
• basieren auf Algorithmen zur Erkennung von
Triangulierungen via
• Charakterisierung von Triangulierungen mittels perfekter
Eliminationsschemata
• Perfektes Eliminationsschema: lineare Ordnung π, falls
für jeden Knoten v gilt: diejenigen Nachbarn w von v mit
π(w)>π(v) bilden eine Clique.
• Ein Knoten heißt simplizial, wenn alle seine Nachbarn N(v)
einen vollständigen Untergraph induzieren.
• Vorgehen: entferne nacheinander simpliziale Knoten aus G.
21
Perfekte Eliminationsschemata
• Es gilt: G hat ein perfektes Eliminationsschema genau
dann wenn G trianguliert ist [Fulkerson & Gross 1965].
22
Triangulierung aus Linearer Ordnung
• Gegeben sei ein perfektes Eliminationsschema von G.
Dann besitzen die maximalen Cliquen von G die Form
{u} ∪ M(v), wobei M(v) := {w∈N(v): π(w)> π(v)} und u
beliebig.
• Der Wert maxv∈V|M(v)| heißt auch Dimension von G.
Bsp.: Lineare Ordnung
gegeben durch
1
Knotennummer
2
5
4
6
7
3
• Es gilt: Dimension von G = Baumweite von G [Arnborg
1985]
• Diese ergibt sich wie folgt:
• Wir setzen G0:=G
• Für i:=1,…,n: Bilde Gi durch Addition der fehlenden Kanten
(jedes Paar von nicht-benachbarten Knoten von π-1(i) mit
höherer Knotennummer)
• Dann ist H=Gn trianguliert und besitzt π als perfektes
Eliminationsschema.
H heißt der fill-in Graph
• Für beliebige Graphen gilt: Eine lineare Ordnung π definiert
eine Triangulierung H von G, die π als perfektes
Eliminationsschema hat.
• Diese ergibt sich wie folgt:
23
24
4
Triangulierung aus Linearer Ordnung
2
5
Viele Heuristiken zur Baumweitenbestimmung beruhen auf
Algorithmen zur Erkennung von triangulierten Graphen:
7
1
4
4.3.2 Erkennung von Triangulierungen
6
Lemma: Sei G ein triangulierter Graph. Dann kann man ein
perfektes Eliminationsschema von jedem beliebigen
simplizialen Knoten aus beginnen [Fulkerson & Gross
1965].
3
Korollar: Sei G ein Graph und k<|V|. Dann sind äquivalent:
• G hat Baumweite ≤ k.
• Es existiert eine Eliminationsordnung π von G, so dass
jeder Knoten höchstens k höher nummerierte Nachbarn im
fill-in Graphen bezüglich π besitzt.
• G besitzt eine Triangulierung mit Cliquenzahl ω ≤ k+1.
• G besitzt eine minimale Triangulierung (bzgl. Inklusion) mit
Cliquenzahl ω ≤ k+1.
25
Erkennung von Triangulierungen
• Idee: Suche einen simplizialen Knoten in G, addiere ihn zum
Eliminationsschema und entferne ihn aus G.
• Falls im Laufe des Verfahrens kein simplizialer Knoten mehr
existiert, dann ist G nicht trianguliert, andernfalls ist G
trianguliert.
• Laufzeitanalyse: n Suchschritte nach simplizialen Knoten,
jeder solche Test für v muss alle Paare in N(v) testen.
26
4.3.3 Heuristiken zur Baumweitenbestimmung
Lemma: Jeder triangulierte, nicht-vollständige Graph besitzt
zwei nicht-adjazente simpliziale Knoten [Dirac 1961].
4
5
3
6
7
2
Idee: Konstruiere das Eliminationsschema rückwärts:
• Wähle einen simplizialen Knoten als letzten im
Eliminationsschema → vn
Lexikographische BFS-Heuristik
1
• Idee: Bestimme eine Ordnung der Knoten, der Reihe nach
für die Positionen n,n-1,n-2,…1.
• Der Algorithmus markiert die noch ungeordneten Knoten
mit den bereits geordneten Nachbarknoten.
• Jede Markierung besteht aus den Positionen der bereits
geordneten Nachbarn in absteigender Reihenfolge.
• Wähle jeweils den noch ungeordneten Knoten mit der
lexikographisch höchsten Markierung.
• Wähle einen Knoten vn-1 adjazent zu vn als vorletzten
Knoten.
• Die nachfolgenden Knoten müssen so gewählt werden,
dass die bereits gewählten Nachbarn eine Clique bilden.
Wende diese Verfahren an um Triangulierungen zu erhalten
→ heuristische Lösungen des Baumweitenproblems
27
Lexikographische BFS-Heuristik
Algorithmus LEX_P(G,v*)
1. Input: Zshg. G=(V,E), Startknoten v*∈V
2. S:=V; Π:=∅
3. for i:=|V| to 1 do
4.
If (i==|V|) then u:=v* else u:=argmaxv∈S label(v)
5.
π(i):=u; Π:=Π∪{u}
6.
for all pairs v,w∈N(u), v≠w mit v,w∈ Π do:
7.
If vw∉E∪Et then
8.
Et:=Et ∪ {vw}
9.
S:=S\{u}
10.
for w∈N(u)∩S do:
11.
label(w):=label(w)∪{i}
28
Lexikographische BFS-Heuristik
• Lemma: Die lexikographische Heuristik bestimmt eine
korrekte Triangulierung für einen gegebenen Graphen G.
• Falls G bereits trianguliert ist, dann endet der Algorithmus
mit Et=∅.
• Der Algorithmus kann in Zeit O(|V|+m´) implementiert
werden, wobei m´:=|E|+|Et|
(o.Bw., s. Rose, Tajan, Lueker: Algorithmic aspects of
vertex elimination on graphs, SIAM J. Computing, vol. 5,
1976)
29
30
5
Lexikographische BFS Heuristiken
3
5
7
2
4
4
5
3
6
7
2
6
1
4.3.4 Untere Schranken zur Baumweite
Maximum Clique Schranke
1
Warum lexikographisch? Die gefundene Triangulierung ist i.A.
nicht minimal (bzgl. Inklusion)
Alternative LEX_M:
• Idee: Markiere nicht nur die Nachbarn bereits geordneter
Knoten, sondern auch alle Knoten w, die mittels Wegen
durch ungeordnete Knoten mit niedereren Markierungen als
w selbst besitzt erreicht werden können.
• Dies führt zu minimalen Triangulierungen (o.Bw.)
31
4.3.4 Untere Schranken zur Baumweite
• Für jede Clique Q in G gilt: tw(G)≥|Q|-1
• Beste Schranke erreicht für maximum Clique
• Die Cliquenzahl – 1 ist eine untere Schranke für die
Baumweite.
• Das Cliquenzahlproblem NP-vollständig, es kann aber in
der Praxis für ``nicht zu große Graphen und nicht zu dichten
Graphen´´ innerhalb vernünftiger Rechenzeit gelöst
werden.
32
4.3.4 Exakte Verfahren zur Baumzerlegung
Maximum Minimum Grad Schranke
• Geg. sei eine Baumzerlegung mit optimaler Baumweite k
und ein Blatt i∈I mit Vorgänger j.
• Wegen der minimalen Baumweite existiert ein Knoten
v∈Xi\Xj. Daraus folgt δ(v)≤k.
• Sei δ(G) := kleinste Knotengrad von G
• Dann gilt: k ≥ δ(G).
• Es gilt aber auch für alle Untergraphen H von G: k ≥ δ(H).
• Das Maximum über die kleinsten Knotengrade über alle
Untergraphen ist eine untere Schranke für die Baumweite.
• Sie kann berechnet werden durch:
MMD(G):=max { δ(v), MMD( G[V\{v}] ) } für alle v∈V mit
kleinstem Knotengrad.
• Laufzeit zur Berechnung: O(n log log n + m)) (o.Bw.)
Branch & Bound
• Menge der möglichen Lösungen: Menge aller möglichen
linearen Ordnungen
• In den Suchbaumknoten wird entschieden, welcher Knoten
als nächstes in die Eliminationsordnung aufgenommen
wird.
• Jeder Suchbaumknoten repräsentiert eine fixierte
Anfangsmenge der Eliminationsordnung
• Untere Schranken: s. 4.3.3
• Obere Schranken: s. 4.3.2
33
Dynamische Programmierung
Triangulierung
nicht explizit:
2
5
7
1
4
6
3
• Für eine lineare Ordnung π und Knoten v,w∈V, sagt man:
``Pπ(v,w) ist wahr´´ genau dann wenn ein Weg v,x1,x2,…,xr,w
von v nach w in G existiert, so dass für alle i, 1≤i≤r, gilt:
π(xi)< π(v) und π(xi)< π(w) .
• Es gilt: Falls v=w oder vw∈E, dann gilt:``Pπ (v,w) ist wahr´´.
• Sei Rπ(v) die Anzahl der höher nummerierten Knoten w für
die Pπ (v,w) wahr ist. Dann gilt: Die Baumweite von G ist ≤ k
g.d.w. eine Lineare Ordnung π existiert, so dass für alle v∈V
35
gilt: Rπ(v) ≤ k. (o.Bw.)
34
Dynamische Programmierung
• Beobachtung: Rπ(v) hängt nur von v, G und der Menge der
Knoten π<,v ab.
• Sei Π(S) die Menge der Permutationen von S ⊆V und für
Q⊆S def. wir Π(S,Q) die Menge der Permutationen von S,
die mit Knoten in Q enden.
• Für S⊆V und einen Knoten v∈V-S, def. wir:
•
Q(S,v):=|{w∈V−S−{v}| es ex. (v,w)-Weg in G[S∪{v,w}]
• TW(S) = minπ ∈Π(S) maxv∈S Q(π<,v ,v) = TW(V)
• Für jeden Graphen G=(V,E) und beliebiges S⊆V, S≠∅:
•
TW(S) = minv∈S max{TW(S−{v}),Q(S−{v},v)}
Korrektheit und Analyse: s. Übung
36
6
Herunterladen