Given a weighted directed graph G = (V, E, c), where c : E -> R+ is an edge cost function, a subset X of vertices (terminals), and a root vertex v(r), the directed Steiner tree problem (DSP) asks for a minimum-cost tree which spans the paths from root ver