In the Steiner tree problem we are given the set of nonterminals, the set of terminals and the metric m. Our goal is to find a minimum cost tree connecting all terminals (it can possibly contain some nonterminal nodes).
We solve this problem using Zelikovsky 11/6 approximation algorithm. The algorithm exploit model of the WeakVoronoi concept (see Voronoi), where the generators are the terminals and the vertices are nonterminals. There is one additional assumption on metric i.e. we only use this metric only for distances (Nonterminal, Terminal) and (Terminal, Terminal).
example file is zelikovsky_11_per_6_example.cpp
Complexity of the algorithm is \(O(|V|*|E| + |T|^4)\) where T is the set of terminals.
The algorithm is described in the [24].
1.8.5