
Algorithms for Graphs of Bounded Treewidth Made by Moshe Sebag CS department, Technion The material for all parts of this lecture appears in Chapter 7 of the book "Parameterized Algorithms", by Cygan et al. Table of Content Into: explanation of the term "treewidth of a graph“ Definitions: 1. Tree decomposition of a graph 2. Nice tree decomposition Dynamic Programming (DP) on graphs of bounded treewidth Example of DP-based algorithm for Weighted Independent Set Run-time analysis of the algorithm Treewidth and Monadic second-order Logic Courcelle's theorem Treewidth of a Graph The treewidth of an undirected graph is a number associated with the graph. Very roughly, treewidth captures how similar a graph is to a tree. Treewidth is commonly used as a parameter in the parameterized complexity analysis of graph algorithms. In this lecture, we focus on connections to the idea of dynamic programming on the structure of a graph. Treewidth of a Graph The treewidth of an undirected graph is a number associated with the graph. Very roughly, treewidth captures how similar a graph is to a tree. Treewidth is commonly usedBut as ahow parameter do you in the parameterized complexitycalculateanalysis theof graph algorithms. In this lecture, we focus on connectionstreewidth of to athe idea of dynamic programming on the structure ofgraph? a graph. Tree Decomposition a tree decomposition is a mapping of a graph into a tree that can be used to define the treewidth of the graph. Tree Decomposition Definition: a tree decomposition of a graph 퐺 is a pair 퓣 = (푇, 푋푡 푡∈푉 푇 ), where 푇 is a tree whose every node 푡 is assigned a vertex subset 푋푡 ⊆ 푉 (퐺). The following three conditions hold: (푡∈푉(푇) 푋푡 = 푉(퐺ڂ( (T1 (T2) For every 푢푣 ∈ 퐸(퐺) , there exists a node 푡 of 푇 such that bag 푋푡 contains both 푢 and 푣. (T3) For every 푢 ∈ 푉 (퐺), the set 푇푢 = {푡 ∈ 푉 (푇) ∶ 푢 ∈ 푋푡}, induces a connected subtree of T. Tree Decomposition Definition: a tree decomposition of a graph 퐺 is a pair 퓣 = (푇, 푋푡 푡∈푉 푇 ), where 푇 is a tree whose every node 푡 is assigned a vertex subset 푋푡 ⊆ 푉 (퐺). The following three conditions hold: (푡∈푉(푇) 푋푡 = 푉(퐺ڂ( (T1 (T2) For every 푢푣 ∈ 퐸(퐺) , there exists a node 푡 of 푇 such that bag 푋푡 contains both 푢 and 푣. I still didn’t get (T3) For every 푢 ∈ 푉 (퐺), the set 푇푢 = {푡 ∈ 푉 (푇) ∶ 푢 ∈ 푋푡}, induces a connected whatsubtree is theof T. TREEWIDTH? Treewidth by a Tree Decomposition After we defined what a tree composition is, we can define the treewidth of a graph. The width of tree decomposition 퓣 = (푇, 푋푡 푡∈푉 푇 ) equals max |푋푡| − 1, 푡∈푉 푇 The treewidth of a graph 퐺, denoted by 푡푤(퐺), is the minimum possible width of a tree decomposition of 퐺. Tree Decomposition Intro to Lemma 1. Definition 1: (퐴, 퐵) is a separation of a graph 퐺 if 퐴 ∪ 퐵 = 푉(퐺) and there is no edge between 퐴 \ 퐵 and 퐵 \ 퐴 Definition 2: Let (퐴, 퐵) be a separation of a graph, then 퐴 ∩ 퐵 is a separator of this separation, and |퐴 ∩ 퐵| is the order of the separation. ({A,B,C,D,E}, {B,E,F,G,H}) is a separation of the graph. {B,E} is the separator Tree Decomposition Intro to Lemma 1. Definition 3: Let A be a subset of 푉(퐺), the border of A, denoted by ∂(A), is the set of those vertices of A that have a neighbor in 푉(퐺)\A. For us the most crucial property of tree decompositions is that they define a sequence of separators in the graph. For the subset {A,B,C,D,E}, ∂(A)={B,E} Tree Decomposition Lemma 1. Let (푇, 푋푡 푡∈푉 푇 ) be a tree decomposition of a graph 퐺 and let 푎푏 be an edge of 푇. The forest 푇 − 푎푏 obtained from 푇 by deleting edge ab consists of two connected components 푇푎 (containing a) and 푇푏 (containing b). Let K = 푋 and M = 푋 . 푡∈푉 (푇푏) 푡ڂ 푡∈푉 (푇푎) 푡ڂ Then 휕(퐾), 휕(푀) ⊆ 푋푎 ∩ 푋푏. Equivalently, (K, M) is a separation of G with separator 푋푎 ∩ 푋푏. 푎푏 ∈ 퐸(푇) Tree Decomposition Lemma 1. Let (푇, 푋푡 푡∈푉 푇 ) be a tree decomposition of a graph 퐺 and let 푎푏 be an edge of 푇. The forest 푇 − 푎푏 obtained from 푇 by deleting edge ab consists of two connected components 푇푎 (containing a) and 푇푏 (containing b). Let K = 푋 and M = 푋 . 푡∈푉 (푇푏) 푡ڂ 푡∈푉 (푇푎) 푡ڂ Then 휕(퐾), 휕(푀) ⊆ 푋푎 ∩ 푋푏. Equivalently, (K, M) is a separation of G with separator 푋푎 ∩ 푋푏. Tree Decomposition Lemma 1. Let (푇, 푋푡 푡∈푉 푇 ) be a tree decomposition of a graph 퐺 and let 푎푏 be an edge of 푇. The forest 푇 − 푎푏 obtained from 푇 by deleting edge ab consists of two connected components 푇푎 (containing a) and 푇푏 (containing b). Let K = 푋 and M = 푋 . 푡∈푉 (푇푏) 푡ڂ 푡∈푉 (푇푎) 푡ڂ Then 휕(퐾), 휕(푀) ⊆ 푋푎 ∩ 푋푏. Equivalently, (K, M) is a separation of G with separator 푋푎 ∩ 푋푏. K= {A,B,C,D,E} M= {B,E,F,G,H} Tree Decomposition Lemma 1. Let (푇, 푋푡 푡∈푉 푇 ) be a tree decomposition of a graph 퐺 and let 푎푏 be an edge of 푇. The forest 푇 − 푎푏 obtained from 푇 by deleting edge ab consists of two connected components 푇푎 (containing a) and 푇푏 (containing b). Let K = 푋 and M = 푋 . 푡∈푉 (푇푏) 푡ڂ 푡∈푉 (푇푎) 푡ڂ Then 휕(퐾), 휕(푀) ⊆ 푋푎 ∩ 푋푏. Equivalently, (K, M) is a separation of G with separator 푋푎 ∩ 푋푏. K= {A,B,C,D,E} M= {B,E,F,G,H} 푋푎= {C,B,E} 푋푏= {B,E,G} 푋푎 ∩ 푋푏 = {B,E} 휕(퐾) = {B,E} 휕(푀) = {B,E} Tree Decomposition Lemma 1. Let (푇, 푋푡 푡∈푉 푇 ) be a tree decomposition of a graph 퐺 and let 푎푏 be an edge of 푇. The forest 푇 − 푎푏 obtained from 푇 by deleting edge ab consists of two connected components 푇푎 (containing a) and 푇푏 (containing b). 푋 ڂ = 푋 and M ڂ = Let K 푡∈푉 (푇푎) 푡 푡∈푉 (푇Wouldn푏) 푡 ’t it be Then 휕(퐾), 휕(푀) ⊆ 푋 ∩ 푋 . Equivalently, (K, M) is a separation of G with 푎 푏 complicated to separator 푋푎 ∩ 푋푏. plan the dynamic K= {A,B,C,D,E} programming on M= {B,E,F,G,H} TD? 푋푎= {C,B,E} 푋푏= {B,E,G} 푋푎 ∩ 푋푏 = {B,E} 휕(퐾) = {B,E} 휕(푀) = {B,E} Nice Tree Decomposition - motivation Nice Tree Decomposition We will think of a nice tree decompositions as rooted trees. A (rooted) tree decomposition (푇, 푋푡 푡∈푉 푇 ) is nice if the following conditions are satisfied: 푋푟 = ∅ for 푟 the root of 푇 and 푋푙 = ∅ for every leaf 푙 of 푇. Every non-leaf node of 푇 is of one of the following three types: Nice Tree Decomposition We will think of a nice tree decompositions as rooted trees. A (rooted) tree decomposition (푇, 푋푡 푡∈푉 푇 ) is nice if the following conditions are satisfied: 푋푟 = ∅ for 푟 the root of 푇 and 푋푙 = ∅ for every leaf 푙 of 푇. Introduce Every non-leaf node of 푇 is of one of the following three types: node: 1. Introduce node: ABC a node 푡 with exactly one child 푡′ such that 푋푡 = 푋푡′ ∪ {푣} for some vertex 푣 ∉ 푋푡′ (we say that 푣 is introduced at 푡). AB Nice Tree Decomposition We will think of a nice tree decompositions as rooted trees. A (rooted) tree decomposition (푇, 푋푡 푡∈푉 푇 ) is nice if the following conditions are satisfied: 푋푟 = ∅ for 푟 the root of 푇 and 푋푙 = ∅ for every leaf 푙 of 푇. Every non-leaf node of 푇 is of one of the following three types: Forget node: 1. Introduce node: AB a node 푡 with exactly one child 푡′ such that 푋푡 = 푋푡′ ∪ {푣} for some vertex 푣 ∉ 푋푡′ (we say that 푣 is introduced at 푡). 2. Forget node: ′ a node 푡 with exactly one child 푡′ such that 푋푡 = Xt ∪ {w} for some vertex (we say that 푤 is forgotten at 푡). ABC Nice Tree Decomposition We will think of a nice tree decompositions as rooted trees. A (rooted) tree decomposition (푇, 푋푡 푡∈푉 푇 ) is nice if the following conditions are satisfied: 푋푟 = ∅ for 푟 the root of 푇 and 푋푙 = ∅ for every leaf 푙 of 푇. Join node: Every non-leaf node of 푇 is of one of the following three types: 1. Introduce node: ABC a node 푡 with exactly one child 푡′ such that 푋푡 = 푋푡′ ∪ {푣} for some vertex 푣 ∉ 푋푡′ (we say that 푣 is introduced at 푡). 2. Forget node: ′ a node 푡 with exactly one child 푡′ such that 푋푡 = Xt ∪ {w} for some vertex (we say that 푤 is forgotten at 푡). 3. Join node: ABC ABC a node 푡 with two children 푡1, 푡2 such that 푋푡 = 푋푡1 = 푋푡2 . Nice Tree Decomposition We will think of a nice tree decompositions as rooted trees. A (rooted) tree decomposition (푇, 푋푡 푡∈푉 푇 ) is nice if the following conditions are satisfied: 푋푟 = ∅ for 푟 the root of 푇 and 푋푙 = ∅ for every leaf 푙 of 푇.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages54 Page
-
File Size-