In this paper, we present exact exponential algorithms for computing branchwidth that are fast both in theory and in practice. The running times of these algorithms are single-exponential in the number of vertices. Our basic algorithm is based on a conceptually simple recurrence on vertex sets and computes the branchwidth of an $n$-vertex hypergraph in time $\mathcal{O}^*(4^n)$. This is the first single-exponential time algorithm for hypergraphs. We have two algorithms tailored specifically for graphs. The first algorithm runs in time $\mathcal{O}(3.293^n)$, improving upon the previously best-known running time of $\mathcal{O}(3.4652^n)$ [Fomin-Mazoit-Todinca, DAM 2009]. Moreover, our computational experiment shows that it overwhelmingly outperforms state-of-the-art practical algorithms for computing branchwidth. The second algorithm is a candidate for a theoretical improvement: we conjecture that it runs in time $\mathcal{O}(c^n)$ for some constant $c$ that is smaller than 3.293. In practice, it performs significantly better on some instances that are hard for the first algorithm.
翻译:本文提出了计算分支宽度的精确指数算法,这些算法在理论和实践中均具有高效性。这些算法的运行时间在顶点数量上呈单指数增长。我们的基础算法基于一种概念简单的顶点集递推关系,可在 $\mathcal{O}^*(4^n)$ 时间内计算 $n$ 顶点超图的分支宽度。这是超图领域的首个单指数时间算法。我们针对图结构设计了两种专门算法。第一种算法运行时间为 $\mathcal{O}(3.293^n)$,优于此前已知的最优运行时间 $\mathcal{O}(3.4652^n)$ [Fomin-Mazoit-Todinca, DAM 2009]。此外,计算实验表明,该算法在性能上大幅超越当前最先进的分支宽度实用算法。第二种算法有望实现理论突破:我们推测该算法可在 $\mathcal{O}(c^n)$ 时间内运行,其中常数 $c$ 小于 3.293。在实际应用中,该算法对第一种算法难以处理的某些实例表现出显著更优的性能。