Ü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. VO – Dynamische Programmierung • 4.3 Berechnung einer Baumzerlegung 4. Dezember 2006 2 4.1 Einführung Literatur • Hans L. Bodlaender: A Tourist Guide through Treewidth, Acta Cybernetica 11, 1-23, 1993 • Viele NP-schwierige Optimierungsprobleme in Graphen G sind in polynomieller Zeit lösbar, falls G ein Baum ist. • R. Niedermeier und J. Alber: Parametrisierte Algorithmen, Universität Tübingen, VO-Folien im WS 2002/03, S. 130-151 • 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. 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 d j h e – ⋃i∈I Xi = V i f k g – Für alle Kanten vw∈E existiert ein i∈I mit v∈Xi und 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 G ist die kleinste Baumweite über alle möglichen Baumzerlegungen von G. c i j ab c cd e de f df h h i i k gf Ein Graph G und eine Baumzerlegung von G mit Baumweite 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 hat Baumweite 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 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 2