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

  1. Každá komponenta je spojena alespoň dvěma hranami s
  2. 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 .