The Steiner tree enumeration problem is a well known problem that asks for enumerating Steiner tree . Numerous theoretical works propose algorithms for the problem and analyze 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 controls the number of generated Steiner trees  to reduce the memory and computation costs  . We validate that our algorithm can enumerate Steiner trees in real-world graphs more efficiently than existing methods.
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.
R
tree
trees
R
propose
proposed
R
analyze
analyzed
R
controls the
prunes Steiner trees with costs larger than the threshold. We also extend our algorithm by preprocessing the given graph and controlling the
A
in order
A
. The extension makes our algorithm scalable by generating a subset of the minimal Steiner trees