Přeskočit na obsah

Nezávislá množina

Z Wikipedie, otevřené encyklopedie
Modře označené vrcholy tvoří maximální nezávislou množinu vyobrazeného grafu.

Nezávislá množina (NM) je pojem z teorie grafů. Nezávislá množina v grafu je taková množina jeho vrcholů, že žádné dva z nich nejsou spojeny hranou.[1][2]

Nechť je graf, pak je nezávislá množina, pokud platí . Velikost největší nezávislé množiny v grafu se značí a nazývá se číslo nezávislosti grafu.

Problém nezávislé množiny

[editovat | editovat zdroj]

Rozhodovací varianta

[editovat | editovat zdroj]

Rozhodovací varianta problému nezávislé množiny má následující tvar[3][4]:

  • Vstup: Neorientovaný graf a číslo .
  • Otázka: Platí ?

Tento problém náleží do třídy NP. Je-li totiž odpověď kladná, lze jako certifikát předložit konkrétní množinu vrcholů a v polynomiálním čase ověřit, že a že žádné dva vrcholy z nejsou spojeny hranou.[4]

Dokonce lze ukázat, že (rozhodovací) problém nezávislé množiny je NP-úplný. Tuto skutečnost lze dokázat redukcí z problému 3-SAT, jelikož problém SAT (který je NP-úplný z Cookovy-Levinovy věty) je polynomiálně převoditelný na 3-SAT. [3]

Důkaz NP-úplnosti

[editovat | editovat zdroj]

Mějme tedy formuli v konjunktivní normální formě, jejíž každá klauzule obsahuje právě tři literály. Nechť má formule celkem klauzulí. Sestrojíme příslušný graf takto:

  • Pro každou klauzuli vytvoříme trojúhelník (tj. cyklus ) a jeho tři vrcholy označíme třemi literály dané klauzule.
  • Dále spojíme hranou každé dva vrcholy z různých trojúhelníků, pokud odpovídají literálům vzájemně opačné polarity, tedy jednomu literálu a druhému .

Korektnost převodu je založena na dvou jednoduchých pozorováních. Protože každý trojúhelník je úplný graf na třech vrcholech, může nezávislá množina obsahovat z každé klauzule nejvýše jeden vrchol. Existence nezávislé množiny velikosti tedy znamená, že jsme vybrali právě jeden vrchol z každé klauzule. Hrany mezi konfliktními literály navíc zaručují, že takový výběr nemůže obsahovat současně i . Vybrané vrcholy proto určují konzistentní pravdivostní ohodnocení proměnných, které v každé klauzuli splní alespoň jeden literál.[3][4]

Naopak, existuje-li splňující ohodnocení formule , z každé klauzule vybereme jeden pravdivý literál. Tím dostaneme množinu vrcholů, z nichž žádné dva nejsou spojeny hranou: uvnitř jedné klauzule jsme vybrali právě jeden vrchol a mezi různými klauzulemi nemohou být spojeny dva současně pravdivé konfliktní literály. Tato množina je tedy nezávislá a má velikost .[3][4]

Tím jsme dokázali, že formule je splnitelná právě tehdy, když v grafu existuje nezávislá množina velikosti alespoň . Navíc převod je zjevně polynomiální, neboť graf může mít maximálně hran.

Optimalizační varianta

[editovat | editovat zdroj]

Optimalizační verzí problému nezávislé nezávislé množiny má následující tvar:

  • Vstup: Neorientovaný graf .
  • Výstup: Číslo .

Optimalizační varianta problému je alespoň stejně „těžká“ jako varianta rozhodovací. Kdybychom uměli v polynomiálním čase spočítat hodnotu , uměli bychom tím v polynomiálním čase vyřešit i rozhodovací variantu.

Vztahy s dalšími problémy

[editovat | editovat zdroj]

Problém nezávislé množiny je úzce spjat s problémem kliky. Množina vrcholů je nezávislá v grafu právě tehdy, když je klikou v jeho doplňku . Z toho plyne, že graf obsahuje nezávislou množinu velikosti alespoň právě tehdy, když doplňkový graf obsahuje kliku velikosti alespoň .[4]

Tento vztah ukazuje, že problémy klika a nezávislá množina jsou v podstatě dvěma pohledy na tutéž otázku: v jednom případě hledáme podmnožinu vrcholů s co nejvíce hranami, ve druhém naopak podmnožinu bez hran.[3][4]

Vrcholové pokrytí

[editovat | editovat zdroj]

Další vztah má problém nezávislé množiny k vrcholovému pokrytí. Množina je nezávislá právě tehdy, když doplněk tvoří vrcholové pokrytí grafu , tedy množinu vrcholů obsahující alespoň jeden konec každé hrany.[4][3]

V důsledku toho pro každý graf platí kde značí velikost nejmenšího vrcholového pokrytí. Rozhodovací problém „existuje vrcholové pokrytí velikosti nejvýše ?“ je proto na problém nezávislé množiny polynomiálně převoditelný.[4][3]

Barvení grafu

[editovat | editovat zdroj]

Barvení grafu s problémem nezávislé množiny souvisí tím, že každá barevná třída v korektním obarvení tvoří nezávislou množinu. Naopak každé rozdělení množiny vrcholů na nezávislých množin určuje korektní obarvení barvami. Hledání obarvení grafu tedy lze chápat jako úlohu rozložit vrcholy grafu na co nejmenší počet nezávislých množin.

Tato souvislost je důležitá i z hlediska výpočetní složitosti. Například problém 3-obarvitelnosti je NP-úplný.[3][4]

Párování

[editovat | editovat zdroj]

Problém párování stojí vůči nezávislé množině v poněkud odlišné pozici. Sám o sobě nepředstavuje další NP-úplný problém v této rodině; naopak největší párování v bipartitním grafu lze nalézt v polynomiálním čase převodem na problém maximálního toku.[3][4]

Právě proto je vztah k párování důležitý u speciálních tříd grafů.

Nezávislé množiny u speciálních tříd grafů

[editovat | editovat zdroj]

Ačkoliv je problém nezávislé množiny pro obecné grafy NP-úplný, pro některé důležité třídy grafů je řešitelný v polynomiálním čase.

Stromy a lesy

[editovat | editovat zdroj]

U stromů a obecněji lesů lze největší nezávislou množinu nalézt v polynomiálním, ba při vhodné implementaci i v lineárním čase. Základním krokem je následující pomocné lemma.

Lemma: Buď les a jeho libovolný list. Pak alespoň jedna z největších nezávislých množin grafu obsahuje vrchol .

Důkaz: Mějme největší nezávislou množinu , která list neobsahuje. Označme souseda vrcholu . Pokud , pak lze vrchol do množiny přidat, čímž bychom dostali větší nezávislou množinu, což je spor s maximalitou velikosti . Musí tedy platit . Pak však můžeme z množiny odebrat vrchol a nahradit jej vrcholem . Tak dostaneme nezávislou množinu stejné velikosti, která již vrchol obsahuje. Tím je lemma dokázáno.[3]

Z lemmatu plyne jednoduchý hladový algoritmus: opakovaně vybereme libovolný list, zařadíme jej do výsledné množiny a z grafu odstraníme jeho souseda; izolované vrcholy přidáme do výsledné množiny také. Takto lze sestrojit největší nezávislou množinu lesa.[3]

Bipartitní grafy

[editovat | editovat zdroj]

V bipartitních grafech je problém nezávislé množiny řešitelný v polynomiálním čase.[4]

Souvisí to s tím, že největší párování v bipartitním grafu lze nalézt pomocí maximálního toku, a problém nezávislé množiny je zde úzce propojen s problémem vrcholového pokrytí. Bipartitní grafy tak tvoří důležitý příklad třídy grafů, na níž je obecně těžký problém řešitelný efektivně.[3][4]

Máme bipartitní graf , kde a jsou partity. Sestrojíme síť tak, že:

  • přidáme zdroj a stok ,
  • z vedeme hranu do každého vrcholu z ,
  • každou hranu původního grafu orientujeme z do ,
  • z každého vrcholu z vedeme hranu do ,
  • pro všechny hrany nastavíme kapacitu 1.

Hrany původního bipartitního grafu, po nichž teče 1, pak tvoří párování; naopak z každého párování lze sestrojit tok stejné hodnoty. Velikost maximálního toku je tedy rovna velikosti největšího párování.

U bipartitních grafů platí tzv. Kőnigova věta. Z ní plyne, že velikost největší nezávislé množiny v bipartitním grafu je

kde je velikost největšího párování a velikost nejmenšího vrcholového pokrytí.

Intervalové grafy

[editovat | editovat zdroj]

Také pro intervalové grafy lze problém nezávislé množiny řešit v polynomiálním čase.[3][4]

Je-li intervalová reprezentace grafu známa, odpovídá hledání nezávislé množiny výběru co největšího počtu navzájem se nepřekrývajících intervalů. Tato formulace je ekvivalentní klasické úloze rozvrhování, kterou lze řešit jednoduchým hladovým algoritmem.[3]

  1. ↑ Algoritmy.net [online]. INFO WEB [cit. 2016-10-27]. Kapitola Nezávislé množiny → Vrcholové pokrytí. Dostupné online.
  2. ↑ Grafy a grafové algoritmy (3): Nezávislost, klikovost, dominance a barevnost grafu [online]. Praha: ČVUT [cit. 2016-11-01]. Dostupné v archivu pořízeném dne 2016-11-03.
  3. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 MAREŠ, Martin; VALLA, Tomáš. Průvodce labyrintem algoritmů. 2.. vyd. Praha: CZ.NIC, 2022. ISBN 978-80-88168-66-9.
  4. 1 2 3 4 5 6 7 8 9 10 11 12 13 PAPADIMITRIOU, Christos H. Computational Complexity. Reading, Massachusetts: Addison-Wesley, 1994. Dostupné online. ISBN 0-201-53082-1.

Externí odkazy

[editovat | editovat zdroj]