TL;DR
This paper introduces DS*, an enhanced algorithm for the Steiner tree problem that allows arbitrary heuristics, including linear programming bounds, improving flexibility and performance in solving large instances.
Contribution
The paper extends the Dijkstra-Steiner algorithm to DS*, enabling the use of admissible heuristics and linear programming bounds, with a new correctness proof and practical implementation.
Findings
DS* allows arbitrary heuristics, including LP-based bounds.
The implementation DS* Solve performs competitively on benchmarks.
Admissibility is a weaker condition than consistency for heuristics.
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
