1.6 KiB
1.6 KiB
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ů.
- vybereme libovolný vrchol
v \in G
souvislého grafu - následujeme hrany a tvoříme tah
w
z tohoto vrcholu, dokud se nevrátíme do vrcholuv
- 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í)
- tento tah bude uzavřeným, ale možná nepokryje všechny vrcholy a hrany grafu
- dokud existuje vrchol
u \in w
, který má nevyužité hrany, začneme nový tah zu
, který následuje nepoužité hrany, dokud se nevrátíme dou
- jelikož se jedná o souvislý graf, opakováním předchozího kroku vyčerpáme všechny hrany grafu