The Steiner tree enumeration problem is a well known problem that asks for enumerating Steiner trees. Numerous theoretical works proposed algorithms for the problem and analyzed their complexity, but there are no practical algorithms and experimental studies. In this paper, we study the Steiner tree enumeration problem practically. We define a problem cost-constrained minimal Steiner tree enumeration problem, which enumerates minimal Steiner trees with costs not larger than a given threshold. To solve the problem, we propose a binary decision diagram (BDD)-based algorithm. The BDD-based algorithm constructs a BDD that compactly represents the set of minimal Steiner trees and then traverses the BDD for enumeration. We develop a novel {\it frontier-based algorithm} to efficiently construct BDDs. Our BDD traverse algorithm prunes Steiner trees with costs larger than the threshold. We also extend our algorithm by preprocessing the given graph and controlling the number of generated Steiner trees in order to reduce the memory and computation costs. The extension makes our algorithm scalable by generating a subset of the minimal Steiner trees. We validate that our algorithm can enumerate Steiner trees in real-world graphs more efficiently than existing methods.
翻译:Steiner树查点问题是一个众所周知的问题,它要求列出Stanner树。许多理论工程为问题提出了算法,并分析了其复杂性,但并没有实用的算法和实验性研究。在本文件中,我们实际研究Stanner树查点问题。我们定义了一个问题,但成本限制的最低限度,Stanner树查点问题,其中列举了Stanner树的最小值,费用不高于给定阈值。为了解决问题,我们提出了一个基于二进制决定图的算法。基于BDD的算法构建了一个BDD, 精细代表了Steiner最低限度的树群,然后是BDD的圈子。我们开发了一个新的基于前沿算法,以高效地构建BDDs。我们的BDDT trverse算法比阈值高得多。我们还通过预先处理给定图和控制生成的Stanner树的数量来扩展我们的算法,以减少记忆和计算成本。这个扩展使我们的算法可以通过生成一个小 Steiner树子来缩缩缩缩。我们确认我们的算法可以将斯坦纳树在现实世界的图图中比较有效。