30 lines
1.6 KiB
Markdown
30 lines
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** na hledání minimální kostry - **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** na hledání minimální kostry - **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 \{h_{i}\}$
|
||
|
- krok 2
|
||
|
|
||
|
TODO: kritická cesta
|