# 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