We are interested in computing the treewidth $\tw(G)$ of a given graph $G$. Our approach is to design heuristic algorithms for computing a sequence of improving upper bounds and a sequence of improving lower bounds, which would hopefully converge to $\tw(G)$ from both sides. The upper bound algorithm extends and simplifies Tamaki's unpublished work on a heuristic use of the dynamic programming algorithm for deciding treewidth due to Bouchitt\'{e} and Todinca. The lower bound algorithm is based on the well-known fact that, for every minor $H$ of $G$, we have $\tw(H) \leq \tw(G)$. Starting from a greedily computed minor $H_0$ of $G$, the algorithm tries to construct a sequence of minors $H_0$, $H_1$, \ldots $H_k$ with $\tw(H_i) < \tw(H_{i + 1})$ for $0 \leq i < k$ and hopefully $\tw(H_k) = \tw(G)$. We have implemented a treewidth solver based on this approach and have evaluated it on the bonus instances from the exact treewidth track of PACE 2017 algorithm implementation challenge. The results show that our approach is extremely effective in tackling instances that are hard for conventional solvers. Our solver has an additional advantage over conventional ones in that it attaches a compact certificate to the lower bound it computes.
翻译:我们感兴趣的是计算某个图形的树枝$\ tw( G) $ G$ 。 我们的方法是设计超光速算法, 用于计算一个改进上限和下限的序列。 我们的方法是设计超光速算法, 用于计算一个改进上限和下限的序列。 上限算法扩展并简化玉木的未出版工作, 用于使用动态编程算法, 以决定布奇特和托丁卡的树枝。 下限算法的依据是众所周知的事实, 每计算一个改进上限和下限的序列, 每计算一个改进上限和下限的序列, 希望从两边的$ tw( H)\ tw( G), 从一个贪婪计算小的$+0 G美元开始, 算法试图构建一个未成年人的序列 $H_ 0, $H_ 1美元,\ ldotots $_k$( H_ i) littlex ylegral le_ a true a true, lex_ gn_ hold it a true a hitle_ hitle_ how_ how_ hl_ hl_ h) lax a we a we_ how_ hl_ hows a lax a lax_ hit it_ hit it_ how a how a how_ how a how a how a how_ how a b lex_ h)。 lex a b lex a b lex a_x a_ how a how_ h lex a h lex a b lex a h lex a h lex a h lex a b_x_x_x__x a_x_x a_x a_x a_ gs a_x a_x a_x a_x a_x a_x a__x a_x a__x a_x a_x_x a_x a_x a_x a_x a_x a_x a_x a_x a_x a_ g_x a tral_x_x a_x a_x a trups a trups_x a tral_x a