Stony Brook Algorithm Repository

Steiner Tree


Input Description: A graph \(G=(V,E)\). A subset of vertices \(T \in V\).
Problem: Find the smallest tree connecting all the vertices of \(T\).

Excerpt from The Algorithm Design Manual: Steiner tree often arises in network design and wiring layout problems. Suppose we are given a set of sites that must be connected by wires as cheaply as possible. The minimum Steiner tree describes the way to connect them using the smallest amount of wire. Analogous problems arise in designing networks of water pipes or heating ducts in buildings. Similar considerations also arise in VLSI circuit layout, where we seek to connect a set of sites to (say) ground under constraints such as material cost, signal propagation time, or reducing capacitance.

The Steiner tree problem is distinguished from the minimum spanning tree problem in that we are permitted to construct or select intermediate connection points to reduce the cost of the tree.


GeoSteiner (rating 10)
FLUTE (rating 9)
PHYLIP (rating 7)
pcst_fast (rating 5)
DSTAlgoEvaluation (rating 5)
Salowe's Rectilinear Steiner trees (rating 5)

Recommended Books

The Steiner Tree Problem: a tour through graphs,algorithms, and complexity by Hans Jurgen Promel, Angelika Steger Advances in Steiner Trees by D. Du and J. Smith and J. Rubinstein The Steiner Tree Problem by R. Hwang and D. Richards and P. Winter
Computational Geometry by F. Preparata and M. Shamos Graph Algorithms by S. Even Combinatorial Optimization: Networks and Matroids by E. Lawler

Related Problems

Minimum Spanning Tree

Shortest Path

As an Amazon affiliate, I earn from qualifying purchases if you buy from links on this website.

Go To Main Page