Algorytm Edmondsa

W teorii grafów algorytm Edmondsa lub algorytm Chu – Liu / Edmondsa jest algorytmem znajdowania rozpiętości drzew o minimalnej wadze (czasami nazywanej optymalnym rozgałęzieniem ). Jest to ukierunkowany analog problemu minimalnego drzewa rozpinającego . Algorytm został zaproponowany niezależnie najpierw przez Yoeng-Jin Chu i Tseng-Hong Liu (1965), a następnie przez Jacka Edmondsa (1967).

Algorytm

Opis

Algorytm przyjmuje jako gdzie a zbiorem skierowanych krawędzi, wyróżniony wierzchołek pierwiastkiem i rzeczywistych każdej . Zwraca rozciągającą się w minimalnej , gdzie waga arborescencji jest zdefiniowana jako suma wag jej krawędzi .

Algorytm ma opis rekurencyjny. Niech oznacza funkcję, która zwraca rozpiętą drzewiastość zakorzenioną minimalnej wadze Najpierw usuwamy każdą krawędź z miejscem docelowym jest . Możemy również zastąpić dowolny zestaw krawędzi równoległych (krawędzie między tą samą parą wierzchołków w tym samym kierunku) pojedynczą krawędzią o wadze równej minimalnej wadze tych równoległych krawędzi.

Teraz dla każdego węzła znajdź krawędź dochodzącą do wagi (z arbitralnie zerwanymi wiązaniami) Oznacz źródło tej krawędzi przez . P. nie zawiera żadnych cykli, to .

W przeciwnym razie co najmniej jeden cykl z tych cykli i nazwij . Definiujemy _ jest „zakontraktowany” do jednego węzła w następujący sposób: do {\ displaystyle

Węzły z to węzły z nie w plus nowy węzeł oznaczony .

  • ( krawędzią w z i ( krawędź wchodząca w cykl), a następnie uwzględnij w i mi ) zdefiniować .
  • ( jest krawędzią w i v { \ Displaystyle krawędź odchodząca od cyklu), a następnie uwzględnij w nowej krawędzi } i zdefiniuj .
  • ( krawędzią w i ( i krawędź niezwiązana z cyklem), a następnie uwzględnij w zdefiniuj .

każdej krawędzi w krawędzi w odpowiada.

znajdź minimalną rozpiętą arborescencję wywołania fa . Ponieważ , każdy wierzchołek ma dokładnie jedną krawędź wejściową Niech będzie unikalną krawędzią przychodzącą do w . Ta krawędź odpowiada krawędzi v . Usuń krawędź z , przerywając cykl Zaznacz każdą pozostałą . Dla każdej krawędzi w krawędź . definiujemy zaznaczonych krawędzi,

re , , gdzie ma znacznie mniej wierzchołków niż . Znalezienie wykresu jednowierzchołkowego jest trywialne (jest to po prostu sam), więc algorytm rekurencyjny gwarantuje zakończenie .

Czas działania

Czas działania tego algorytmu to . Szybsza algorytmu dzięki Robertowi Tarjanowi czasie dla rzadkich wykresów i dla gęstych grafów. Jest to tak szybkie, jak algorytm Prim dla nieskierowanego minimalnego drzewa rozpinającego. W Gabow , Galil i Tarjan szybszą _

  • Chu, Yeong-Jin; Liu, Tseng-Hong (1965), „Na najkrótszym drzewie skierowanego wykresu” (PDF) , Scientia Sinica: Chung-kuo k`o hsueh , XIV (10): 1396–1400
  • Edmonds, J. (1967), „Optymalne rozgałęzienia”, Journal of Research of the National Bureau of Standards Section B , 71B (4): 233–240, doi : 10.6028/jres.071b.032
  • Tarjan, RE (1977), „Znajdowanie optymalnych rozgałęzień”, Networks , 7 : 25–35, doi : 10.1002/net.3230070103
  • Camerini, PM; Fratta, L.; Maffioli, F. (1979), „Uwaga na temat znajdowania optymalnych rozgałęzień”, Networks , 9 (4): 309–312, doi : 10.1002/net.3230090403
  •   Gibbons, Alan (1985), Algorytmiczna teoria grafów , Cambridge University Press, ISBN 0-521-28881-9
  •   Gabow, HN ; Galil, Z .; Spencer, T.; Tarjan, RE (1986), „Wydajne algorytmy znajdowania minimalnych drzew rozpinających w grafach nieskierowanych i skierowanych”, Combinatorica , 6 (2): 109–122, doi : 10.1007 / bf02579168 , S2CID 35618095

Linki zewnętrzne