Problém parity matroidů - Matroid parity problem - Wikipedia

v kombinatorická optimalizace, problém parity matroidu je problém najít největší nezávislou sadu spárovaných prvků v a matroid.[1] Problém formuloval Lawler (1976) jako společné zobecnění shoda grafu a průnik matroidů.[1][2] Je také známý jako polymatroid odpovídající, nebo matchoid problém.[3]
Paritu matroidů lze vyřešit v polynomiální čas pro lineární matroidy. Ale je NP-tvrdé pro některé kompaktně zastoupené matroidy a vyžaduje více než polynomický počet kroků v matroid věštec Modelka.[1][4]
Aplikace paritních algoritmů matroidů zahrnují hledání velké planární podgrafy[5] a hledání vkládání grafů z maximální rod.[6] Tyto algoritmy lze také použít k vyhledání spojené dominující sady a sady vrcholů zpětné vazby v grafech maximálního stupně tři.[7]
Formulace
A matroid lze definovat z a konečná množina prvků a z pojmu, co to znamená, aby byly podmnožiny prvků nezávislé, s výhradou následujících omezení:
- Každá podmnožina nezávislé množiny by měla být nezávislá.
- Li a jsou nezávislé množiny, s , pak existuje prvek takhle je nezávislý.[1]
Příklady matroidů zahrnují lineární matroidy (ve kterém jsou prvky vektory v a vektorový prostor, s lineární nezávislost ), grafické matroidy (ve kterém jsou prvky hranami v neorientovaný graf, nezávislé, pokud obsahují č cyklus ) a rozdělit matroidy (ve kterém prvky patří do rodiny disjunktní sady, a jsou nezávislé, pokud obsahují nejvýše jeden prvek v každé sadě). Grafické matroidy a dělící matroidy jsou speciální případy lineárních matroidů.[1]
V problému parity matroidu se vstup skládá z matroidu spolu s párováním jeho prvků, takže každý prvek patří jednomu páru. Cílem je najít podmnožinu párů, pokud možno co největší, aby spojení párů ve zvolené podmnožině bylo nezávislé.[1][2] Další zdánlivě obecnější variace, ve které přípustné páry tvoří graf, spíše než mít pouze jeden pár na prvek, je ekvivalentní: prvek, který se objevuje ve více než jednom páru, lze nahradit několika kopiemi prvku, jednou na pár.[8]
Algoritmy
Problém parity matroidů pro lineární matroidy lze vyřešit pomocí a randomizovaný algoritmus včas , kde je počet prvků matroidu, je jeho hodnost (velikost největší nezávislé sady) a je exponent v časových mezích pro rychlé násobení matic.[1]Zejména pomocí maticového algoritmu násobení Le Gall,[9] lze to vyřešit včas Bez použití rychlého násobení matic lze problém s paritou lineárního matroidu vyřešit včas .[1]
Tyto algoritmy jsou založeny na a lineární algebra formulace problému pomocí Geelen & Iwata (2005). Předpokládejme, že vstup do problému sestává z páry -dimenzionální vektory (uspořádané jako vektory sloupců v matice velikosti ). Pak je počet párů v optimálním řešení
kde je bloková diagonální matice jejichž bloky jsou dílčí matice formuláře
pro sled proměnných .[10] The Schwartz – Zippelovo lemma lze použít k testování, zda má tato matice úplnou hodnost nebo ne (tj. zda má řešení velikost.) nebo ne) přiřazením náhodných hodnot proměnným a testování, zda výsledná matice má určující nula. Použitím a chamtivý algoritmus který odstraňuje páry jeden po druhém nastavením jejich neurčitostí na nulu, dokud matice zůstane v plné hodnosti (zachování inverzní matice pomocí Sherman – Morrisonův vzorec zkontrolovat pořadí po každém odstranění), lze najít řešení, kdykoli tento test ukáže, že existuje. Další metody rozšiřují tento algoritmus v případě, že optimální řešení problému parity matroidu má méně než páry.[1]
U grafických matroidů jsou známy efektivnější algoritmy s dobou chodu na grafech s vrcholy a hrany.[11]Pro jednoduché grafy, je , ale pro multigrafy, může být větší, takže je také zajímavé mít algoritmy s menší nebo žádnou závislostí na a horší závislost na . V těchto případech je také možné vyřešit problém parity grafické matroid v náhodně očekávaném čase nebo včas když každá dvojice hran tvoří cestu.[1]
Přestože problém parity matroidů je NP-tvrdé pro libovolné matroidy to lze ještě efektivně aproximovat. Jednoduchý místní vyhledávací algoritmy poskytnout a schéma aproximace v polynomiálním čase pro tento problém a najděte řešení, jejichž velikost jako zlomek optimální velikosti řešení je libovolně blízká jedné. Algoritmus začíná na prázdná sada jako jeho řešení a opakovaně se pokouší zvětšit velikost řešení o jednu odstraněním maximálně konstantního počtu párů z řešení a jejich nahrazení jinou sadou ještě jednou dvojicí. Pokud již nejsou takové pohyby možné, je výsledné řešení vráceno jako aproximace optimálního řešení. K dosažení přibližného poměru , stačí si vybrat být přibližně .[8]
Aplikace
Mnoho dalších optimalizačních problémů lze formulovat jako problémy s paritou lineárního matroidu a vyřešit je v polynomiálním čase pomocí této formulace.
- Shoda grafů
- A maximální shoda v grafu je podmnožina hran, žádné dvě nesdílejí koncový bod, který je co největší. Lze jej formulovat jako problém s paritou matroidu v matroidu oddílu, který má v grafu prvek pro každý výskyt vrcholů hran. V tomto matroidu jsou spárovány dva prvky, pokud jsou to dva výskyty pro stejnou hranu jako každý jiný. Podmnožina prvků je nezávislá, pokud má nejvýše jeden výskyt pro každý vrchol grafu. Dvojice prvků v řešení problému parity matroidu pro tento matroid jsou výskyty mezi hranami v maximální shodě a jejich koncovými body.[2]
- Průnik matroidů
- Příklad úlohy průniku matroidů se skládá ze dvou matroidů na stejné sadě prvků; cílem je najít podmnožinu prvků, která je co největší a je nezávislá v obou matroidech. Chcete-li formulovat průnik matroidu jako problém parity matroidu, vytvořte nový matroid, jehož prvky jsou disjunktní sjednocení dvou kopií daných prvků, jedna pro každý vstupní matroid. V novém matroidu je podmnožina nezávislá, pokud její omezení na každou ze dvou kopií je nezávislé v každém ze dvou matroidů. Spárujte prvky nového matroidu tak, aby byl každý prvek spárován s jeho kopií. Dvojice prvků v řešení problému parity matroidu pro tento matroid jsou dvě kopie každého prvku v řešení problému průniku matroidů.[2]
- Velké planární podgrafy
V libovolném grafu lze problém nalezení největší sady trojúhelníků v daném grafu bez cyklů kromě vybraných trojúhelníků formulovat jako problém parity matroidu na grafickém matroidu, jehož prvky jsou hrany grafu, s jedním dvojice hran na trojúhelník (v případě potřeby duplikování hran, pokud patří do více než jednoho trojúhelníku). Dvojice prvků v řešení problému parity matroidu pro tento matroid jsou dva okraje v každém trojúhelníku optimální sady trojúhelníků. Stejný problém lze také popsat jako jeden z hledání největšího Berge-acyklický sub-hypergraf 3 uniformy hypergraf. Ve verzi problému s hypergrafem jsou hyperhrany trojúhelníky daného grafu.[3]
A kaktusový graf je graf, ve kterém mají každé dva cykly nejvýše jeden společný vrchol. Ve zvláštním případě jsou grafy, ve kterých je každý cyklus trojúhelníkem, nutně kaktusové grafy. Největší trojúhelníkový kaktus v daném grafu lze najít přidáním dalších hran z a kostra, aniž by vytvářely nové cykly, aby výsledný podgraf měl stejné připojené komponenty jako původní graf. Kaktusové grafy jsou automaticky rovinné grafy, a problém najít trojúhelníkové kaktusové grafy tvoří základ pro nejznámější aproximační algoritmus k problému najít největší rovinný podgraf daného grafu, důležitý krok planarizace. Největší trojúhelníkový kaktus má vždy alespoň 4/9 počet okrajů největšího plošného podgrafu, což zlepšuje poměr přiblížení 1/3 získaný použitím libovolného kostry.[5]
- Kombinatorická tuhost
- Kostra tuhých tyčí v Euklidovské letadlo, připojené na svých koncových bodech na pružných spojích, lze upevnit do jediné polohy v rovině připnutím některých jejích spojů k bodům roviny. Minimální počet spojů, které je třeba připnout k opravě konstrukce, se nazývá její číslo připnutí. Lze jej vypočítat z řešení přidruženého problému parity matroidu.[3]
- Vložení maximálního rodu
A buněčné vkládání daného grafu na maximální plochu rod lze získat od a Strom Xuong grafu. Toto je překlenovací strom s vlastností, že v podgrafu hran, které nejsou ve stromu, je počet připojené komponenty s lichým počtem hran je co nejmenší.
Chcete-li formulovat problém s nalezením stromu Xuong jako problém parity matroidů, nejprve rozdělte každou hranu daného grafu do cesty, přičemž délka cesty se rovná počtu dalších hran, které na ni dopadly . Poté spárujte okraje rozděleného grafu tak, aby každá dvojice okrajů v původním grafu byla představována jednou dvojicí hran v rozděleném grafu a každá hrana v rozděleném grafu byla spárována přesně jednou. Vyřešte problém parity matroidu se spárovanými hranami rozděleného grafu pomocí jeho grafického matroidu (lineární matroid, ve kterém je podmnožina hran nezávislá, pokud jeho odstranění neoddělí graf). Jakýkoli překlenovací strom původního grafu, který se vyhýbá hranám použitým v řešení paritní matroid, je nutně strom Xuong.[6]
- Propojená nadvláda
- A propojená dominující sada v grafu je podmnožina vrcholů, jejichž indukovaný podgraf je spojeno, sousedí se všemi ostatními vrcholy. Je těžké najít nejmenší spojenou dominující množinu v libovolných grafech, ale lze ji najít v polynomiálním čase pro grafy maximálního stupně tři. kubický graf, je možné nahradit každý vrchol dráhou se dvěma okraji připojenou ke koncům jejích tří koncových bodů a formulovat problém parity matroidů na dvojicích hran generovaných tímto způsobem pomocí grafického matroidu rozšířeného grafu. Vrcholy, jejichž cesty se v řešení nepoužívají, tvoří minimální propojenou dominující množinu. V grafu maximálního stupně tři některé jednoduché další transformace snižují problém na jednu na kubickém grafu.[7]
- Sada vrcholů zpětné vazby
- A sada vrcholů zpětné vazby v grafu je podmnožina vrcholů, která se dotýká všech cyklů. V kubických grafech existuje lineární rovnice vztahující se k počtu vrcholů, cyklomatické číslo, počet připojených komponent, velikost minimální připojené dominující množiny a velikost minimální sady vrcholů zpětné vazby.[12] Z toho vyplývá, že stejný problém parity matroidů, který se používá k vyhledání propojených dominujících množin, lze také použít k vyhledání sad vrcholů zpětné vazby v grafech maximálního stupně tři.[7]
Tvrdost
The klika problém, hledání a -vrchol kompletní podgraf v daném -vrcholový graf , lze transformovat na instanci matroidní parity následovně. Vytvořte a dlažba matroid na prvky spárované tak, že na pár vrcholů je jeden pár prvků. Definujte podmnožinu nezávislost těchto prvků, pokud splňuje některou z následujících tří podmínek:
- má méně než elementy.
- má přesně prvků, ale není spojením dvojice prvků.
- je unie dvojice prvků, které tvoří kliky dovnitř .
Pak existuje řešení problému parity matroidů pro tento matroid o velikosti , právě když má velikost kliky . Vzhledem k tomu, že hledání kliků dané velikosti je NP-úplné, vyplývá z toho, že určení, zda má tento typ paritního problému matice řešení velikosti je také NP-kompletní.[13]
Tato transformace problému nezávisí na struktuře problému kliky žádným hlubokým způsobem a fungovala by pro jakýkoli jiný problém hledání velikosti - podmnožiny větší sady, které splňují vypočítatelný test. Aplikováním na náhodně permutovaný graf, který obsahuje přesně jednu velikost kliky lze ukázat, že jakýkoli deterministický nebo randomizovaný algoritmus pro paritu matroidu, který přistupuje k matroidu pouze pomocí testů nezávislosti, musí provést exponenciální počet testů.[4]
Reference
- ^ A b C d E F G h i j Cheung, Ho Yee; Lau, Lap Chi; Leung, Kai Man (2014), "Algebraické algoritmy pro problémy s paritou lineárního matroidu" (PDF), Transakce ACM na algoritmech, 10 (3): 10:1–10:26, CiteSeerX 10.1.1.194.604, doi:10.1145/2601066, PAN 3233690, S2CID 894004
- ^ A b C d Lawler, Eugene L. (1976), „Kapitola 9: Problém parity matroidů“, Kombinatorická optimalizace: Sítě a matroidy, New York: Holt, Rinehart a Winston, s. 356–367, PAN 0439106
- ^ A b C Lovász, L. (1980), "Matroid matching and some applications", Journal of Combinatorial Theory, Řada B, 28 (2): 208–236, doi:10.1016/0095-8956(80)90066-0, PAN 0572475
- ^ A b Jensen, Per M .; Korte, Bernhard (1982), "Složitost algoritmů vlastností matroidů", SIAM Journal on Computing, 11 (1): 184–190, doi:10.1137/0211014, PAN 0646772
- ^ A b Călinescu, Gruia; Fernandes, Cristina G .; Finkler, Ulrich; Karloff, Howard (1998), „Lepší aproximační algoritmus pro hledání rovinných podgrafů“, Journal of Algorithms, 27 (2): 269–302, CiteSeerX 10.1.1.47.4731, doi:10.1006 / jagm.1997.0920, PAN 1622397, S2CID 8329680.
- ^ A b Furst, Merrick L .; Gross, Jonathan L .; McGeoch, Lyle A. (1988), „Nalezení maximálního rodového grafu“, Deník ACM, 35 (3): 523–534, doi:10.1145/44483.44485, PAN 0963159, S2CID 17991210
- ^ A b C Ueno, Shuichi; Kajitani, Yoji; Gotoh, Shin'ya (1988), „On the nonseparating independent set problem and feedback set problem for graphs with no vertex degree greater than three“, Proceedings of the First Japan Conference on Graph Theory and Applications (Hakone, 1986), Diskrétní matematika, 72 (1–3): 355–360, doi:10.1016 / 0012-365X (88) 90226-9, PAN 0975556
- ^ A b Lee, Jon; Sviridenko, Maxim; Vondrák, Jan (2013), „Matroid matching: the power of local search“, SIAM Journal on Computing, 42 (1): 357–379, CiteSeerX 10.1.1.600.4878, doi:10.1137 / 11083232X, PAN 3033132
- ^ Le Gall, François (2014), „Powers of tensors and fast matrix multiplication“, Sborník 39. mezinárodního sympozia o symbolických a algebraických výpočtech (ISSAC 2014), New York: ACM, s. 296–303, doi:10.1145/2608628.2608664, ISBN 9781450325011, PAN 3239939, S2CID 2597483
- ^ Geelen, James; Iwata, Satoru (2005), „Matroid shoda pomocí smíšených zkosených symetrických matic“, Combinatorica, 25 (2): 187–215, CiteSeerX 10.1.1.702.5431, doi:10.1007 / s00493-005-0013-7, PAN 2127610, S2CID 18576135
- ^ Gabow, Harold N .; Stallmann, Matthias (1985), „Efektivní algoritmy pro grafický průnik a paritu matroidů (rozšířený abstrakt)“, Brauer, Wilfried (ed.), 12. mezinárodní kolokvium o automatech, jazycích a programování (ICALP), Nafplion, Řecko, 15. – 19. Července 1985, Přednášky v informatice, 194, Berlín: Springer, s. 210–220, doi:10.1007 / BFb0015746, ISBN 978-3-540-15650-5, PAN 0819256
- ^ Speckenmeyer, E. (1986), "Hranice na zpětnovazebních vertexových souborech neorientovaných kubických grafů", Algebra, kombinatorika a logika v informatice, sv. I, II (Győr, 1983), Colloquia Mathematica Societatis János Bolyai, 42, Amsterdam: Severní Holandsko, s. 719–729, PAN 0875903
- ^ Soto, José A. (2014), „Jednoduchý PTAS pro porovnávání vážených matroidů na silně objednatelných matroidech“, Diskrétní aplikovaná matematika, 164 (část 2): 406–412, arXiv:1102.3491, doi:10.1016 / j.dam.2012.10.019, PAN 3159127