Table of Contents
Fetching ...

Composing dynamic programming tree-decomposition-based algorithms

Julien Baste

TL;DR

The paper introduces a dynamic programming core (DPC) framework to solve graph partition and coloring problems parameterized by treewidth, by composing recognizers for each class $\mathcal{H}_i$ into DP cores for $\mathsf{GraphPart}$, $\mathsf{VertPart}$, and $\mathsf{EdgePart}$. It formalizes the DPC model, provides examples, and shows how to combine cores for intersections and unions to build multi-class solvers with explicit per-node and total runtimes. The main results give concrete runtime bounds in terms of the component cores and the tree decomposition, and the approach is demonstrated on classic problems like Vertex Cover and Graph $q$-Coloring as well as a bioinformatics problem DisplayGraph, achieving competitive or improved performance. This meta-algorithmic tool offers a practical, scalable route to designing DP algorithms for complex partitioning tasks and exotic problems parameterized by treewidth, without resorting to Courcelle-like theorem approaches. The framework also supports counting and balancing constraints, suggesting broad applicability and future extensions.

Abstract

Given two integers $\ell$ and $p$ as well as $\ell$ graph classes $\mathcal{H}_1,\ldots,\mathcal{H}_\ell$, the problems $\mathsf{GraphPart}(\mathcal{H}_1, \ldots, \mathcal{H}_\ell,p)$, \break $\mathsf{VertPart}(\mathcal{H}_1, \ldots, \mathcal{H}_\ell)$, and $\mathsf{EdgePart}(\mathcal{H}_1, \ldots, \mathcal{H}_\ell)$ ask, given graph $G$ as input, whether $V(G)$, $V(G)$, $E(G)$ respectively can be partitioned into $\ell$ sets $S_1, \ldots, S_\ell$ such that, for each $i$ between $1$ and $\ell$, $G[S_i] \in \mathcal{H}_i$, $G[S_i] \in \mathcal{H}_i$, $(V(G),S_i) \in \mathcal{H}_i$ respectively. Moreover in $\mathsf{GraphPart}(\mathcal{H}_1, \ldots, \mathcal{H}_\ell,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 $\mathcal{H}_i$, for each $i$, then we can constructively create a dynamic programming tree-decomposition-based algorithms for $\mathsf{GraphPart}(\mathcal{H}_1, \ldots, \mathcal{H}_\ell,p)$, $\mathsf{VertPart}(\mathcal{H}_1, \ldots, \mathcal{H}_\ell)$, and $\mathsf{EdgePart}(\mathcal{H}_1, \ldots, \mathcal{H}_\ell)$. We apply this approach to known problems. For well-studied problems, like VERTEX COVER and GRAPH $q$-COLORING, we obtain running times that are comparable to those of the best known problem-specific algorithms. For an exotic problem from bioinformatics, called DISPLAYGRAPH, this approach improves the known algorithm parameterized by treewidth.

Composing dynamic programming tree-decomposition-based algorithms

TL;DR

The paper introduces a dynamic programming core (DPC) framework to solve graph partition and coloring problems parameterized by treewidth, by composing recognizers for each class into DP cores for , , and . It formalizes the DPC model, provides examples, and shows how to combine cores for intersections and unions to build multi-class solvers with explicit per-node and total runtimes. The main results give concrete runtime bounds in terms of the component cores and the tree decomposition, and the approach is demonstrated on classic problems like Vertex Cover and Graph -Coloring as well as a bioinformatics problem DisplayGraph, achieving competitive or improved performance. This meta-algorithmic tool offers a practical, scalable route to designing DP algorithms for complex partitioning tasks and exotic problems parameterized by treewidth, without resorting to Courcelle-like theorem approaches. The framework also supports counting and balancing constraints, suggesting broad applicability and future extensions.

Abstract

Given two integers and as well as graph classes , the problems , \break , and ask, given graph as input, whether , , respectively can be partitioned into sets such that, for each between and , , , respectively. Moreover in , we request that the number of edges with endpoints in different sets of the partition is bounded by . We show that if there exist dynamic programming tree-decomposition-based algorithms for recognizing the graph classes , for each , then we can constructively create a dynamic programming tree-decomposition-based algorithms for , , and . We apply this approach to known problems. For well-studied problems, like VERTEX COVER and GRAPH -COLORING, we obtain running times that are comparable to those of the best known problem-specific algorithms. For an exotic problem from bioinformatics, called DISPLAYGRAPH, this approach improves the known algorithm parameterized by treewidth.

Paper Structure

This paper contains 8 sections, 8 theorems, 14 equations.

Key Result

Theorem 4

Let $\mathcal{H}$ be a class of graphs and $\mathfrak{C}$ be a dynamic core that solves $\mathcal{H}$. Given a graph $G\in \mathcal{G}$ and a rooted tree decomposition $\mathcal{D} = (T,r,\mathcal{X})$ of $G$, one can decide whether $G\in \mathcal{H}$ in time $\mathcal{O}\left(\sum_{t \in V(T)}|\mat

Theorems & Definitions (19)

  • Definition 1: Dynamic Core
  • Definition 2
  • Definition 3
  • Theorem 4: fvBaFeJaMaOlPhRo2022
  • proof
  • proof
  • Lemma 8
  • proof
  • Lemma 9
  • proof
  • ...and 9 more