少终端Steiner树问题的求解
Solving the Steiner Tree Problem with few Terminals
摘要:
Steiner树问题是网络设计、路由和VLSI设计中的一个众所周知的问题。给定一个图、边的代价和一组专用顶点(终端),斯坦纳树问题要求输出一个以最小代价连接所有终端的子图。通过动态规划来解决Steiner树问题的最先进算法是Dijkstra-Steiner算法。该算法通过系统地搜索较小的实例,基于终端的子集,并为这些较小的实例组合Steiner树,来构建整个实例的Steiner树。搜索严重依赖于引导启发式函数,以便修剪搜索空间。然而,为了确保正确性,该算法只允许有限的启发式函数,即那些满足所谓的一致性条件。本文对Dijkstra-Steiner算法进行了改进,提出了一种重访算法DS*。DS* 算法允许任意的下限作为启发式算法,放松了启发式函数上的先前条件。值得注意的是,我们现在可以使用基于线性规划的下限。此外,我们捕获的启发式函数的条件,我们称之为受理的新要求。我们表明,容许性确实是弱于一致性,并建立正确的DS* 算法时,使用一个容许的启发式函数。我们实现了DS*,并将其与现代预处理相结合,从而形成了一个开源求解器(DS* Solve)。最后,我们比较其性能的标准基准,并观察到竞争行为。
英文摘要:
The Steiner tree problem is a well-known problem in network design, routing, and VLSI design. Given a graph, edge costs, and a set of dedicated vertices (terminals), the Steiner tree problem asks to output a sub-graph that connects all terminals at minimum cost. A state-of-the-art algorithm to solve the Steiner tree problem by means of dynamic programming is the Dijkstra-Steiner algorithm. The algorithm builds a Steiner tree of the entire instance by systematically searching for smaller instances, based on subsets of the terminals, and combining Steiner trees for these smaller instances. The search heavily relies on a guiding heuristic function in order to prune the search space. However, to ensure correctness, this algorithm allows only for limited heuristic functions, namely, those that satisfy a so-called consistency condition. In this paper, we enhance the Dijkstra-Steiner algorithm and establish a revisited algorithm, called DS*. The DS* algorithm allows for arbitrary lower bounds as heuristics relaxing the previous condition on the heuristic function. Notably, we can now use linear programming based lower bounds. Further, we capture new requirements for a heuristic function in a condition, which we call admissibility. We show that admissibility is indeed weaker than consistency and establish correctness of the DS* algorithm when using an admissible heuristic function. We implement DS* and combine it with modern preprocessing, resulting in an open-source solver (DS* Solve). Finally, we compare its performance on standard benchmarks and observe a competitive behavior.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。