Composing dynamic programming tree-decomposition-based algorithms
Given two integers ℓ and p as well as ℓ graph classes H_1,...,H_ℓ, the problems GraphPart(H_1, ..., H_ℓ,p), VertPart(H_1, ..., H_ℓ), and EdgePart(H_1, ..., H_ℓ) ask, given graph G as input, whether V(G), V(G), E(G) respectively can be partitioned into ℓ sets S_1, ..., S_ℓ such that, for each i between 1 and ℓ, G[V_i] ∈H_i, G[V_i] ∈H_i, (V(G),S_i) ∈H_i respectively. Moreover in GraphPart(H_1, ..., H_ℓ,p), we request that the number of edges with endpoints in different sets of the partition is bounded by p. We show that if there exist dynamic programming tree-decomposition-based algorithms for recognizing the graph classes H_i, for each i, then we can constructively create a dynamic programming tree-decomposition-based algorithms for GraphPart(H_1, ..., H_ℓ,p), VertPart(H_1, ..., H_ℓ), and EdgePart(H_1, ..., H_ℓ). We show that, in some known cases, the obtained running times are comparable to those of the best know algorithms.
READ FULL TEXT