22

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.

templatetypedef
  • 328,018
  • 92
  • 813
  • 992
user3347255
  • 221
  • 1
  • 2
  • 3

1 Answers1

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!

templatetypedef
  • 328,018
  • 92
  • 813
  • 992
  • 1
    anyone 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