V teorii grafů je shoda nebo nezávislá množina hran v grafu množina párově nesousedících hran.
Nechť je dán graf G = ( V , E ), vyhovující M v G je množina párově nesousedících hran, tedy hran, které nemají společné vrcholy, tzn. .
Maximální shoda je shoda M v grafu G , která není obsažena v žádné jiné shodě tohoto grafu, to znamená, že k němu nelze přidat jedinou hranu, která nesousedí se všemi hranami shody. Jinými slovy, shoda M grafu G je maximální, jestliže jakákoli hrana v G má neprázdný průsečík s alespoň jednou hranou z M . Níže jsou uvedeny příklady maximálních shod (červené okraje) ve třech grafech [1] .
Největší shoda (nebo shoda maximální velikosti [2] ) je shoda, která obsahuje maximální počet hran. Shodné číslo [3] v grafu je počet hran v největší shodě. Graf může mít sadu největších shod. Navíc každá největší shoda je maximální, ale žádné maximum nebude největší. Následující tři obrázky ukazují největší shody ve stejných třech sloupcích [1] .
Někteří autoři používají termín „maximální shoda“ pro největší shodu [4] [5] [6] [7] .
Dokonalá shoda (nebo 1-faktor ) je shoda, na které se podílejí všechny vrcholy grafu. To znamená, že jakýkoli vrchol grafu je dopadem přesně na jednu hranu zahrnutou do párování. Obrázek (b) na obrázku výše je příkladem takového párování. Jakékoli dokonalé sladění je největší a maximální. Dokonalým sladěním je také zakrytí okrajů minimální velikosti. V obecném případě , kde je číslo pokrytí okrajů grafu , jinými slovy, velikost největší shody nepřesahuje velikost nejmenšího pokrytí okraje.
Téměř dokonalé párování je párování, kterého se neúčastní právě jeden vrchol. To se může stát, pokud má graf lichý počet vrcholů. Na obrázku výše je shoda ve sloupci (c) téměř dokonalá. Pokud pro jakýkoli vrchol v grafu existuje téměř dokonalá shoda, která neobsahuje přesně tento vrchol, graf se nazývá faktor kritický .
Nechť je dáno odpovídající M.
Bergeovo lemma říká, že shoda je maximální tehdy a jen tehdy, když neexistuje žádná komplementární cesta.
Generující funkce počtu k -hranných párování v grafu se nazývá párovací polynom . Nechť G je graf a m k je počet k -hranných shod. Shodný polynom grafu G je
Existuje další definice shodného polynomu
,kde n je počet vrcholů v grafu. Obě definice mají své vlastní oblasti použití.
Při práci s bipartitními grafy se často objevují problémy s párováním . Najít největší shodu v bipartitním grafu [9] je možná ten nejjednodušší problém. Algoritmus výplňové cesty ji získá tak, že najde cestu výplně z každého vrcholu a přidá ji k odpovídající, pokud je nalezena. Alternativním řešením je, že párování bude doplňováno, pokud existují rozšiřující se komplementární cesty:
Rozšiřující cesta je cesta ve tvaru, pro který platí pro . Rozšiřující cesta se nazývá rozšiřující cesta if .
Lemma: Pro jakýkoli graf , shodu a dokončení cesty platí shoda a . Důkaz: Dovolit , a být počátečním vrcholem , tak a , A být posledním vrcholem , Tak, že a , A být středním vrcholem , tak . Z toho vyplývá, že o jednu hranu více do grafu přibude, než z něj odebere.
Lemma: Pro jakýkoli graf a párování platí následující: graf obsahuje minimum cest dokončení , které se neprotínají ve vrcholech s ohledem na . Důkaz: Let a , zatímco skutečně a a tedy následuje . Nechť pro připojené složky grafu . Z vyplývá
Vrcholy přicházejí střídavě z a . Nechat
, ale pouze v případě , že jde o rozšiřující cestu. a to znamená, že musí existovat minimum komponent s a v důsledku toho komplementárními cestami. Podle definice spojených komponent se takové komplementární cesty nebudou protínat ve vrcholech.
Doplňkovou cestu najdete takto:
Protože rozšiřující cestu lze nalézt v čase DFS, doba běhu algoritmu je . Toto řešení je ekvivalentní přidání superzdroje s hranami ke všem vrcholům a superstocku s hranami ze všech vrcholů (transformace grafu bude trvat a nalezení maximálního toku z do . Všechny hrany, které tečou z do tvoří maximální shodu a velikost největší shoda se bude rovnat časovémuHopcroft-Karpově rychlejší. Jiný přístup je založen na algoritmu rychlého násobení matic a poskytuje složitost [10] , což je teoreticky lepší pro dostatečně husté grafy , ale v praxi algoritmus je pomalejší [11]
Ve váženém bipartitním grafu je každé hraně přiřazena váha. Maximální váha párování v bipartitním grafu [9] je definována jako párování, pro které má součet vah hran párování maximální hodnotu. Pokud graf není úplný bipartitní , jsou chybějící hrany přidány s nulovou váhou. Problém nalezení takové shody je známý jako problém přiřazení . Pozoruhodný maďarský algoritmus řeší problém zadání a byl jedním z prvních kombinatorických optimalizačních algoritmů . Problém lze vyřešit pomocí modifikovaného hledání nejkratší cesty v algoritmu rozšiřující cesty. Pokud je použit Bellman-Fordův algoritmus , bude doba běhu , nebo může být cena hrany posunuta tak, aby dosáhla času při aplikaci Dijkstrova algoritmu s Fibonacciho haldou [12] . [13]
Existuje polynomiální časový algoritmus pro nalezení největší shody nebo shody maximální váhy v nebipartitním grafu. Podle Jacka Edmondse se tomu říká cesta, strom a barva nebo jednoduše Edmondsův algoritmus porovnávání . Algoritmus používá obousměrné oblouky . Zobecnění stejné techniky lze použít k nalezení maximální nezávislé množiny v grafech bez drápů . Edmodsův algoritmus byl následně vylepšen na dobu běhu , což odpovídá algoritmům pro bipartitní grafy [14] . Další (randomizovaný) algoritmus vyvinutý Muchou a Sankovsim (Mucha, Sankowski) [10] , založený na rychlém součinu matic , dává složitost .
Maximální shodu lze nalézt pomocí jednoduchého chamtivého algoritmu . Největší maximální shoda je největší shoda, kterou lze nalézt v polynomiálním čase. Implementace pomocí pseudokódu:
Není však znám žádný polynomiální časový algoritmus, který by našel nejmenší maximální shodu , tj. maximální shodu obsahující nejmenší možný počet hran.
Všimněte si, že největší shoda k hran je množina dominující hraně s k hranami. Naopak, za předpokladu minimální množiny s dominující hranou s k hranami, můžeme vytvořit největší shodu s k hranami v polynomiálním čase. Problém nalezení minimální velikosti maximální shody je tedy ekvivalentní problému nalezení minimální množiny dominující hraně [15] . Oba tyto optimalizační problémy jsou známé jako NP-hard a jejich rozpoznávací verze jsou klasickými příklady NP-úplných problémů [16] . Oba problémy lze aproximovat faktorem 2 s polynomiálním časem - stačí najít libovolné maximum odpovídající M [17] .
Počet shod v grafu je známý jako Hosoyyův index . Výpočet tohoto čísla je #P-complete . Problém zůstává #P-kompletní ve speciálním případě výpisu dokonalých shod v bipartitním grafu , protože výpočet permanentu náhodné matice 0-1 (další #P-úplný problém) je stejný jako výpočet počtu dokonalých shod v bipartitní graf s danou maticí jako maticí sousednosti . Existuje však náhodné aproximační schéma polynomiálního času pro výpočet počtu shod v bipartitním grafu [18] . Nádherný Casteleynův teorém , který říká, že počet dokonalých shod v rovinném grafu lze vypočítat přesně v polynomiálním čase pomocí algoritmu FKT .
Počet dokonalých shod v úplném grafu K n (se sudým n ) je dán dvojitým faktoriálem ( n − 1)!! [19] . Počet shod v kompletním grafu bez omezení, aby byla shoda dokonalá, je dán telefonními čísly [20] .
Jedním z hlavních problémů v teorii párování je najít všechny hrany, které lze rozšířit na největší párování. Nejlepší deterministický algoritmus pro řešení tohoto problému běží v čase [21] . Existuje randomizovaný algoritmus, který řeší problém v čase [22] . V případě bipartitního grafu můžete najít největší shodu a použít ji k nalezení všech maximálně shodných hran v lineárním čase [23] ; což bude mít za následek pro obecné bipartitní grafy a pro husté bipartitní grafy s . Pokud je předem známa jedna z největších shod [24] , bude celková doba běhu algoritmu .
Königova věta říká, že v bipartitních grafech je velikost největší shody rovna velikosti nejmenšího pokrytí vrcholů . Z toho vyplývá, že pro bipartitní grafy lze problémy s nalezením nejmenšího vertexového pokrytí , největší nezávislé množiny a maximálního vertex biclique řešit v polynomiálním čase .
Hallův teorém (nebo svatební teorém) poskytuje charakterizaci bipartitních grafů, které mají dokonalé shody, zatímco Tuttův teorém poskytuje charakterizaci libovolných grafů.
Dokonalá shoda generuje 1-běžný podgraf , tedy 1-faktor . Obecně platí, že k - regulární podgraf je k -faktor .
Kekule strukturní vzorec aromatických sloučenin sestává z dokonalých shod jejich uhlíkového skeletu , ukazující umístění dvojných vazeb v chemické struktuře . Tyto struktury jsou pojmenovány po Friedrichu Augustovi Kekuleovi , který ukázal, že benzen (z hlediska teorie grafů jde o cyklus 6 vrcholů) lze jako takovou strukturu znázornit [25] .
Index Hosoyya je počet neprázdných shod plus jedna. Používá se ve výpočetní a matematické chemii ke studiu organických sloučenin.