Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Finding a minimum spanning tree on a directed graph

What algorithm can I use to find a minimum spanning tree on a directed graph? I tried using a modification of Prim's algorithm, but wasn't able to make it work.

like image 1000
user3347255 Avatar asked Feb 24 '14 15:02

user3347255


People also ask

What is a directed spanning tree?

A directed spanning tree of G is a spanning tree in which no two arcs share their tails. Each vertex is the tail of exactly one arc of the directed spanning tree except for a special vertex r. We call r the root of the spanning tree. Directed spanning trees have been studied in many fields.

What is the minimum spanning tree of a graph?

A minimum spanning tree (MST) or minimum weight spanning tree is a subset of the edges of a connected, edge-weighted undirected graph that connects all the vertices together, without any cycles and with the minimum possible total edge weight.


1 Answers

The equivalent of a minimum spanning tree in a directed graph is called an optimum branching or a minimum-cost arborescence. The classical algorithm for solving this problem is the Chu-Liu/Edmonds algorithm. There have been several optimized implementations of this algorithm over the years using better data structures; the best one that I know of uses a Fibonacci heap and runs in time O(m + n log n) and is due to Galil et al.

Hope this helps!

like image 109
templatetypedef Avatar answered Oct 09 '22 22:10

templatetypedef