Many algorithms which exactly solve hard problems require branching on more or less complex structures in order to do their job. Those who design such algorithms often find themselves doing a meticulous analysis of numerous different cases in order to identify these structures and design suitable branching rules, all done by hand. This process tends to be error prone and often the resulting algorithm may be difficult to implement in practice. In this work, we aim to automate a part of this process and focus on simplicity of the resulting implementation. We showcase our approach on the following problem. For a constant $d$, the $d$-Path Vertex Cover problem ($d$-PVC) is as follows: Given an undirected graph and an integer $k$, find a subset of at most $k$ vertices of the graph, such that their deletion results in a graph not containing a path on $d$ vertices as a subgraph. We develop a fully automated framework to generate parameterized branching algorithms for the problem and obtain algorithms outperforming those previously known for $3 \le d \le 8$. E.g., we show that $5$-PVC can be solved in $O(2.7^k\cdot n^{O(1)})$ time.
翻译:许多精确求解困难问题的算法需要在或多或少复杂的结构上进行分支以完成任务。设计此类算法的研究人员通常需手动对大量不同情况进行细致分析,以识别这些结构并设计合适的分支规则。这一过程容易出错,且最终算法在实践中往往难以实现。本研究旨在自动化该流程的其中一部分,并重点关注最终实现的简洁性。我们以下述问题为例展示该方法:对于给定常数$d$,$d$-路径顶点覆盖问题($d$-PVC)定义如下:给定一个无向图和一个整数$k$,需要找出图中至多包含$k$个顶点的子集,使得删除这些顶点后得到的图不包含长度为$d$的路径作为子图。我们开发了一个全自动化框架,为这一问题生成参数化分支算法,并获得了在$3 \le d \le 8$范围内优于已知结果的新算法。例如,我们证明$5$-PVC可以在$O(2.7^k\cdot n^{O(1)})$时间内求解。