32 lines
No EOL
1.6 KiB
Markdown
32 lines
No EOL
1.6 KiB
Markdown
# Ú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 |