Algorithmische Graphentheorie Walter Unger Lehrstuhl für Informatik I 20. April 2006 Teil I Einleitung und Motivation 1 2 3 4 5 1 Motivation Bandweite Definition Probleme Pfadweite Definition Aussagen Baumweite Definition Aussagen k-Bäume Beispiel Definition Aussagen Fragen Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen 53/350 Motivation Bisher gesehen: Probleme sind schnell lösbar, wenn der “Informationsfluss nicht zu gross ist”. Beispiele: Intervallgraphen, Permutationsgraphen, Bäume, ... Idee: versuche diesen eingeschänkten Informationsfluss von Bäumen zu erweitern. Also: definiere ein erweitertes Baumkonzept. Idee dazu: Mache die Knoten “fett”. Vorher ein Rückblick auf das Bandweitenproblem. Danach: Pfadweite, Baumweite und partielle k-Bäume Motivation Bandweite Pfadweite Baumweite k-Bäume Definition Fragen 54/350 Definition der Bandweite Definition Bandweite Sei G = (V , E ) ein Graph und seien v , v ′ ∈ V . Ein Labeling von G ist eine Funktion e : V → IN mit e(v ) = e(v ′ ) ⇒ v = v ′ . Der Abstand zwischen v und v ′ im Labeling e ist gegeben durch: dist(e, v , v ′ ) =| e(v ) − e(v ′ ) |. Die Bandweite des Labelings e auf G ist bw(e, G ) = max{dist(e, v , v ′ ) | {v , v ′ } ∈ E }. Die Bandweite eines Graphen G ist bw(G ) = mine:V →IN {bw(e, G )}. Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Definition 55/350 Beispiel e(2) = 1 2 x @ @ e(1) = 21 x @x e(3) = 3 e(6) = 46 x @ x e(4) = 5 4 @ @x 0 1 1 0 0 10 1 0 1 10 0 0 1 1 0 01 1 0 0 10 01 0 1 10 0 0 1 1 0 1 e(5) = 6 5 Bandweite = 52 Adjazenzmatrix 10 0 0 10 1 0 Motivation Bandweite Pfadweite Baumweite k-Bäume Probleme Fragen 56/350 Bandweite Definition (Bandweitenproblem) Das Bandweitenproblem für Graphen ist: Eingabe: Ein Graph G = (V , E ) und ein k ∈ IN. Ausgabe: Gilt bw(G ) 6 k? Theorem Das Bandweitenproblem ist NP-vollständig. Definition (Raupengraph) Ein Raupengraph (Caterpillar) ist ein Baum bei dem alle Knoten vom Grad > 3 auf einem Weg liegen. Theorem Das Bandweitenproblem für Raupengraphen ist NP-vollständig. Motivation Bandweite Pfadweite Baumweite k-Bäume Probleme Fragen 57/350 k-Bandweite Definition (Bandweitenproblem) Das k-Bandweitenproblem für Graphen ist: Eingabe: Ein Graph G = (V , E ). Ausgabe: Gilt bw(G ) 6 k? Theorem Das k-Bandweitenproblem kann in Linearzeit gelöst werden. Theorem Sei G = (V , E ) ein Graph mit bw(G ) = k, dann können die folgenden Probleme auf G in Linearzeit gelöst werden: Independent-Set, Clique, Vertex-Cover Färbungsproblem Hamilton-Kreis, Hamilton-Weg Motivation Bandweite Pfadweite Baumweite k-Bäume Probleme Fragen 58/350 Idee dazu Sei bw(G ) = k. Seien die Knoten durch das Labeling sortiert. D.h. e(vi ) = i. Betrachte Block Bi = {vi , vi+1 , vi+2 , · · · , vi+k }. Keine Kante geht von einem Knoten links von Bi zu einem Knoten rechts von Bi d.h. keine Kante geht von va zu vb für a < i und b > i + k. d.h. alle “Informationen” müssen über Bi laufen. Damit können die Probleme mit dynamischen Programieren gelöst werden. Kodiere alle Lösung für v1 , v2 , · · · , vi+k auf den Knoten von Bi . Bestimme alle Lösung für v1 , v2 , · · · , vi+k+1 auf den Knoten von Bi+1 mit den Lösungen für Bi . Motivation Bandweite Pfadweite Baumweite k-Bäume Probleme Fragen 59/350 Independent Set Sei Bi = {vi , vi+1 , vi+2 , · · · , vi+k } Für jede Teilmenge Iij ⊂ Bi speichere: Iij und wij mit wij = |I | für das größte Independent Set I auf {v1 , v2 , · · · vi+k } mit Iij ⊂ I . Iterationsschritt auf Bi+1 : j Für jede Teilmenge Ii+1 bestimmt obige Wert mit den Daten für Bi . j Falls vi+k+1 6∈ Ii+1 setze: j j } wi+1 = max{wil | Iil \ {vi } ⊂ Ii+1 j setze: Falls vi+k+1 ∈ Ii+1 l Ii ∩ {vx | {vi+k+1 , vx } ∈ E } = ∅∧ j l wi+1 = max wi + 1 | l j Ii \ {vi } ⊂ Ii+1 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Probleme 60/350 Independent Set (Beispiel a) v1 v2 v3 v4 v5 v6 0 1 1 1 2 1 1 1 1 2 1 2 2 v7 v8 v9 v10 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Probleme 61/350 Independent Set (Beispiel b) v1 v2 v3 v4 v5 v6 v7 1 2 2 1 2 2 2 3 v8 v9 v10 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Probleme 62/350 Independent Set (Beispiel c) v1 v2 v3 v4 v5 v6 v7 v8 1 2 2 2 3 2 2 2 3 3 v9 v10 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Probleme 63/350 Independent Set (Beispiel d) v1 v2 v3 v4 v5 v6 v7 v8 v9 2 3 3 2 3 3 3 4 v10 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Probleme 64/350 Independent Set (Beispiel e) v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 2 3 3 3 4 2 3 3 3 4 3 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Probleme 65/350 Independent Set (Beispiel f) v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 2 3 3 3 4 3 3 3 3 4 3 4 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Probleme 66/350 Independent Set (Beispiel g) v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 4 4 4 3 2 2 2 Motivation Bandweite Pfadweite Baumweite k-Bäume Definition Fragen 67/350 Pfadweite (Pathwidth) Definition Ein Graph G = (V , E ) hat Pathwidth k genau dann, wenn es einen Weg P = (Vp , Ep ) und eine Abbildung f : Vp → P(V ) gibt mit: ∀(a, b) ∈ E : ∃x ∈ Vp : a, b ∈ f (x) Falls c auf einem Weg von a nach b in P, dann gilt: f (b) ∩ f (a) ⊂ f (c). ∀x ∈ Vp : |f (x)| 6 k + 1. und für k − 1 gibt es keine solche Funktion f und Weg P. Schreibweise: pw(G ) = k. Theorem Sei G = (V , E ) ein Graph, dann gilt: bw(G ) > pw(G ). Beachte: bw(K1,2n+1 ) = n aber pw(K1,2n+1 ) = 1 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Definition 68/350 Pfadweite (Beispiel) v1 v2 v3 v4 v5 v6 v7 v8 p1 p2 p3 p4 p5 p6 p7 p8 v1 v2 v3 v4 v2 v3 v4 v5 v3 v4 v5 v6 v4 v5 v6 v7 v5 v6 v7 v5 v6 v7 v8 v6 v7 v8 v9 v7 v8 v9 v10 v9 v10 Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Fragen 69/350 Aussagen I Theorem Sei G = (V , E ) ein Graph, dann gilt: bw(G ) > pw(G ). Sei G = (V , E ) Graph mit bw(G ) = k und |V | = n. Zeige pw(G ) 6 k Sei e Einbettungsfunktion mit bw(e, G ) = k Sei e(vi ) = i. Sei Pn−k = ({p1 , p2 , · · · , pn−k+1 }, {{pj , pj+1 } | 1 6 j 6 n − k}) Pfad mit n − k + 1 Knoten Definiere Funktion f : {p1 , p2 , · · · , pn−k+1 } 7→ P(V ): f (pi ) = {vi , vi+1 , · · · , vi+k }. Damit gibt: |f (pi )| = k + 1. Und falls {vi , vi+d } ∈ E , dann ist {vi , vi+d } ⊂ f (pi ). Damit: pw(G ) 6 k Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Fragen 70/350 Aussagen II Theorem Sei G = (V , E ) ein Graph, dann gilt: Das Problem, die Pfadweite eines Graphen zu bestimmen, ist NP-vollständig. Für ein festes k kann man in Linearzeit O(n + m) feststellen, ob ein Graph Pfadweite k hat. Theorem Sei G = (V , E ) ein Graph mit pw(G ) = k, dann können die folgenden Probleme auf G in Linearzeit gelöst werden: Independent-Set, Clique, Vertex-Cover Färbungsproblem Hamilton-Kreis, Hamilton-Weg Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Fragen 71/350 Beispiel (Independet Set) Sei G = (V , E ) Graph mit pw(G ) = k und |V | = n. Sei Pn−k = ({p1 , p2 , · · · , pn−k+1 }, {{pj , pj+1 } | 1 6 j 6 n − k}) Pfad mit n − k + 1 Knoten. Sei f : {p1 , p2 , · · · , pn−k+1 } 7→ P(V ) passende Funktion zur Pfadweite k. Für jede Teilmenge Iij ⊂ f (pi ) speichere: Iij und wij mit Si j wi = |I | für das größte Ind. Set I auf j=1 f (pj ) mit Iij ⊂ I . Iterationsschritt auf f (pi+1 ): j bestimmt obige Wert: Für jede Teilmenge Ii+1 Nein das macht keinen Spass mehr. Da vereinfachen wir! Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Fragen 72/350 Beispiel (Independet Set) Sei G = (V , E ) Graph mit pw(G ) = k und |V | = n. Sei Pn−k = ({p1 , p2 , · · · , pn−k+1 }, {{pj , pj+1 } | 1 6 j 6 n − k}) Pfad mit n − k + 1 Knoten. Sei f : {p1 , p2 , · · · , pn−k+1 } 7→ P(V ) passende Funktion zur Pfadweite k mit: |f (pi )| − |f (pi+1 )| ∈ {1, −1}, d.h. ˙ f (pi )∪{x} = f (pi+1 ) oder ˙ f (pi ) = f (pi+1 )∪{x} Schreibweisen: f (pi+1 ) = add(f (pi ), x) bzw. f (pi+1 ) = del(f (pi ), x) Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Fragen 73/350 Beispiel (Independet Set) Damit reicht es aus, wie folgt anzugeben Zu speichernden Daten für f (pi ): D(f (pi )) Eine Prozedur D(f (p1 )) := Init(f (p1 )), die die ersten Werte bestimmt. Eine Prozedur D(f (pi+1 )) := Add(D(f (pi )), x), die Werte für f (pi+1 ) bestimmt. Eine Prozedur D(f (pi+1 )) := Del(D(f (pi )), x), die Werte für f (pi+1 ) bestimmt. Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Fragen 74/350 Beispiel (Independet Set) D(f (pi )) = {(I , w ) | I ist IS in f (pi ) ∧ w = Wert(I , i)} mit: Wert(I , i) = max{|I ′ | | I ′ ⊂ ∪ij=1 f (pj ) ∧ I ′ ist IS ∧ I ⊂ I ′ } Init(f (p1 )) = {(I , w ) | I ist IS in f (p1 ) ∧ w = |I |}, d.h. bestimme alle IS I ⊂ f (p1 ) und setze w = |I |. (I , w ) ∈ Del(D(f (pi )), x) genau dann wenn: (I ∪ {x}, w ) ∈ D(f (pi )) und falls (I ∪ {x}, w ′ ) ∈ D(f (pi )) dann gilt w ′ 6 w (I , w ) ∈ Add(D(f (pi )), x) genau dann wenn: (I , w ) ∈ D(f (pi )) oder (I \ {x}, w − 1) ∈ D(f (pi )) und I ist IS. Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Aussagen 75/350 Independent Set (Beispiel a) v1 v2 v3 v4 v5 0 1 1 1 2 1 1 1 1 2 1 v6 v7 v8 v9 v10 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Aussagen 76/350 Independent Set (Beispiel b) v1 v2 v3 v4 v5 v6 1 1 1 2 1 1 1 1 2 1 2 2 v7 v8 v9 v10 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Aussagen 77/350 Independent Set (Beispiel c) v1 v2 v3 v4 v5 v6 1 1 1 2 1 2 2 1 2 1 2 2 v7 v8 v9 v10 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Aussagen 78/350 Independent Set (Beispiel d) v1 v2 v3 v4 v5 v6 v7 1 2 2 1 2 2 2 3 v8 v9 v10 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Aussagen 79/350 Independent Set (Beispiel e) v1 v2 v3 v4 v5 v6 v7 1 2 2 2 3 2 2 2 3 v8 v9 v10 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Aussagen 80/350 Independent Set (Beispiel f) v1 v2 v3 v4 v5 v6 v7 v8 2 2 2 3 2 2 2 3 3 v9 v10 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Aussagen 81/350 Independent Set (Beispiel g) v1 v2 v3 v4 v5 v6 v7 v8 2 2 2 3 3 2 2 2 3 3 v9 v10 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Aussagen 82/350 Independent Set (Beispiel h) v1 v2 v3 v4 v5 v6 v7 v8 v9 2 3 3 2 3 3 3 4 v10 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Aussagen 83/350 Independent Set (Beispiel i) v1 v2 v3 v4 v5 v6 v7 v8 v9 2 3 3 3 4 2 3 3 3 4 v10 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Aussagen 84/350 Independent Set (Beispiel j) v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 2 3 3 3 4 2 3 3 3 4 3 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Aussagen 85/350 Independent Set (Beispiel k) v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 2 3 3 3 4 3 3 3 3 4 3 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Aussagen 86/350 Independent Set (Beispiel l) v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 3 3 3 4 3 3 3 3 4 3 4 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Aussagen 87/350 Independent Set (Beispiel m) v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 4 4 4 3 2 2 2 Motivation Bandweite Pfadweite Baumweite Definition k-Bäume Fragen 88/350 Baumweite Definition (Baumweite) Ein Graph G = (V , E ) hat Treewidth k genau dann, wenn es einen Baum T = (Vt , Et ) und eine Abbildung f : Vt → P(V ) gibt mit: ∀(a, b) ∈ E : ∃x ∈ Vp : a, b ∈ f (x) Falls c auf einem Weg von a nach b in T , dann gilt: f (b) ∩ f (a) ⊂ f (c). ∀x ∈ Vt : |f (x)| 6 k + 1. und für k − 1 gibt es keine solche Funktion f und Weg T . Schreibweise: tw(G ) = k. Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Fragen 89/350 Aussagen Theorem Sei G = (V , E ) ein Graph, dann gilt: Das Problem, die Treewidth eines Graphen zu bestimmen, ist NP-vollständig. Für ein festes k kann man in Linearzeit O(n + m) feststellen, ob ein Graph Treewidth k hat. Theorem Sei G = (V , E ) ein Graph mit tw(G ) = k, dann können die folgenden Probleme auf G in Linearzeit gelöst werden: Independent-Set, Clique, Vertex-Cover Färbungsproblem Hamilton-Kreis, Hamilton-Weg Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Fragen 90/350 Vereinfachungen Sei t Nachfolger von s im Baum, dann gelte o.E.d.A.: s habe höchstens zwei Nachfolger. f (t) = f (s) falls es einen weiteren Nachfolger von t gibt. |f (t)| − |f (s)| ∈ {1, −1} falls es keinen weiteren Nachfolger von t gibt, d.h.: f (s) = add(f (t), x) bzw. f (s) = del(f (t), x) Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Fragen 91/350 Beispiel (Independet Set) Damit reicht es aus, wie folgt anzugeben Zu speichernden Daten für f (s): D(f (s)) Eine Prozedur D(f (s)) := Init(f (s)), die die ersten Werte an einem Blatt s bestimmt. Eine Prozedur D(f (s)) := Add(D(f (t)), x). Eine Prozedur D(f (s)) := Del(D(f (t)), x). Eine Prozedur D(f (s)) := Join(D(f (t)), D(f (t ′ ))). Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Fragen 92/350 Beispiel (Independet Set) D(f (s)) = {(I , w ) | I ist IS in f (s) ∧ w = Wert(I , s)} mit: Wert(I , s) = max{|I ′ | | I ′ ⊂ ∪t∈V (Ts ) f (t) ∧ I ′ ist IS ∧ I ⊂ I ′ } und Ts ist der Teilbaum mit s als Wurzel. Init(f (t)) = {(I , w ) | I ist IS in f (t) ∧ w = |I |}, d.h. bestimme alle IS I ⊂ f (t) und setze w = |I |. (I , w ) ∈ Del(D(f (t)), x) genau dann wenn: (I ∪ {x}, w ) ∈ D(f (t)) und falls (I ∪ {x}, w ′ ) ∈ D(f (t)) dann gilt w ′ 6 w (I , w ) ∈ Add(D(f (t)), x) genau dann wenn: (I , w ) ∈ D(f (t)) oder (I \ {x}, w − 1) ∈ D(f (t)) und I ist IS. (I , w ) ∈ Join(D(f (t)), D(f (t ′ ))) genau dann wenn: (I , w ′ ) ∈ D(f (t)) und (I , w ′′ ) ∈ D(f (t ′ )) und w = w ′ + w ′′ − |I | Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Beispiel 93/350 Idee (1-Baum) v1 v2 v4 v8 v3 v5 v9 v6 v10 v7 v11 v12 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Beispiel 94/350 Idee (2-Baum) v1 v8 v2 v3 v4 v6 v5 v7 v9 v11 v12 v10 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen Beispiel 95/350 Idee (3-Baum) v3 v2 v12 v8 v5 v1 v4 v6 v7 v10 v9 v11 Motivation Bandweite Pfadweite Baumweite k-Bäume Definition Fragen 96/350 k-Baum Definition (k-Baum (Rose 1974)) Ein k-Baum ist wie folgt rekursiv definiert: Kk+1 ist ein k-Baum. Bemerkung: Man kann auch ggf. mit Kk beginnen Falls T = (V , E ) ein k-Baum ist und C = {c1 , c2 , ..., ck } eine Clique in T ist, dann ist ˙ }, E ∪ {(v , ci ); 1 6 i 6 k}) ein k-Baum. T = (V ∪{v Es gibt keine weiteren k-Bäume. Sei T = (V , E ) ein k-Baum. Dann ist G = (V , F ) mit F ⊂ E ein partieller k-Baum. Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Fragen 97/350 Aussagen I Theorem Ein 1-Baum ist ein Baum. Sei G ein k-Baum, dann gilt: ω(G ) = k + 1 falls G mehr als k Knoten hat (ansonsten ω(G ) = k). ω(G ) = max{|C | | C ⊂ V (G ) ∧ C ist Clique} Lemma Ein k-Baum kann von jeder Clique aus konstruiert werden. Bemerkung Ein k-Baum ist chordal und perfekt. Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Aussagen II Theorem Ein Graph G = (V , E ) ist ein k-Baum genau dann, wenn tw(G ) = k und G ist maximal. Theorem Ein Graph G = (V , E ) ist ein partieller k-Baum genau dann, wenn tw(G ) 6 k. Fragen 98/350 Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Fragen 99/350 Erkennen der Baumweite Es ist schwer den Stützbaum zu finden. Dann kann man folgendes Modell verwenden: Modifizierte Suchnummer Wie viele Polizisten baucht man um einen Falschparker in einem Graphen zu finden. Falschparker ist beliebig schnell und nutzt Knoten und Kanten. Polizisten nutzen nur die Knoten, können aber springen. Falschparker kann an einem Polizisten nicht vorbei. Polizisten sind nicht blind, sehen den Falschparker. Kante gilt als Falschparkerfrei, falls auf beiden Knoten je ein Polizist gleichzeitig war. Modifizierte Suchnummer entspricht Baumweite. Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Aussagen III Definition Ein Graph G = (V , E ) heißt Kaktus, falls jede 2-fach Zusammenhangskomponente ein Kreis ist. Theorem Für einen Kaktus G = (V , E ) gilt: tw(G ) 6 2 Definition Ein Graph G = (V , E ) heißt fast-Baum(k), falls jede 2-fach Zusammenhangskomponente mit x Knoten x + k − 1 Kanten hat. Theorem Für einen fast-Baum(k) G = (V , E ) gilt: tw(G ) 6 k + 1 Fragen 100/350 Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Fragen 101/350 Beweisidee I (Kaktus) Sei G = (V , E ) ein Kaktus mit V = {v1 , v2 , v3 , · · · , vn }. Seien C1 , C2 , · · · , Cd alle Kreise in G . Da G = (V , E ) ein Kaktus ist, sind diese Kreise knotendiskunkt. äh, falsch, gilt nicht, nehmen wir das aber mal an. Entferne aus jedem Kreis Ci eine Kante ei . Damit ist T = (V , E \ {e1 , e2 , · · · , ed }) ein Baum mit Wurzel v1 Zu v ∈ V sei p(v ) der Vorfahr von v in T (p(v1 ) = v1 ) Zu einer Kante ei = {a, b} seien Pi die Knoten in T auf dem Pfad von a nach b. Falls v auf einem Pfad Pi dann definiere x(v ) = min{a, b}, ansonsten x(v ) = v . Definiere f : V 7→ P(V ) durch: f (v ) = {v , p(v ), x(v )}. Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Fragen 102/350 Beweisidee II (Kaktus) Sei G = (V , E ) ein Kaktus mit V = {v1 , v2 , v3 , · · · , vn }. Seien C1 , C2 , · · · , Cd und e1 , e2 , · · · , ed wie oben. Sei T = (V , E \ {e1 , e2 , · · · , ed }) wie oben. Modifiziere nun T : Falls es einen Knoten vx gibt, der in zwei Kreisen Ci , Cj liegt, und Ci die Knoten a, vx , b enthällt und Cj die Knoten c, vx , d enthällt dann erzeuge Knoten vxi und vxj und lösche Kanten {a, vx }, {vx , b},{c, vx }, {vx , d} und erzeuge Kanten {a, vxi } {vxi , b} {vxi , vx } und erzeuge Kanten {c, vxj } {vxj , d} {vxj , vx }. Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Fragen 103/350 Beweisidee III (fast-Baum) Sei G = (V , E ) ein fast-Baum(k) mit V = {v1 , v2 , v3 , · · · , vn }. Seien C1 , C2 , · · · , Cd alle ZS-Komponenten in G . Seien diese ZSK knotendiskunkt. Entferne aus jeder ZSK Ci bis zu di 6 k Kanten eij . Damit ist T = (V , E \ {eij | 1 6 i 6 d ∧ 1 6 j 6 di }) ein Baum mit Wurzel v1 Zu v ∈ V sei p(v ) der Vorfahr von v in T (p(v1 ) = v1 ) Zu einer Kante eij = {a, b} seien Pij die Knoten in T auf dem Pfad von a nach b. Falls v auf einem Pfad Pij dann definiere x j (v ) = min{a, b}, ansonsten x j (v ) = v . Definiere f : V 7→ P(V ) durch: f (v ) = {v , p(v ), x 1 (v ), x 2 (v ), · · · , x k (v )} Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Fragen 104/350 Beweisidee IV (fast-Baum) Sei G = (V , E ) ein fast-Baum(K ) mit V = {v1 , v2 , v3 , · · · , vn }. Seien C1 , C2 , · · · , Cd und eij wie oben. Sei T = (V , E \ {eij | 1 6 i 6 d ∧ 1 6 j 6 di }) wie oben. Modifiziere nun T : Falls es einen Knoten vx gibt, der in zwei Komponenten Ci , Cj liegt, und Ci die Knoten vx , a1 , a2 , · · · enthällt wobei ai Nachfolger von vx in T . und Cj die Knoten vx , b1 , be , · · · enthällt wobei bi Nachfolger von vx in T . dann erzeuge Knoten vxi und vxj und lösche Kanten {ai , vx }, {bi , vx } und erzeuge Kanten {ai , vxi } {vxi , vx } und erzeuge Kanten {bi , vxj } {vxj , vx }. Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Aussagen IV Definition Ein Graph G = (V , E ) heißt Halin Graph, falls G aus einem planar eingebetteten Baum besteht, bei dem die Blätter mit einem Kreis verbunden sind. Theorem Für einen Halin Graphen G = (V , E ) gilt: tw(G ) 6 3 Definition Ein planarer Graph G = (V , E ) heißt außenplanar, wenn es eine planare Einbettung gibt, bei der alle Knoten auf dem äußeren Fenster (Region) liegen. Theorem Für einen außenplanaren Graphen G = (V , E ) gilt: tw(G ) 6 2 Fragen 105/350 Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Fragen 106/350 Beweisidee I (Halin Graph) Sei G = (V , E ) ein Halin Graph mit V = {v1 , v2 , v3 , · · · , vn }. Sei T = (V , E ′ ) der Baum mit Wurzel v1 in G . Sei T ′ = (V ∪ E ′ , {{v , e} | v ∈ V ∧ e ∈ E ′ ∧ v ∈ e}) der totale Baum mit Wurzel v1 . Zu einer Kante e = {a, b} ∈ E \ E ′ seien Pe die Knoten und Kanten in T auf dem Pfad von a nach b. Falls a auf einem Pfad Pe dann definiere xe (a) = min{a, b}. Definiere f : V ∪ E ′ 7→ P(V ) durch: f (a) = {a} ∪ {xe (a) | a ∈ Pe } falls a ∈ V . f (a) = a ∪ {xe (a) | a ∈ Pe } falls a ∈ E ′ . Beachte; |{xe (a) | a ∈ Pe }| 6 3 falls a ∈ V . |{xe (a) | a ∈ Pe }| 6 2 falls a ∈ E ′ . Motivation Bandweite Pfadweite Baumweite Aussagen k-Bäume Fragen 107/350 Beweisidee II (außenplanarer Graph) Sei G = (V , E ) ein außenplanarer Graph. Sei G = (V , E ) maximal, ˙ d.h. G = (V , E ∪{e}) ist nicht außenplanar. Sei V ′ die Menge der inneren Regionen (Fenster). Damit ist V ′ eine Menge von Dreiecken. Für x ∈ V ′ sei: V (x) die Knoten des Dreiecks x. E (x) die Kanten des Dreiecks x. Definiert Baum (V ′ , {{a, b} | E (a) ∩ E (b) 6= ∅}) Definiere f durch: f (x) = V (x). Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Aussagen V Definition Ein planarer Graph G = (V , E ) heißt k-außenplanar, wenn es eine planare Einbettung gibt, bei der durch Löschen aller Knoten auf dem äußeren Fenster ein (k − 1)-außenplanar Graph entsteht. Theorem Für einen k-außenplanaren Graphen G = (V , E ) gilt: tw(G ) 6 3 · k − 1 Fragen 108/350 Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Fragen 109/350 Aussagen VI Definition Ein Graph G = (V , E ) heißt SP-Graph (serien-parallel Graph), wenn er durch die serien-parallel Operationen aufgebaut werden kann: G = ({a, b}, ∅, a, b) ist SP-Graph. G = ({a, b}, {{a, b}}, a, b) ist SP-Graph. Falls G = (V , E , a, b) und G = (V ′ , E ′ , a, b) SP-Graphen mit V ∩ V ′ = {a, b} dann ist G = (V ∪ V ′ , E ∪ E ′ , a, b) SP-Graph. Falls G = (V , E , a, x) und G = (V ′ , E ′ , x, b) SP-Graphen mit V ∩ V ′ = {x} dann ist G = (V ∪ V ′ , E ∪ E ′ , a, b) SP-Graph. Theorem Ein Graph ist ein SP-Graph genau dann, wenn er Treewidth 2 hat. Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Fragen 110/350 Minoren Definition (Minor) Ein Graph G ′ ist Minor vom Graphen G , falls ein isomorphes Bild von G ′ durch Knotenverschmelzung von G erzeugt werden kann. Knotenverschmelzung: Sei G = (V , E ) Sei {a, b} ∈ E , dann ist die Knotenverschmelzung von a und b möglich: Sei G ′ = (V \ b, (E \ {{v , b} | v ∈ V }) ∪ {{v , a} | {v , b} ∈ E }) Motivation Bandweite Pfadweite Baumweite k-Bäume Aussagen Aussagen VII Theorem Ein Graph G mit tw(G ) 6 k hat keinen Kk+2 Minor. Theorem Graphen G mit tw(G ) 6 k lassen sich durch eine endliche Folge von Minoren beschreiben. Theorem Jedes durch MS2 beschreibbare Problem ist auf Graphen G mit tw(G ) 6 k polynomiell lösbar. Fragen 111/350 Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen 112/350 Fragen 1 Wie ist die Bandweite eines Graphen definiert? 2 Welche Probleme kann man auf Bandweite beschränkten Graphen effizient lösen? 3 Wie ist das Vorgehen dabei? 4 Wie ist die Pfadweite eines Graphen definiert? 5 Welche Probleme kann man auf Pfadweite beschränkten Graphen effizient lösen? 6 Wie ist das Vorgehen dabei? 7 Welchen Zusammenhang gibt es zwischen Bandweite und Pfadweite? 8 Wie ist die Baumweite eines Graphen definiert? 9 Welche Probleme kann man auf Baumweite beschränkten Graphen effizient lösen? 10 Wie ist das Vorgehen dabei? Motivation Bandweite Pfadweite Baumweite k-Bäume Fragen 113/350 Fragen 1 Welchen Zusammenhang gibt es zwischen Pfadweite und Baumweite? 2 Wie ist ein partieller k-Baum definiert? 3 Welchen Zusammenhang gibt es zwischen k-Baum und Baumweite? 4 Wie ist die Baumweite von Halin Graphen? 5 Wie ist die Baumweite von einem Graph der ein Kaktus ist? 6 Wie ist die Baumweite von eime fast k-Baum? 7 Wie ist die Baumweite von außenplanaren Graphen? 8 Wie ist die Baumweite von k-außenplanaren Graphen? 9 Wie ist die Baumweite von SP-Graphen?