Ü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