Definice: Párování v grafu je takové, že pro každý vrchol existuje maximálně jedna hrana v jíž je součástí. Perfektní párování je takové , že pro každý vrchol existuje právě jedna hrana jenž náleží. Definice: Vzhledem k párování v grafu mluvíme o volném vrcholu jako o , pro které neexistuje hrana v , která by ji obsahovala.
Tutteova věta
Definice: Tutteova podmínka je , kde je počet lichých komponent grafu.
Věta: (Tutteova) Graf má perfektní párování platí Tutteova podmínka. Důkaz: obměnou, nechť neplatí Tutteova podmínka. Máme tedy nějaké a pro spor předpokládáme, že máme perfektní párování na , ale můžeme si všimnout, že každá lichá komponenta musí spárovat jeden lichý vrchol s nějakým vrcholem s , jenže těch je méně než lichých komponent a tedy spor.
Věta: (Petersonova) Pro každý -regulární a -souvislý graf má perfektní párování.
- -regulární a -souvislý graf je stejně vrcholově i hranově souvislý zároveň, mohli bychom ho také nazvat bez mostů a artikulací. Důkaz: Nechť je -regulární a -souvislý graf, pak díky Tutteově větě převedeme problém na vyšetření Tutteovy podmínky.
Mějme danou , pak
- Každá komponenta je spojena alespoň dvěma hranami s
- Ukážeme, že každá lichá komponenta je dokonce spojena lichým počtem hran s , nazveme takovou komponentu :
Kombinací obou bodů tedy zjišťujeme, že každá lichá komponenta je s spojena alespoň hranami. Z toho nám pro označující počet hran mezi a lichými komponentami vychází zároveň:
- z -regularity a platí tedy a tedy i Tutteova podmínka a máme existenci perfektního párování zaručenu.
Edmonsův algoritmus
Základní myšlenka: v průběhu hledání augmentující cesty může vzniknout smyčka liché délky (tzv. „květina“). Tu je třeba zavřít (contract), zpracovat zjednodušený graf, poté „rozevřít“ a rozšířit párování zpět. Vstupem je graf a jeho libovolné párování , třeba prázdné pro inicializaci. Výstupem je párování , které je alespoň o větší, než , případně pokud bylo maximální.
- zkonstruujeme maximální možný Edmondsův les vzhledem k aktuálnímu tím, že z volných vrcholů pustíme BFS a střídavě přidáváme vrcholy
- hranám, které se v lese neobjeví, se říká kompost a nebudou pro nás důležité
- pokud existuje hrana mezi (potenciálně různými) sudými hladinami různých stromů, pak máme volnou střídavou cestu, kterou zalterujeme a jsme hotovi (párování je o větší)
- pokud existuje hrana mezi (potenciálně různými) sudými hladinami jednoho stromu, máme květ – ten zkontrahujeme a rekurzivně se zavoláme
- vrátí-li , pak nic dalšího neděláme
- vratí-li nějaké větší párování, tak z něho zkonstruujeme párování v
- neexistuje-li hrana mezi sudými hladinami, pak
Tvrzení: Edmondsův algoritmus spuštěný na a doběhne v čase a najde párování alespoň o hranu větší než , případně oznámí, že je největší nejlepší párování lze nalézt v čase .