Kap. 4: Baumzerlegung von Graphen

Werbung
Kap. 4: Baumzerlegung von
Graphen
Professor Dr. Petra Mutzel
Lehrstuhl für Algorithm Engineering, LS11
8./9. VO
4./11. Dezember 2006
Überblick
• 4.1 Einführung
– Definition und Motivation
• 4.2 Algorithmen für Graphen mit
beschränkter Baumweite
– Dynamische Programmierung
• 4.3 Berechnung einer Baumzerlegung
2
Literatur
• Hans L. Bodlaender: A Tourist Guide through Treewidth,
Acta Cybernetica 11, 1-23, 1993 (Intro)
• 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
• Bachoore und Bodlaender: A branch and bound algorithm
for exact, upper, and lower bounds on Treewidth, AAIM
2006, LNCS 4041, 2006.
• R. Niedermeier und J. Alber: Parametrisierte Algorithmen,
Universität Tübingen, VO-Folien im WS 2002/03, S. 130151 (Intro, Dynamische Prog.)
3
4.1 Einführung
• Viele NP-schwierige Optimierungsprobleme in
Graphen G sind in polynomieller Zeit lösbar, falls G
ein Baum ist.
• Idee: Vielleicht sind diese auf „baumartigen“
Graphen auch in polynomieller Zeit lösbar.
• Einführung der Baumweite von G: „Wie weit ist G
weg von einem Baum?“
• Hoffnung: Polynomielle Algorithmen für Graphen
mit beschränkter Baumweite.
4
Definition der Baumweite
Robertson & Seymour 1983
• 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:
– ⋃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.
5
Beispiel Baumzerlegung
b
a
c
e
d
f
h
i
j
k
g
i j
ab
c
cd
e
de
f
gf
df
h
h i
i k
Ein Graph G und eine Baumzerlegung von G mit tw(G)=2
6
Bemerkungen zur Baumzerlegung
• 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
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).
8
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
erweiterte monadic second order formulas
z.B. Graphfärbung,…
9
4.2 Algorithmen für Graphen mit
beschränkter Baumweite
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.
•
10
Dynamische Programmierung auf
Baumzerlegungen
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
Dynamische Programmierung auf
Baumzerlegungen für Vertex Cover
1. Initialisierung: Für alle Xi={x1,…,xni} erstelle die Tabelle:
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
Dynamische Programmierung auf
Baumzerlegungen für Vertex Cover
2. Überprüfung der enumerierten VC auf Gültigkeit:
• 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
4. Dynamische Programmierung:
• 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
Dynamische Programmierung auf
Baumzerlegungen für Vertex Cover
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.
Beispiel
15
Korrektheit des Algorithmus
• Jeder Knoten aus V wird in der Berechnung
berücksichtigt: ergibt sich aus Bedingung (1) einer
Baumzerlegung.
• Jede Kante wird in VC überdeckt: durch Aussortierung
der nicht gültigen VCs zu Beginn und durch Bed. (2) von
Baumzerlegungen.
• Die dynamische Programmierung über die Baumzerlegung ist konsistent: ergibt sich aus Bed. (3) von
Baumzerlegungen.
16
Laufzeit des Algorithmus
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| ).
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(Χ)).
17
4.3 Berechnung einer Baumzerlegung
• Das Problem, die Baumweite eines Graphen zu
bestimmen, ist NP-vollständig [Arnborg, Corneil,
Proskurowski 1987].
• 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].
• Problem: Die Funktion f(k) = 235k → nicht praktikabel
3
bisher: Heuristiken, Dyn. Programmierung, Branch & Bound
hierzu: alternative Charakterisierungen
18
4.3.1 Alternative Charakterisierungen
• Ein Graph heißt chordal (bzw. trianguliert), wenn jeder
Kreis der Länge mindestens 4 eine Sehne (chord) enthält.
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.
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
Lemma: Für jeden Graphen G=(V,E) existiert eine
Triangulierung GT=(V,E∪Et) mit tw(GT)=tw(G).
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.
Korollar: Die Baumweite für einen Graphen G zu bestimmen
ist äquivalent zur Bestimmung einer Triangulierung GT von
G mit kleinster Cliquenzahl.
20
Graph Triangulierungen
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
21
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
• 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.
• Es gilt: G hat ein perfektes Eliminationsschema genau
dann wenn G trianguliert ist [Fulkerson & Gross 1965].
22
Perfekte Eliminationsschemata
• 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.
• Es gilt: Dimension von G = Baumweite von G [Arnborg
1985]
• 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
Triangulierung aus Linearer Ordnung
Bsp.: Lineare Ordnung
gegeben durch
1
Knotennummer
2
5
7
4
6
3
• 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
24
Triangulierung aus Linearer Ordnung
2
5
7
1
4
6
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
4.3.2 Erkennung von Triangulierungen
Viele Heuristiken zur Baumweitenbestimmung beruhen auf
Algorithmen zur Erkennung von triangulierten Graphen:
Lemma: Sei G ein triangulierter Graph. Dann kann man ein
perfektes Eliminationsschema von jedem beliebigen
simplizialen Knoten aus beginnen [Fulkerson & Gross
1965].
• 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
Erkennung von Triangulierungen
Lemma: Jeder triangulierte, nicht-vollständige Graph besitzt
zwei nicht-adjazente simpliziale Knoten [Dirac 1961].
Idee: Konstruiere das Eliminationsschema rückwärts:
• Wähle einen simplizialen Knoten als letzten im
Eliminationsschema → vn
• 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
4.3.3 Heuristiken zur Baumweitenbestimmung
4
5
7
2
3
Lexikographische BFS-Heuristik
6
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.
28
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}
29
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|
(s. Rose, Tajan, Lueker: Algorithmic aspects of vertex
elimination on graphs, SIAM J. Computing, vol. 5, 1976)
30
Lexikographische BFS Heuristiken
3
5
4
7
2
4
1
6
5
7
2
3
6
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, die mittels Wegen durch
ungeordnete Knoten mit niedereren Markierungen erreicht
werden können.
• Dies führt zu minimalen Triangulierungen.
31
Herunterladen