15b |
Kruskalův algoritmus
Popis algoritmu
KROK 0
Uspořádáme hrany do neklesající posloupnosti podle jejich ohodnocení:c(e1) <= c(e2) <= ... <= c(em),kde m = |EG|.
Položíme okamžitý les F0 := { U, {} },i = 0, j = 0.
KROK 1
Opakujme tento krok tolikrát, kolikrát je to jen možné:Bereme postupně hrany e1, e2, ... a snažíme se přidat je k okamžitému lesu Fi. Pokud je Fi + ej lesem, položíme
Fi+1 := Fi + ej, i := i+1jinak hranu ej vynecháme. Položíme j := j+1.
Zjednodušený popis algoritmu
Minimální kostru grafu vytvoříme ve dvou krocích. Krok 0 je startovní, poté opakujeme krok 1. Předpokládáme, že graf je konečný a souvislý, tj. má minimální kostru.KROK 0
Začneme od grafu, který neobsahuje žádnou hranu. seřadíme hrany do neklesající posloupnosti podle jejich ohodnocení. Jdeme na krok 1.KROK 1
Tento krok opakujeme dokud nebudeme mít o jednu hranu méně, než je počet vrcholů grafu.Bereme postupně hrany e1, e2, ... a snažíme se je přidat k našemu grafu.
- pokud cyklus nevznikne - hranu přidáme
- pokud by cyklus vznikl - hranu vynecháme
15b |