We give an algorithm that takes as input an $n$-vertex graph $G$ and an integer $k$, runs in time $2^{O(k^2)} n^{O(1)}$, and outputs a tree decomposition of $G$ of width at most $k$, if such a decomposition exists. This resolves the long-standing open problem of whether there is a $2^{o(k^3)} n^{O(1)}$ time algorithm for treewidth. In particular, our algorithm is the first improvement on the dependency on $k$ in algorithms for treewidth since the $2^{O(k^3)} n^{O(1)}$ time algorithm given by Bodlaender and Kloks [ICALP 1991] and Lagergren and Arnborg [ICALP 1991]. We also give an algorithm that given an $n$-vertex graph $G$, an integer $k$, and a rational $\varepsilon \in (0,1)$, in time $k^{O(k/\varepsilon)} n^{O(1)}$ either outputs a tree decomposition of $G$ of width at most $(1+\varepsilon)k$ or determines that the treewidth of $G$ is larger than $k$. Prior to our work, no approximation algorithms for treewidth with approximation ratio less than $2$, other than the exact algorithms, were known. Both of our algorithms work in polynomial space.
翻译:我们给出了一种算法, 其输入值为$(k)G$和整金美元, 时间运行为$2 ⁇ O(k)2}n ⁇ O(1)}美元, 产出为树宽度的树分解, 如果存在这种分解值的话, 则树分解为$最多。 这解决了长期存在的问题, 即树宽值是否为$(k)3) n ⁇ O(1)}时间算法。 特别是, 我们的算法是自 $(k)O(k)3} n ⁇ (1)} 时间算法中树宽度对美元的依赖度的首次改善, 自 $(k)O(k)和Kloks[CICP 1991] 和Lagergren和Arnborg[CRicalP 1991] 给出的时间算法。 我们还给出了一个长期未解决的问题, 即树平面值是否为$(k)$(g)美元, 整金(n), 和合理的$(varesilon) 美元(k) 运算为美元(k) 美元(k) 。