# Eulerovské grafy

Tah z $u$ do $v$ v grafu $G$ je sled $(u = v_{0}, v_{1}, \dots, v_{k} = v)$, ve kterém se **mohou opakovat vrcholy**, ale **hrany** $v_{i-1}v_i$ **jsou** pro různá $i$ **různé**.
- Tahem nazveme sled, ve kterém se neopakují hrany.

**Uzavřený tah** je tah, který je uzavřeným sledem (začíná a končí stejným vrcholem).

**Uzavřený tah** je **eulerovský**, pokud používá každou hranu grafu $G$.

**Eulerovským grafem** nazveme graf $G$, který obsahuje eulerovský tah.

## Existence eulerovského tahu

Za jakých podmínek existuje sled, který používá každou hranu daného grafu právě jednou?

**Věta**: Souvislý graf $G$ má eulerovský tah, právě když **všechny** jeho **vrcholy** mají **sudý stupeň** (jde z něj sudý počet hran).

- orientovaný graf je eulerovský právě tehdy, je-li souvislý a každý jeho vrchol má vstupní stupeň rovný výstupnímu

### Hierholzerův algoritmus

Algoritmus pro hledání eulerovských tahů.

1) vybereme libovolný vrchol $v \in G$ souvislého grafu
2) následujeme hrany a tvoříme tah $w$ z tohoto vrcholu, dokud se nevrátíme do vrcholu $v$
3) díky sudému stupni každého vrcholu se na žádném vrcholu není možné zaseknout (jednou hranou se vstoupí a existuje další nepoužitá, kterou se vystoupí)
4) tento tah bude uzavřeným, ale možná nepokryje všechny vrcholy a hrany grafu
5) dokud existuje vrchol $u \in w$, který má nevyužité hrany, začneme nový tah z $u$, který následuje nepoužité hrany, dokud se nevrátíme do $u$
6) jelikož se jedná o souvislý graf, opakováním předchozího kroku vyčerpáme všechny hrany grafu