2

You are given a tree decomposition of a large graph with not so small bounded tree-width.

Suppose now you need to solve a dynamic programming problem inside a subgraph and does not have time to do another costly tree decomposition.

How do I find the tree decomposition of a subgraph given the decomposition of its "father" graph?

(I googled for some data structure inside each bag of the tree decomposition but I haven't found anything.)

Thanks in advance.

R. S.
  • 167
  • 1
  • 8

2 Answers2

1

A valid tree decomposition of a graph $G =(V,E)$ is also a valid tree decomposition of any subgraph $G' = (V', E') $ provided that you simply remove all vertices $v \in V \setminus V'$ from all the bags.

Let's look at the definition. A tree decomposition $\mathcal T$ of $G$ is a tree of "bags" where each bag is a subset of vertices from $G$ restricted to the following three constraints:

  1. The union of all the bags equals $V(G)$
  2. Every edge $e \in E(G)$ is in some bag of $\mathcal T$, i.e. if $e = uv$, then there is a bag $B_i \in V(\mathcal T)$ such that $\{u,v\} \subseteq B_i$, and
  3. for every vertex $v \in V(G)$, $\mathcal T_v$ the subgraph consisting of all bags of $\mathcal T$ containing $v$ is connected, i.e., $\mathcal T_v$ is itself a tree.

Let $\mathcal T$ be a tree decomposition of $G$, let $G' = (V', E')$ be a subgraph of $G$, and let $\mathcal{T'}=\mathcal{T}_{|V'}$ be the tree $\mathcal T$ but where you delete all vertices not in $V'$.

Clearly (1) the union of the bags in $\mathcal{T}'$ is $V'$, (2) every edge $uv \in E'$ is in some bag in $\mathcal{T}'$ since $\{u,v\} \subseteq V'$ and therefore they must be in some bag in $\mathcal{T}$, and (3), the connectivity constraint holds for $v \in V'$ since it holds in $\mathcal{T}$.

Pål GD
  • 16,115
  • 2
  • 41
  • 65
0

To find the tree decomposition of a subgraph, you can first identify the bags of the tree decomposition that correspond to the vertices of the subgraph. Then, you can use these bags to construct a new tree decomposition for the subgraph. To do this, you can start by creating a new bag for the root of the subgraph's decomposition, which consists of the vertices in the subgraph. Next, you can recursively add child bags to the root bag by selecting a vertex in the subgraph and considering its neighbors in the original graph. Each child bag will consist of the vertices in the subgraph that are adjacent to the selected vertex, along with the selected vertex itself. This process continues until every vertex in the subgraph has been included in some bag. This will give you the tree decomposition of the subgraph.

Jxb
  • 318
  • 2
  • 13