FAV-ZCU/KMA DMA/Otázky ke zkoušce/25. Úloha minimální kostry.md

1.6 KiB

Úloha minimální kostry

Nechť G je souvislý ohodnocený neorientovaný graf a nechť T je kostra grafu G. Potom číslo

\displaystyle w(T) = \sum_{e \in E(T)} w(e)

nazveme vahou kostry T v grafu $G$. Kostru T' takovou, že w(T') = \min\{ w(T); T \text{ je kostra } G \}, nazveme minimální kostrou grafu $G$.

Algoritmus - O. Borůvka

  • Vstup: souvislý ohodnocený neorientovaný graf.
  1. F je faktor grafu G s E(F) = \emptyset (nemá žádné hrany).
  2. Existuje hrana e \in E(G) - E(F) taková, že faktor F' = (V(G), E(F) \cup \{e\}) neobsahuje kružnici?
    • Pokud ne - KONEC, pokud ano, pokračuj na 3.
  3. Ze všech takových hran vyber hranu e' s minimální váhou a polož F = (V(G), E(F) \cup \{e'\}) a jdi na 2.

Věta: Nechť G je souvislý ohodnocený neorientovaný graf. Potom faktor F nalezený předchozím algoritmem je minimální kostra grafu G.

Algoritmus - V. Jarník

  • Vstup: souvislý ohodnocený neorientovaný graf.
  1. Zvolme libovolný vrchol x \in V(G), položme i := 1 a G_{1} = (\{x\}, \emptyset).
  2. Je V(G_{i}) = V(G)?
    • ANO - G_{i} je minimální kostrou grafu G, konec
    • NE - zvolme hranu e_{i} s nejmenší vahou takovou, že má jeden konec v G_{i} a druhý x_{i} mimo G_{i} (ze souvislosti grafu G taková hrana existuje), krok 3
  3. Označme G_{i+1} graf vzniklý z grafu G_{i} přidáním hrany e_{i} včetně jejího koncového vrcholu x_{i}
    • V(G_{i+1}) = V(G_{i} \cup \{x_{i}\}), \quad E(G_{i+1}) = E(G_{i}) \cup \{e_{i}\}
    • krok 2

Algoritmus - J. B. Kruskal

  • TODO