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.
Asked
Active
Viewed 1.6k times
22
-
What steps do you need to take to calculate this value? – Ian R. O'Brien Feb 24 '14 at 15:42
-
Does Kruskal's count as a modified Prim's? – Alejandro Feb 27 '14 at 11:44
-
I was able to solve it. thank you! – user3347255 Feb 28 '14 at 12:19
-
MST for a directed graph is a different problem. It is the Minimum Cost Arborescence Problem. – Nikunj Banka Mar 23 '14 at 18:40
1 Answers
21
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!
![](../../users/profiles/501557.webp)
templatetypedef
- 328,018
- 92
- 813
- 992
-
1anyone happen to know of an implementation of this? I've found limited implementations of the Chu-Liu/Edmonds algorithm, but nothing for the algorithm by Galil et al. – Jordan Aug 08 '18 at 18:04