# Ú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