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