Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized

ʻO ka hana noiʻi paha ka mea hoihoi loa o kā mākou aʻo ʻana. ʻO ka manaʻo e hoʻāʻo iā ʻoe iho ma kāu ʻaoʻao i koho ʻia ʻoiai ʻoe ma ke kulanui. No ka laʻana, hele pinepine nā haumāna mai nā wahi o Software Engineering a me Machine Learning e hana i ka noiʻi ʻana i nā hui (ʻo JetBrains a i ʻole Yandex, akā ʻaʻole wale).

Ma kēia ʻatikala e kamaʻilio wau e pili ana i kaʻu papahana ma Computer Science. Ma ke ʻano he ʻāpana o kaʻu hana, ua aʻo wau a hoʻomaʻamaʻa i nā ala e hoʻoponopono ai i kekahi o nā pilikia NP-paʻakikī kaulana loa: pilikia uhi piko.

I kēia mau lā, ke ulu wikiwiki nei kahi ala hoihoi i nā pilikia NP-paʻakikī - parameterized algorithms. E hoʻāʻo wau e hoʻolalelale iā ʻoe, e haʻi iā ʻoe i kekahi mau algorithm parameterized maʻalahi a wehewehe i kahi ala ikaika i kōkua nui iaʻu. Ua hōʻike au i kaʻu hopena ma ka hoʻokūkū PACE Challenge: e like me nā hopena o nā hoʻāʻo hāmama, loaʻa kaʻu hopena i ke kolu o ka wahi, a e ʻike ʻia nā hopena hope ma Iulai 1.

Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized

Noʻu

ʻO Vasily Alferov koʻu inoa, ke hoʻopau nei au i koʻu makahiki ʻekolu ma ke kula kiʻekiʻe o ka National Research University of Economics - St. Petersburg. Ua hoihoi au i nā algorithms mai koʻu mau lā kula, i koʻu aʻo ʻana ma ke kula ʻo Moscow No. 179 a ua komo maikaʻi i nā Olympiads ʻepekema kamepiula.

Hoʻokomo ka helu palena o nā loea i nā algorithm parameterized i ka pā ...

Laʻana i lawe ʻia mai ka puke "Nā algorithm i hoʻohālikelike ʻia"

E noʻonoʻo ʻoe he kiaʻi kiaʻi bar ma kahi kūlanakauhale liʻiliʻi. I kēlā me kēia Pōʻalima, hele mai ka hapalua o ke kūlanakauhale i kāu pā e hoʻomaha ai, e hāʻawi iā ʻoe i ka pilikia nui: pono ʻoe e hoʻolei i nā mea kūʻai aku i waho o ka pā e pale i nā hakakā. ʻO ka hopena, māʻona ʻoe a hoʻoholo e hana i nā hana pale.

No ka mea liʻiliʻi kou kūlanakauhale, ʻike maopopo ʻoe i nā mea pāʻani e hakakā inā pau lākou i kahi pā. Loaʻa iā ʻoe kahi papa inoa o n ka poʻe e hele mai i ka pā i kēia pō. Hoʻoholo ʻoe e mālama i kekahi poʻe kaona ma waho o ka pā me ka loaʻa ʻole o kekahi e hakakā. I ka manawa like, ʻaʻole makemake kou mau luna e nalowale i ka loaʻa kālā a hauʻoli ʻole inā ʻaʻole ʻoe e ʻae k nā kānaka.

ʻO ka mea pōʻino, ʻo ka pilikia ma mua ou he pilikia NP-paʻakikī maʻamau. ʻIke paha ʻoe iā ia Ka uhi o Vertex, a i ʻole ma ke ʻano he vertex uhi pilikia. No ia mau pilikia, ma ka hihia maʻamau, ʻaʻohe algorithms e hana i kahi manawa kūpono. ʻO ka pololei, ʻo ke kuhiakau unproven a ikaika loa ʻo ETH (Exponential Time Hypothesis) e ʻōlelo nei ʻaʻole hiki ke hoʻopau ʻia kēia pilikia i ka manawa. Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized, ʻo ia hoʻi, ʻaʻole hiki iā ʻoe ke noʻonoʻo i kekahi mea ʻoi aku ka maikaʻi ma mua o kahi hulina piha. Eia kekahi laʻana, e ʻōlelo kākou e hele mai ana kekahi i kāu pā n = 1000 Kanaka. A laila ka huli piha Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized nā koho i loaʻa ma kahi o Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized - ka nui pupule. ʻO ka mea pōmaikaʻi, ua hāʻawi ka hoʻokele iā ʻoe i kahi palena k = 10, no laila ʻoi aku ka liʻiliʻi o ka helu o nā hui e pono ai ʻoe e hoʻololi: ʻo ka helu o nā ʻāpana o nā mea he ʻumi. Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized. ʻOi aku ka maikaʻi o kēia, akā ʻaʻole naʻe e helu ʻia i hoʻokahi lā ma kahi puʻupuʻu ikaika.
Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized
No ka hoʻopau ʻana i ka hiki ke hakakā i kēia hoʻonohonoho o nā pilina pili i waena o nā malihini kipa, pono ʻoe e mālama iā Bob, Daniel a me Fedor. ʻAʻohe hopena e waiho ʻia ʻelua wale nō.

ʻO kēia ke ʻano o ka manawa e hāʻawi a hoʻokuʻu i nā mea a pau? E noʻonoʻo kākou i nā koho ʻē aʻe. ʻAe, no ka laʻana, ʻaʻole hiki iā ʻoe ke hoʻokuʻu wale i ka poʻe e hakakā me ka nui o ka poʻe. Inā hiki i kekahi ke hakakā ma ka liʻiliʻi me k+1 kekahi kanaka, a laila ʻaʻole hiki iā ʻoe ke hoʻokuʻu iā ia i loko - inā ʻaʻole pono ʻoe e hoʻokuʻu i nā mea āpau k+1 ka poʻe o ke kūlanakauhale, hiki iā ia ke hakakā, ʻo ia ka mea e hoʻonāukiuki i ke alakaʻi.

Hiki iā ʻoe ke hoʻolei aku i nā mea a pau āu e hiki ai e like me kēia kumu. A laila hiki i nā mea ʻē aʻe ke hakakā me ka mea ʻole k kanaka. Kiola iā lākou i waho k kanaka, hiki iā ʻoe ke pale i kekahi mea ʻē aʻe ma mua o Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized paio. ʻO ia hoʻi inā ʻoi aku ka nui ma mua o Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized Inā pili kekahi kanaka i hoʻokahi hakakā, a laila ʻaʻole hiki iā ʻoe ke pale iā lākou a pau. No ka mea, ʻoiaʻiʻo, e hoʻokuʻu maoli ʻoe i ka poʻe hakakā ʻole, pono ʻoe e hele i nā ʻāpana āpau o ka nui he ʻumi mai loko o ʻelua haneli mau kānaka. Aia ma kahi o Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized, a hiki ke hoʻokaʻawale ʻia kēia helu o nā hana ma ka pūʻulu.

Inā hiki iā ʻoe ke lawe palekana i ka poʻe i hakakā ʻole, a laila pehea ka poʻe i komo i hoʻokahi hakakā? ʻO kaʻoiaʻiʻo, hiki iā lākou ke hoʻokuʻu ʻia ma ka pani ʻana i ka puka ma ko lākou hoa paio. ʻOiaʻiʻo, inā kūʻē ʻo Alice me Bob wale nō, a laila inā e hoʻokuʻu mākou iā Alice i waho o lāua ʻelua, ʻaʻole mākou e nalowale: Loaʻa paha iā Bob nā paio ʻē aʻe, akā ʻaʻole loaʻa iā Alice. Eia kekahi, ʻaʻohe kumu o kāua e hoʻokuʻu ʻole iā kāua i loko. Ma hope o ia mau hana ʻaʻohe koe Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized nā malihini me kahi hopena i hoʻoholo ʻole ʻia: loaʻa iā mākou wale nō Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized nā paio, ʻo kēlā me kēia me ʻelua mau mea komo a me kēlā me kēia i komo i loko o ʻelua liʻiliʻi. No laila, ʻo ka hoʻoponopono wale ʻana Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized nā koho, hiki ke noʻonoʻo maʻalahi i ka hapalua lā ma kahi kamepiula.

ʻOiaʻiʻo, me ka noʻonoʻo maʻalahi hiki iā ʻoe ke hoʻokō i nā kūlana hoihoi. E hoʻomaopopo he pono mākou e hoʻoholo i nā hoʻopaʻapaʻa a pau, ʻo ia hoʻi, mai kēlā me kēia hui hakakā, koho i hoʻokahi kanaka a mākou e hoʻokuʻu ʻole ai. E noʻonoʻo kākou i kēia algorithm: e lawe i kekahi paio, kahi e wehe ai mākou i kahi mea komo a hoʻomaka hou mai ke koena, a laila wehe i kekahi a hoʻomaka hou. No ka mea, kiola mākou i kekahi i kēlā me kēia pae, ʻo ka lāʻau recursion o ia algorithm he kumu lāʻau hohonu k, no laila i ka huina holoʻokoʻa e hana ana ka algorithm Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterizedkahi n ka heluna o na piko, a m - ka helu o nā iwi ʻaoʻao. I kā mākou hiʻohiʻona, aia kēia ma kahi o ʻumi miliona, hiki ke helu ʻia i loko o ka lua kekona ʻaʻole wale ma ke kamepiula, akā ma ke kelepona paʻa.

He laʻana ka laʻana ma luna algorithmized parameterized. ʻO nā algorithms parameterized nā algorithms e holo i ka manawa f(k) poli(n)kahi p - polinomial, f he hana helu arbitrary, a k - kekahi ʻāpana, ʻoi aku ka liʻiliʻi ma mua o ka nui o ka pilikia.

ʻO nā kumu a pau ma mua o kēia algorithm e hāʻawi i kahi laʻana ka hoʻopaʻa ʻana ʻo ia kekahi o nā ʻenehana maʻamau no ka hana ʻana i nā algorithm parameterized. ʻO ka Kernelization ka hōʻemi ʻana o ka nui pilikia i kahi waiwai i kaupalena ʻia e kahi hana o kahi ʻāpana. ʻO ka hopena o ka pilikia i kapa pinepine ʻia he kernel. No laila, ma ka noʻonoʻo maʻalahi e pili ana i nā degere o nā vertex, ua loaʻa iā mākou kahi kernel quadratic no ka pilikia Vertex Cover, i hoʻohālikelike ʻia e ka nui o ka pane. Aia kekahi mau hoʻonohonoho ʻē aʻe āu e koho ai no kēia hana (e like me Vertex Cover Above LP), akā ʻo kēia ka hoʻonohonoho a mākou e kūkākūkā ai.

Pace Challenge

Hoʻokūkū PACE Luʻi (The Parameterized Algorithms and Computational Experiments Challenge) i hānau ʻia ma 2015 e hoʻokumu i kahi pilina ma waena o nā algorithms parameterized a me nā ala i hoʻohana ʻia i ka hoʻomaʻamaʻa e hoʻoponopono i nā pilikia helu. ʻO nā hoʻokūkū mua ʻekolu i hoʻolaʻa ʻia i ka ʻimi ʻana i ka laulā kumulāʻau o kahi pakuhi (Laau Laau), e ʻimi ana i kahi lāʻau Steiner (Laau Steiner) a me ka ʻimi ʻana i kahi pūʻulu o nā vertices e ʻoki i nā pōʻai (Manaʻo Vertex Set). I kēia makahiki, ʻo kekahi o nā pilikia e hiki ai iā ʻoe ke hoʻāʻo i kou lima, ʻo ia ka pilikia uhi vertex i hōʻike ʻia ma luna.

Ke kaulana nei ka hoʻokūkū i kēlā me kēia makahiki. Inā manaʻoʻiʻo ʻoe i ka ʻikepili mua, i kēia makahiki 24 mau hui i komo i ka hoʻokūkū e hoʻoponopono i ka pilikia uhi uhi wale nō. He mea pono e hoʻomaopopo i ka hoʻokūkū ʻaʻole mau hola a i ʻole he pule, akā he mau mahina. Loaʻa i nā hui ka manawa e aʻo ai i ka palapala, e hoʻopuka i ko lākou manaʻo kumu a hoʻāʻo e hoʻokō. ʻO ka mea nui, he papahana noiʻi kēia hoʻokūkū. E mālama ʻia nā manaʻo no ka hoʻonā maikaʻi loa a me ka hāʻawi ʻana i ka poʻe lanakila me ka ʻaha kūkā IPEC (International Symposium on Parameterized and Exact Computation) ma ke ʻano o ka hālāwai algorithmic makahiki nui loa ma ʻEulopa ALGO. Hiki ke loaʻa nā ʻike kikoʻī hou aku e pili ana i ka hoʻokūkū ponoʻī ma kahua pūnaewele, a ke waiho nei nā hopena o nā makahiki i hala maanei.

Kiʻi hoʻonā

No ka hoʻoponopono ʻana i ka pilikia uhi vertex, ua hoʻāʻo wau e hoʻohana i nā algorithms parameterized. Loaʻa iā lākou ʻelua mau ʻāpana: nā lula hoʻomaʻamaʻa (e alakaʻi pono i ka kernelization) a me nā lula hoʻokaʻawale. ʻO nā lula hoʻomaʻemaʻe ke hana mua i ka hoʻokomo i ka manawa polynomial. ʻO ke kumu o ka hoʻohana ʻana i ia mau lula e hoʻemi i ka pilikia i kahi pilikia liʻiliʻi like. ʻO nā lula hoʻomaʻamaʻa ka hapa nui loa o ka algorithm, a ʻo ka hoʻohana ʻana i kēia ʻāpana e alakaʻi i ka manawa holo holoʻokoʻa Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized ma kahi o ka manawa polynomial maʻalahi. I kā mākou hihia, hoʻokumu ʻia nā lula hoʻokaʻawale i ka ʻoiaʻiʻo no kēlā me kēia vertex pono ʻoe e lawe iā ia a i ʻole kona hoalauna i pane.

ʻO ka papahana maʻamau kēia: hoʻohana mākou i nā lula maʻalahi, a laila koho mākou i kekahi vertex, a hana i ʻelua mau kelepona recursive: i ka mua lawe mākou i ka pane, a i kekahi lawe mākou i nā hoalauna āpau. ʻO kēia ka mea a mākou i kapa ai he māhele (branching) ma kēia uka.

Hoʻokahi kikoʻī e hoʻohui ʻia i kēia papahana ma ka paukū aʻe.

Nā manaʻo no ka wehe ʻana (brunching) lula

E kūkākūkā kākou pehea e koho ai i kahi vertex kahi e hoʻokaʻawale ai.
ʻO ka manaʻo nui ka manaʻo i ka manaʻo algorithmic: e lawe i kahi vertex o ke degere kiʻekiʻe loa a hoʻokaʻawale iā ia. No ke aha i ʻoi aku ka maikaʻi? No ka mea ma ka lālā ʻelua o ke kelepona recursive e wehe mākou i ka nui o nā vertices ma kēia ala. Hiki iā ʻoe ke helu i kahi pakuhi liʻiliʻi i koe a hiki iā mākou ke hana wikiwiki.

ʻO kēia ala, me nā ʻenehana kernelization maʻalahi i kūkākūkā ʻia, hōʻike maikaʻi iā ia iho a hoʻonā i kekahi mau hoʻokolohua o nā kaukani vertices i ka nui. Akā, no ka laʻana, ʻaʻole ia e hana maikaʻi no nā kiʻi cubic (ʻo ia hoʻi, nā pakuhi nona ke degere o kēlā me kēia vertex he ʻekolu).
Aia kekahi manaʻo e pili ana i kahi manaʻo maʻalahi: inā ʻoki ʻia ka pakuhi, hiki ke hoʻoponopono kūʻokoʻa ka pilikia ma kāna mau mea pili, me ka hoʻohui ʻana i nā pane ma ka hopena. ʻO kēia, ma ke ala, he hoʻololi liʻiliʻi i hoʻohiki ʻia i ka hoʻolālā, e wikiwiki loa i ka hopena: ma mua, i kēia hihia, ua hana mākou no ka huahana o nā manawa no ka helu ʻana i nā pane o nā ʻāpana, akā i kēia manawa hana mākou no ka ka huina. A no ka wikiwiki ʻana i ka lālā, pono ʻoe e hoʻohuli i kahi pakuhi pili i kahi ʻoki ʻole.

Pehea e hana ai? Inā loaʻa kahi kiko kikoʻī ma ka pakuhi, pono ʻoe e hakakā ma laila. ʻO kahi kiko kikoʻī he vertex e like me ka wā i wehe ʻia, nalowale ka pilina o ka pakuhi. Hiki ke loaʻa nā helu hui āpau ma ka pakuhi me ka hoʻohana ʻana i kahi algorithm maʻamau i ka manawa laina. Hoʻoikaika nui kēia ala i ka lālā.
Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized
Ke wehe ʻia kekahi o nā piko i koho ʻia, e māhele ʻia ka pakuhi i nā ʻāpana pili.

E hana mākou i kēia, akā makemake mākou i nā mea hou aʻe. No ka laʻana, e ʻimi i nā ʻoki poʻo liʻiliʻi ma ka pakuhi a e ʻoki ʻia ma nā ʻaoʻao mai ia mea. ʻO ke ala maikaʻi loa aʻu i ʻike ai e ʻike ai i ka ʻoki ʻoki ʻoki honua liʻiliʻi ʻo ia ka hoʻohana ʻana i kahi lāʻau Gomori-Hu, i kūkulu ʻia i ka manawa cubic. Ma ka PACE Challenge, ʻo ka nui o ka pakuhi maʻamau he mau tausani vertices. I kēia kūlana, pono e hana ʻia nā piliona o nā hana ma kēlā me kēia vertex o ka lāʻau recursion. ʻIke ʻia he mea hiki ʻole ke hoʻoponopono i ka pilikia i ka manawa i hāʻawi ʻia.

E ho'āʻo kākou e hoʻopololei i ka hoʻonā. Hiki ke ʻike ʻia ka ʻoki liʻiliʻi liʻiliʻi ma waena o nā vertex e kekahi algorithm e kūkulu i kahi kahe kiʻekiʻe. Hiki iā ʻoe ke hoʻokuʻu iā ia ma ia pūnaewele Dinitz algorithm, ma ka hana wikiwiki loa. Manaʻo wau he hiki ke hōʻoia i kahi kuhi no ka manawa hana Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized, ua ʻae ʻia.

Ua ho'āʻo au i nā manawa he nui e ʻimi i nā ʻoki ma waena o nā ʻelua o nā vertices maʻamau a lawe i ka mea kaulike loa. ʻO ka mea pōʻino, ua hoʻopuka kēia i nā hopena maikaʻi ʻole i ka hoʻāʻo ʻana i ka PACE Challenge. Ua hoʻohālikelike au me kahi algorithm e hoʻokaʻawale i nā vertices o ka pae kiʻekiʻe, e holo ana iā lākou me ka palena o ka hohonu o ka iho. ʻO kahi algorithm e hoʻāʻo nei e ʻimi i kahi ʻoki ma kēia ala i waiho ʻia ma hope o nā kiʻi nui. ʻO kēia ma muli o ke ʻano o ka ʻoki ʻana i ke kaulike ʻole: i ka wehe ʻana i 5-10 vertices, hiki ke hoʻokaʻawale i ka 15-20 wale nō.

He mea pono e hoʻomaopopo i nā ʻatikala e pili ana i nā algorithms theoretically wikiwiki loa e hoʻohana i nā ʻenehana ʻoi aku ka holomua no ke koho ʻana i nā vertices no ka hoʻokaʻawale. He paʻakikī loa ka hoʻokō ʻana o ia ʻano hana a maikaʻi ʻole ka hana ma ke ʻano o ka manawa a me ka hoʻomanaʻo. ʻAʻole hiki iaʻu ke ʻike i nā mea i ʻae ʻia no ka hoʻomaʻamaʻa.

Pehea e kau ai i nā lula hoʻomaʻamaʻa

Loaʻa iā mākou nā manaʻo no ka kernelization. E hoʻomanaʻo wau iā ʻoe:

  1. Inā loaʻa kahi vertex kaʻawale, e holoi iā ia.
  2. Inā loaʻa ka piko o ka degere 1, e wehe a lawe i kona hoalauna i pane.
  3. Inā loaʻa kahi vertex o degere ma ka liʻiliʻi loa k+1, lawe hou.

Me nā mea mua ʻelua ua maopopo nā mea a pau, me ke kolu hoʻokahi hoʻopunipuni. Inā i loko o kahi pilikia comic e pili ana i kahi pā ua hāʻawi ʻia mākou i kahi palena kiʻekiʻe o k, a laila ma ka PACE Challenge pono ʻoe e ʻimi i kahi uhi vertex o ka liʻiliʻi loa. He hoʻololi maʻamau kēia o nā pilikia huli i nā pilikia hoʻoholo; pinepine ʻaʻohe ʻokoʻa ma waena o nā ʻano pilikia ʻelua. I ka hoʻomaʻamaʻa ʻana, inā mākou e kākau nei i kahi mea hoʻoponopono no ka vertex uhi pilikia, aia paha ka ʻokoʻa. Eia kekahi laʻana, e like me ke kolu o ka helu.

Mai ka manaʻo hoʻokō, ʻelua ala e hoʻomau ai. ʻO ke ala mua i kapa ʻia ʻo Iterative Deepening. Penei: hiki iā mākou ke hoʻomaka me kekahi kaohi kūpono mai lalo i ka pane, a laila e holo i kā mākou algorithm me ka hoʻohana ʻana i kēia kaohi ma ke ʻano he kaohi i ka pane mai luna mai, me ka hele ʻole i lalo i ka recursion ma mua o kēia kaohi. Inā loaʻa iā mākou kekahi pane, ua hōʻoia ʻia ʻo ia ka maikaʻi loa, inā ʻaʻole hiki iā mākou ke hoʻonui i kēia palena i hoʻokahi a hoʻomaka hou.

ʻO kekahi ala ʻē aʻe, ʻo ia ka mālama ʻana i kahi pane maikaʻi loa o kēia manawa a nānā i kahi pane liʻiliʻi, e hoʻololi i kēia ʻāpana ke loaʻa k no ka ʻoki ʻana i nā lālā pono ʻole i ka ʻimi.

Ma hope o ka hana ʻana i nā hoʻokolohua he nui i ka pō, ua hoʻoholo wau i ka hui pū ʻana o kēia mau ʻano ʻelua: ʻo ka mua, holo wau i kaʻu algorithm me kekahi ʻano palena o ka hohonu o ka ʻimi ʻana (koho ʻia i mea e lawe ʻole ʻia ka manawa i hoʻohālikelike ʻia i ka hopena nui) a hoʻohana i ka mea maikaʻi loa. loaʻa ka hopena ma ke ʻano he palena kiʻekiʻe o ka pane - ʻo ia hoʻi, i ka mea like k.

Nā piko o ka degere 2

Ua hana mākou i nā piko o ka degere 0 a me 1. ʻIke ʻia hiki ke hana i kēia me nā vertices o ke degere 2, akā pono kēia i nā hana paʻakikī mai ka pakuhi.

No ka wehewehe ʻana i kēia, pono mākou e kuhikuhi i nā vertices. E kapa kakou i ka piko o ka degere 2 he piko v, a me kona mau hoalauna - vertices x и y. A laila e loaʻa iā mākou ʻelua hihia.

  1. Inā x и y - nā hoalauna. A laila hiki iā ʻoe ke pane x и ya me ka v holoi. ʻOiaʻiʻo, pono e hoʻihoʻi ʻia mai kēia huinakolu ma lalo o ʻelua vertice, a ʻaʻole mākou e nalowale inā mākou e lawe. x и y: He mau hoalauna e ae paha ko lakou, a v ʻAʻole lākou ma ʻaneʻi.
  2. Inā x и y - ʻaʻole nā ​​hoalauna. A laila ua ʻōlelo ʻia e hiki ke hoʻopili ʻia nā vertices ʻekolu i hoʻokahi. ʻO ka manaʻo ma kēia hihia aia kahi pane maikaʻi loa, a mākou e lawe ai v, a i ʻole nā ​​piko ʻelua x и y. Eia kekahi, i ka hihia mua e lawe mākou i nā hoalauna āpau i pane x и y, aka, ma ka lua, aole pono. Ua like kēia me nā hihia inā ʻaʻole mākou e lawe i ka vertex glued i ka pane a i ka wā e hana ai mākou. Ke hoʻomau wale nei ka hoʻomaopopo ʻana ma nā hihia ʻelua e hoʻemi ʻia ka pane mai ia hana i hoʻokahi.

Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized

He mea pono e hoʻomaopopo he paʻakikī kēia ala e hoʻokō pono i ka manawa linear kūpono. ʻO ka gluing vertices kahi hana paʻakikī; pono ʻoe e kope i nā papa inoa o nā hoalauna. Inā hana ʻole kēia, hiki iā ʻoe ke hoʻopau i ka manawa holo asymptotically suboptimal (no ka laʻana, inā kope ʻoe i nā kihi he nui ma hope o kēlā me kēia gluing). Ua hoʻoholo wau i ka ʻimi ʻana i nā ala holoʻokoʻa mai nā piko o ka degere 2 a me ka nānā ʻana i kahi pūʻulu o nā hihia kūikawā, e like me nā pōʻai mai ia mau vertices a i ʻole mai kēlā mau vertices a pau koe hoʻokahi.

Eia kekahi, pono e hoʻohuli ʻia kēia hana, i ka wā e hoʻi mai ai i ka recursion e hoʻihoʻi mākou i ka pakuhi i kona ʻano kumu. No ka hōʻoia ʻana i kēia, ʻaʻole au i holoi i ka papa inoa o nā ʻaoʻao i hoʻohui ʻia, a laila ʻike wau i nā kihi e pono ai e hele i kahi. Pono kēia hoʻokō ʻana i nā kiʻi i ka pololei, akā hāʻawi ia i ka manawa laina kūpono. A no nā kiʻi o nā ʻumi kaukani o nā ʻaoʻao, kūpono ia i ka cache processor, e hāʻawi ana i nā pōmaikaʻi nui i ka wikiwiki.

ʻO ka laina laina

ʻO ka hope, ʻo ka ʻāpana hoihoi loa o ka kernel.

No ka hoʻomaka ʻana, e hoʻomanaʻo ʻia ma nā kiʻi bipartite hiki ke loaʻa ka uhi vertex haʻahaʻa me ka hoʻohana ʻana Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized. No ka hana ʻana i kēia, pono ʻoe e hoʻohana i ka algorithm Hopcroft-Karp i mea e ʻike ai i ka hoʻohālikelike ʻoi loa ma laila, a laila e hoʻohana i ka theorem König-Egervari.

ʻO ka manaʻo o kahi kernel linear penei: ʻo ka mua mākou e bifurcate i ka pakuhi, ʻo ia hoʻi, ma kahi o kēlā me kēia vertex v e hoʻohui i ʻelua piko Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized и Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized, a ma kahi o kēlā me kēia lihi u - v e hoʻohui i ʻelua iwi ʻaoʻao Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized и Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized. He bipartite ka hopena o ka pakuhi. E ʻimi kākou i ka uhi vertex liʻiliʻi i loko. E hiki i laila kekahi mau piko o ka pakuhi mua i ʻelua manawa, hoʻokahi wale nō kekahi, a ʻaʻole loa kekahi. Ua ʻōlelo ka Nemhauser-Trotter theorem i kēia hihia, hiki i kekahi ke wehe i nā vertices ʻaʻole i pā hoʻokahi a hoʻihoʻi i nā mea i pā ʻelua. Eia kekahi, ʻōlelo ʻo ia ʻo ke koena vertices (nā mea i paʻi i hoʻokahi manawa) pono ʻoe e lawe i ka hapa liʻiliʻi i pane.

Ua aʻo wale mākou e haʻalele ʻaʻole i ʻoi aku 2k nā piko ʻOiaʻiʻo, inā ʻo ka pane i koe ma ka hapa liʻiliʻi o nā vertices a pau, a laila ʻaʻole i ʻoi aku ka nui o nā vertices ma mua o 2k.

Maʻaneʻi ua hiki iaʻu ke hana i kahi ala liʻiliʻi i mua. ʻIke ʻia ʻo ka kernel i kūkulu ʻia ma kēia ala e pili ana i ke ʻano o ka uhi vertex liʻiliʻi a mākou i lawe ai i ka pakuhi bipartite. Makemake au e lawe i hoʻokahi i mea liʻiliʻi ka helu o nā vertices i koe. Ma mua, hiki iā lākou ke hana i kēia wale nō i ka manawa Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized. Ua hele mai au me kahi hoʻokō o kēia algorithm i ka manawa Pehea e hoʻoponopono ai i nā pilikia NP-paʻakikī me nā Algorithms Parameterized, no laila, hiki ke ʻimi ʻia kēia kumu ma nā kiʻi o nā haneli haneli o nā vertices i kēlā me kēia pae lālā.

hopena

Hōʻike ka hoʻomaʻamaʻa e hana maikaʻi kaʻu hopena i nā hoʻāʻo o nā haneli he nui a me nā ʻaoʻao he mau tausani. Ma ia mau hoʻāʻo ʻana hiki ke manaʻo e loaʻa kahi hopena i ka hapalua hola. ʻO ka hiki ke loaʻa ka pane i ka manawa kūpono, ma ke kumu, e piʻi aʻe inā he nui nā vertices o ke degere kiʻekiʻe i ka pakuhi, no ka laʻana, degere 10 a ʻoi aʻe.

No ke komo ʻana i ka hoʻokūkū, pono e hoʻouna ʻia nā hoʻonā optil.io. Ke hoʻoholo nei i ka ʻike i hōʻike ʻia ma laila hōʻailona, ʻo kaʻu hoʻonā i nā hoʻāʻo hāmama ke kūlana kolu o ka iwakālua, me kahi ākea nui mai ka lua. No ka ʻoiaʻiʻo loa, ʻaʻole maopopo loa pehea e loiloi ʻia ai nā hopena i ka hoʻokūkū ponoʻī: no ka laʻana, ʻoi aku ka liʻiliʻi o kaʻu hopena i nā hoʻokolohua ma mua o ka hopena ma kahi ʻehā, akā ma nā mea i hala, ʻoi aku ka wikiwiki.

E ʻike ʻia nā hopena o nā hoʻokolohua pani ʻia ma Iulai XNUMXst.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka