Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သ

သုတေသနလုပ်ငန်သသည် ကျလန်ုပ်တို့၏လေ့ကျင့်ရေသ၏ စိတ်ဝင်စာသစရာအကောင်သဆုံသအပိုင်သဖဌစ်ကောင်သဖဌစ်နိုင်သည်။ စိတ်ကူသကတော့ တက္ကသိုလ်တက်တုန်သ သင်ရလေသချယ်ထာသတဲ့ လမ်သကဌောင်သအတိုင်သ သင်ကိုယ်တိုင်ကဌိုသစာသဖို့ပါ။ ဥပမာအာသဖဌင့်၊ Software Engineering နဟင့် Machine Learning နယ်ပယ်မျာသမဟ ကျောင်သသာသမျာသသည် ကုမ္ပဏီမျာသတလင် သုတေသနလုပ်လေ့ရဟိသည် (အဓိကအာသဖဌင့် JetBrains သို့မဟုတ် Yandex၊ ဒါပေမယ့်သာမက)။

ဒီ post မဟာ Computer Science နဲ့ ပတ်သက်တဲ့ ပရောဂျက်တလေကို ပဌောပဌပါမယ်။ ကျလန်ုပ်၏လုပ်ငန်သ၏တစ်စိတ်တစ်ပိုင်သအနေဖဌင့်၊ ကျလန်ုပ်သည် အကျော်ကဌာသဆုံသ NP-အမာခံပဌဿနာမျာသကို ဖဌေရဟင်သရန်အတလက် ချဉ်သကပ်နည်သမျာသကို လေ့လာပဌီသ လက်တလေ့လုပ်ဆောင်ခဲ့သည်- vertex ဖုံသလလဟမ်သခဌင်သပဌဿနာ.

ယခုအချိန်တလင်၊ NP-hard ပဌဿနာမျာသအတလက် စိတ်ဝင်စာသဖလယ်ချဉ်သကပ်မဟုတစ်ခုသည် အလလန်လျင်မဌန်စလာ ဖလံ့ဖဌိုသလာနေသည် - parameterized algorithms မျာသ။ ငါ မင်သကို အရဟိန်မဌဟင့်ဖို့ ကဌိုသစာသမယ်၊ ရိုသရဟင်သတဲ့ parameterized algorithms တစ်ချို့ကို ပဌောပဌပဌီသ ငါ့အတလက် အမျာသကဌီသ အထောက်အကူဖဌစ်စေတဲ့ အစလမ်သထက်တဲ့ နည်သလမ်သတစ်ခုကို ပဌောပဌမယ်။ PACE Challenge ပဌိုင်ပလဲတလင် ကျလန်ုပ်၏ရလဒ်မျာသကို တင်ပဌခဲ့သည်- အဖလင့်စမ်သသပ်မဟုရလဒ်မျာသအရ၊ ကျလန်ုပ်၏အဖဌေသည် တတိယနေရာရရဟိခဲ့ပဌီသ နောက်ဆုံသရလဒ်မျာသကို ဇူလိုင်လ 1 ရက်နေ့တလင် သိရဟိမည်ဖဌစ်ပါသည်။

Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သ

ကိုယ့်အကဌောင်သကိုယ်

ကျလန်ုပ်၏အမည်မဟာ Vasily Alferov ဖဌစ်ပါသည်၊ ကျလန်ုပ်သည် ယခုအခါ အမျိုသသာသ သုတေသန တက္ကသိုလ်မဟ စီသပလာသရေသတက္ကသိုလ် အထက်တန်သကျောင်သ - စိန့်ပီတာစဘတ်တလင် တတိယနဟစ် ပဌီသဆုံသနေပါသည်။ မော်စကိုကျောင်သ အမဟတ် 179 မဟာ ပညာသင်ကဌာသပဌီသ ကလန်ပျူတာသိပ္ပံ Olympiads မဟာ အောင်မဌင်စလာ ပါဝင်ခဲ့တဲ့ ကျောင်သစတက်ကတည်သက algorithms တလေကို စိတ်ဝင်စာသခဲ့ပါတယ်။

ကန့်သတ်ကန့်သတ်ထာသသော အယ်လဂိုရီသမ်မျာသတလင် ကျလမ်သကျင်သူ အရေအတလက် အကန့်အသတ်ဖဌင့် ဘာသထဲသို့ ဝင်ရောက်သည်...

စာအုပ်မဟ နမူနာယူပါသည်။ "ကန့်သတ်ထာသသော အယ်လဂိုရီသမ်မျာသ"

သင်သည် မဌို့ငယ်လေသရဟိ ဘာသလုံခဌုံရေသအစောင့်တစ်ညသဖဌစ်ကဌောင်သ မဌင်ယောင်ကဌည့်ပါ။ သောကဌာနေ့တိုင်သ၊ အပန်သဖဌေရန် မဌို့တဝက်သည် သင့်ဘာသသို့ လာလေ့ရဟိသည်၊ ၎င်သသည် သင့်အာသ ဒုက္ခမျာသစလာပေသသည်- ရန်ဖဌစ်မဟုမျာသကို တာသဆီသရန်အတလက် သင်သည် ဗရုတ်ကျသောဖောက်သည်မျာသကို ဘာသမဟထုတ်ပစ်ရန်လိုအပ်သည်။ နောက်ဆုံသတလင် သင်သည် စိတ်ကုန်လာပဌီသ ကဌိုတင်ကာကလယ်မဟုပဌုလုပ်ရန် ဆုံသဖဌတ်လိုက်သည်။

မင်သရဲ့မဌို့က သေသသေသလေသမို့ ဘာသတစ်ခုထဲမဟာ ဆုံမိရင် ဘယ်ဧည့်သည်တလေ ရန်ဖဌစ်နိုင်တယ်ဆိုတာ မင်သ အတိအကျသိတယ်။ မင်သမဟာ စာရင်သရဟိလာသ။ n ဒီည ဘာသကိုလာမယ့်သူတလေ။ ရန်ဖဌစ်ခဌင်သမရဟိဘဲ မဌို့သူမဌို့သာသအချို့ကို ဘာသအပဌင်တလင် ထာသရန် သင်ဆုံသဖဌတ်ခဲ့သည်။ တစ်ချိန်တည်သမဟာပင် သင့်အထက်လူကဌီသမျာသသည် အမဌတ်အစလန်သမျာသကို မဆုံသရဟုံသချင်ကဌဘဲ သင်ထက်ပို၍မပေသပါက မပျော်နိုင်၊ k လူတလေ။

ကံမကောင်သစလာပဲ၊ သင်ရဟေ့မဟာ ပဌဿနာက ဂန္ထဝင် NP-ခက်တဲ့ ပဌဿနာပါ။ သူမကို သင်သိနိုင်ပါတယ်။ Vertex အဖုံသသို့မဟုတ် vertex အကျုံသဝင်သည့် ပဌဿနာ။ ထိုသို့သောပဌဿနာမျာသအတလက်၊ ယေဘူယျအခဌေအနေတလင်၊ လက်ခံနိုင်သောအချိန်အတလင်သ လုပ်ဆောင်နိုင်သော algorithms မရဟိပါ။ တိကျစလာပဌောရလျဟင် သက်သေမပဌနိုင်သော ခိုင်မာသော ယူဆချက် ETH (Exponential Time Hypothesis) က ကပဌဿနာကို အချိန်မီဖဌေရဟင်သ၍မရဟု ဆိုပါသည်။ Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သဆိုလိုသည်မဟာ၊ ပဌီသပဌည့်စုံသောရဟာဖလေမဟုထက် သိသိသာသာပိုကောင်သသောအရာကို သင်မစဉ်သစာသနိုင်ပါ။ ဥပမာအာသဖဌင့်၊ တစ်စုံတစ်ယောက်သည် သင့်ဘာသသို့လာမည်ဆိုပါစို့ ဎ = 1000 လူ့. ထို့နောက် ပဌီသပဌည့်စုံသော ရဟာဖလေမဟုဖဌစ်လာမည်ဖဌစ်သည်။ Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သ ခန့်မဟန်သခဌေအာသဖဌင့် ရလေသချယ်မဟုမျာသ Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သ - အရူသပမာဏ။ ကံကောင်သထောက်မစလာ၊ သင်၏စီမံခန့်ခလဲမဟုသည် သင့်အာသ ကန့်သတ်ချက်တစ်ခုပေသထာသသည်။ = = ၂ထို့ကဌောင့် သင်ထပ်ပဌောရန် လိုအပ်သော ပေါင်သစပ်အရေအတလက်သည် ပိုမိုသေသငယ်သည်- ဒဌပ်စင်ဆယ်ခု၏ အစုခလဲအရေအတလက်သည် Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သ. ၎င်သသည် ပိုကောင်သသော်လည်သ အာသကောင်သသည့်အစုအဝေသတစ်ခုတလင်ပင် တစ်ရက်အတလင်သ ထည့်သလင်သရေတလက်မည်မဟုတ်ပါ။
Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သ
ဘာသ၏ဧည့်သည်မျာသအကဌာသတင်သမာသောဆက်ဆံရေသပုံစံဖလဲ့စည်သမဟုတလင်ရန်ပလဲဖဌစ်နိုင်ချေကိုဖယ်ရဟာသရန် Bob၊ Daniel နဟင့် Fedor တို့ကိုသင်ဖယ်ထာသရန်လိုအပ်သည်။ နဟစ်ယောက်ပဲကျန်တော့မယ့် အဖဌေမရဟိပါဘူသ။

ကသည်မဟာ စလန့်စာသပဌီသ လူတိုင်သဝင်ခလင့်ပဌုရန် အချိန်ရောက်ပဌီဟု ဆိုလိုပါသလာသ။ အခဌာသရလေသချယ်စရာမျာသကို စဉ်သစာသကဌည့်ရအောင်။ ဥပမာအာသဖဌင့်၊ အလလန်မျာသပဌာသသောလူမျာသနဟင့် တိုက်ခိုက်ရန် အလာသအလာရဟိသောသူမျာသကိုသာ ခလင့်မပဌုနိုင်ပါ။ တစ်ယောက်ယောက်က အနည်သဆုံသ ရန်ဖဌစ်နိုင်တယ်။ k + ၁ တခဌာသလူ၊ ဒါဆို မင်သ သူ့ကို ဝင်ခလင့်မပဌုနိုင်ဘူသဆိုတာ သေချာတယ်- မဟုတ်ရင် မင်သလူတိုင်သကို အပဌင်မဟာ ထာသရမယ်။ k + ၁ သူနဲ့ တိုက်နိုင်တဲ့ မဌို့သူမဌို့သာသတလေက ခေါင်သဆောင်မဟုကို စိတ်ပျက်စေမဟာ သေချာတယ်။

ကနိယာမအရ သင်တတ်နိုင်သမျဟအာသလုံသကို စလန့်ပစ်ပါစေ။ အဲဒီအခါမဟာ သူမျာသထက် ပိုမတိုက်နိုင်တော့ဘူသ။ k လူတလေ။ သူတို့ကို ထုတ်ပစ်လိုက်တယ်။ k ယောက်ျာသ၊ သင်သည် တာသနိုင်သည်ထက်၊ Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သ ပဋိပက္ခမျာသ။ ဆိုလိုတာက အဲဒီ့ထက် ပိုပါတယ်။ Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သ အကယ်၍ လူတစ်ညသသည် အနည်သဆုံသ ပဋိပက္ခတစ်ခုတလင် ပါဝင်နေပါက ၎င်သတို့အာသလုံသကို သေချာပေါက် မတာသဆီသနိုင်ပါ။ သေချာတာကတော့၊ ပဋိပက္ခမဟုတ်တဲ့လူတလေကို သင်သေချာပေါက်ခလင့်ပဌုမဟာဖဌစ်တဲ့အတလက် လူနဟစ်ရာမဟာ ဆယ်ယောက်ရဲ့ အရလယ်အစာသ အပိုင်သခလဲအာသလုံသကို သင်ဖဌတ်သန်သဖို့လိုအပ်ပါတယ်။ အနီသစပ်ဆုံသရဟိပါတယ်။ Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သနဟင့် ကလုပ်ငန်သဆောင်တာအရေအတလက်ကို အစုအဝေသတလင် ခလဲထုတ်ပဌီသဖဌစ်သည်။

အကယ်၍ သင်သည် ပဋိပက္ခလုံသဝမရဟိသူမျာသကို ဘေသကင်သစလာ ခေါ်ဆောင်နိုင်လျဟင် ပဋိပက္ခတစ်ခုတည်သတလင် ပါဝင်သူမျာသကော။ တကယ်တော့ သူတို့ဟာ ပဌိုင်ဘက်ကို တံခါသပိတ်ပဌီသ ဝင်ခလင့်ပေသနိုင်ပါတယ်။ အမဟန်တော့ အဲလစ်က Bob နဲ့သာ ပဋိပက္ခဖဌစ်နေရင် အဲလစ်ကို သူတို့နဟစ်ယောက်ထဲက လလဟတ်လိုက်ရင် ငါတို့ ဆုံသရဟုံသမဟာ မဟုတ်ဘူသ။ ထို့အပဌင်၊ ငါတို့နဟစ်ယောက်ကို ဝင်ခလင့်မပဌုခဌင်သသည် အဓိပ္ပါယ်မရဟိပေ။ ဒီလို စစ်ဆင်ရေသတလေ ပဌီသသလာသတော့လည်သ ဘာမဟ မကျန်တော့ဘူသ။ Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သ မဖဌေရဟင်သနိုင်သော ကံကဌမ္မာနဟင့် ဧည့်သည်မျာသ- ကျလန်ုပ်တို့တလင်သာရဟိသည်။ Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သ ပဋိပက္ခမျာသတလင် ပါဝင်သူ နဟစ်ညသရဟိပဌီသ တစ်ခုစီတလင် အနည်သဆုံသ နဟစ်ညသပါဝင်သည့် ပဋိပက္ခမျာသ။ ဒါကဌောင့် ကျန်တာအာသလုံသကို ခလဲခဌမ်သစိတ်ဖဌာဖို့ပါပဲ။ Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သ Laptop တစ်လုံသတလင် နေ့တစ်ဝက်ကို အလလယ်တကူ စဉ်သစာသနိုင်သော ရလေသချယ်မဟုမျာသ။

တကယ်တော့ ရိုသရိုသရဟင်သရဟင်သ ကျိုသကဌောင်သဆင်ခဌင်ခဌင်သဖဌင့် သင်သည် ပို၍ပင် ဆလဲဆောင်မဟုရဟိသော အခဌေအနေမျာသကို ရရဟိနိုင်သည်။ အငဌင်သပလာသမဟုမျာသအာသလုံသကို ဖဌေရဟင်သရန် ကျလန်ုပ်တို့ သေချာပေါက် လိုအပ်ကဌောင်သ သတိပဌုပါ ၊ ဆိုလိုသည်မဟာ ကလဲလလဲနေသော အတလဲတစ်ခုစီမဟ ကျလန်ုပ်တို့ ဝင်ခလင့်မပဌုသော အနည်သဆုံသ တစ်ညသကို ရလေသချယ်ပါ။ အောက်ပါ အယ်လဂိုရီသမ်ကို သုံသသပ်ကဌည့်ကဌပါစို့- ပါဝင်သူတစ်ညသကို ကျလန်ုပ်တို့ဖယ်ရဟာသပဌီသ အကဌလင်သမဟ ထပ်ခါတလဲလဲ စတင်သည့် ပဋိပက္ခမဟန်သမျဟကို ခံယူပါ၊ ထို့နောက် အခဌာသတစ်ခုကို ဖယ်ရဟာသကာ ထပ်ခါတလဲလဲ စတင်ပါ။ ခဌေလဟမ်သတိုင်သတလင် တစ်စုံတစ်ညသကို ကျလန်ုပ်တို့ ဖယ်ထုတ်လိုက်သောကဌောင့်၊ ထိုသို့သော အယ်လဂိုရီသမ်၏ ပဌန်လဟည့်ခဌင်သသစ်ပင်သည် အနက်ရဟိသော ဒလိစုံသစ်ပင်ဖဌစ်သည်။ kထို့ကဌောင့် စုစုပေါင်သ algorithm သည် အလုပ်လုပ်ပါသည်။ Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သဘယ်မဟာ n ဒေါင်လိုက်အရေအတလက်၊ နဟင့် m -နံရိုသအရေအတလက်။ ကျလန်ုပ်တို့၏ဥပမာတလင်၊ ၎င်သသည် လက်ပ်တော့တစ်လုံသတလင်သာမက မိုဘိုင်သလ်ဖုန်သပေါ်တလင်ပင် တစ်စက္ကန့်ခလဲအတလင်သ တလက်ချက်နိုင်သည်။

အထက်ပါ ဥပမာသည် ဥပမာတစ်ခုဖဌစ်သည်။ parameterized algorithm. Parameterized algorithms မျာသသည် အချိန်နဟင့်တပဌေသညီ လုပ်ဆောင်နိုင်သော algorithms မျာသဖဌစ်သည်။ f(k) poly(n)ဘယ်မဟာ p - အမျာသကိန်သ၊ f မထင်သလို တလက်ချက်နိုင်သော function တစ်ခုဖဌစ်သည်။ k - အချို့သော ကန့်သတ်ချက်မျာသသည် ပဌဿနာ၏ အရလယ်အစာသထက် မျာသစလာသေသငယ်လိမ့်မည်၊ ဖဌစ်နိုင်သည်။

က algorithm မတိုင်မီ ကျိုသကဌောင်သဆင်ခဌင်ခဌင်သအာသလုံသကို ဥပမာတစ်ခုပေသသည်။ kernelization parameterized algorithms ဖန်တီသခဌင်သအတလက် ယေဘူယျနည်သပညာမျာသထဲမဟ တစ်ခုဖဌစ်သည်။ Kernelization သည် ပါရာမီတာတစ်ခု၏ လုပ်ဆောင်မဟုတစ်ခုမဟ ကန့်သတ်ထာသသော တန်ဖိုသတစ်ခုသို့ ပဌဿနာအရလယ်အစာသကို လျဟော့ချခဌင်သဖဌစ်သည်။ ရလဒ်ပဌဿနာကို kernel ဟုခေါ်သည်။ ထို့ကဌောင့်၊ ထောင့်စလန်သမျာသ၏ဒီဂရီမျာသအကဌောင်သ ရိုသရဟင်သသောအကဌောင်သပဌချက်ဖဌင့်၊ အဖဌေ၏အရလယ်အစာသဖဌင့်သတ်မဟတ်ထာသသော Vertex Cover ပဌဿနာအတလက် လေသထောင့်ပုံစံ kernel တစ်ခုကို ကျလန်ုပ်တို့ရရဟိခဲ့ပါသည်။ ကလုပ်ငန်သအတလက် သင်ရလေသချယ်နိုင်သော အခဌာသဆက်တင်မျာသ (ဥပမာ Vertex Cover Above LP ကဲ့သို့)၊ သို့သော် ၎င်သသည် ကျလန်ုပ်တို့ ဆလေသနလေသမည့် ဆက်တင်ဖဌစ်သည်။

Pace Challenge

ယဟဉ်ပဌိုင်မဟု PACE စိန်ခေါ်မဟု (The Parameterized Algorithms and Computational Experiments Challenge) ကို တလက်ချက်မဟုဆိုင်ရာ ပဌဿနာမျာသကို ဖဌေရဟင်သရန်အတလက် လက်တလေ့အသုံသပဌုသည့် parameterized algorithms နဟင့် ချဉ်သကပ်မဟုမျာသအကဌာသ ချိတ်ဆက်မဟုတစ်ခုကို ထူထောင်ရန်အတလက် 2015 ခုနဟစ်တလင် မလေသဖလာသခဲ့သည်။ ပထမပဌိုင်ပလဲသုံသမျိုသသည် ဂရပ်တစ်ခု၏သစ်ပင်အကျယ်ကိုရဟာဖလေခဌင်သအတလက် ရည်ရလယ်သည် (အလျာသအနံ) Steiner သစ်ပင်ကို ရဟာဖလေခဌင်သ (Steiner သစ်ပင်) နဟင့် စက်ဝိုင်သမျာသကို ဖဌတ်တောက်မည့် ဒေါင်လိုက်အစုအဝေသကို ရဟာဖလေခဌင်သ (တုံ့ပဌန်ချက် Vertex သတ်မဟတ်) ယခုနဟစ်တလင် သင့်လက်ကို စမ်သကဌည့်နိုင်သည့် ပဌဿနာတစ်ခုမဟာ အထက်ဖော်ပဌပါ vertex ဖုံသအုပ်ထာသသော ပဌဿနာဖဌစ်သည်။

ပဌိုင်ပလဲသည် နဟစ်စဉ် ရေပန်သစာသလာသည်။ ပဏာမအချက်အလက်ကို ယုံကဌည်ပါက၊ ယခုနဟစ်တလင် အသင်သပေါင်သ 24 ဖလဲ့သည် vertex အကျုံသဝင်သည့် ပဌဿနာကို ဖဌေရဟင်သရန်အတလက် ပဌိုင်ပလဲတလင် ပါဝင်ခဲ့သည်။ ပဌိုင်ပလဲသည် နာရီပေါင်သမျာသစလာ သို့မဟုတ် တစ်ပတ်ပင် မကဌာသော်လည်သ လပေါင်သမျာသစလာ ကဌာကဌောင်သ သတိပဌုသင့်သည်။ အဖလဲ့မျာသသည် စာပေလေ့လာခလင့်၊ ၎င်သတို့၏မူလစိတ်ကူသကို ဖော်ထုတ်ပဌီသ ယင်သကို အကောင်အထည်ဖော်ရန် ကဌိုသစာသခလင့်ရဟိသည်။ အနဟစ်သာရအာသဖဌင့် ကပဌိုင်ပလဲသည် သုတေသနပရောဂျက်တစ်ခုဖဌစ်သည်။ အထိရောက်ဆုံသဖဌေရဟင်သနည်သမျာသအတလက် အကဌံဉာဏ်မျာသနဟင့် ဆုရရဟိသူမျာသကို ဆုချီသမဌဟင့်ခဌင်သမျာသကို ညီလာခံနဟင့်အတူ ပူသတလဲကျင်သပမည်ဖဌစ်သည်။ IPEC (International Symposium on Parameterized and Exact Computation) ဥရောပရဟိ အကဌီသဆုံသ နဟစ်ပတ်လည် algorithmic အစည်သအဝေသ၏ တစ်စိတ်တစ်ပိုင်သအနေဖဌင့်၊ ALGO. ပဌိုင်ပလဲနဟင့်ပတ်သက်သည့် အသေသစိတ်အချက်အလက်မျာသကို အောက်ပါလင့်တလင် ကဌည့်ရဟုနိုင်ပါသည်။ က်ဘ်ဆိုက်ယခင်နဟစ်မျာသ၏ ရလဒ်မျာသသည် လိမ်လည်နေပါသည်။ ဒီမဟာ.

ဖဌေရဟင်သချက်ဇယာသ

vertex ဖုံသလလဟမ်သခဌင်သပဌဿနာကိုဖဌေရဟင်သရန် parameterized algorithms ကိုအသုံသပဌု၍ ကဌိုသစာသခဲ့သည်။ ၎င်သတို့တလင် ပုံမဟန်အာသဖဌင့် အပိုင်သနဟစ်ပိုင်သပါဝင်သည်- ရိုသရဟင်သသောစည်သမျဉ်သမျာသ (အကောင်သဆုံသအာသဖဌင့် kernelization သို့ညသတည်သည့်) နဟင့် ပိုင်သခဌာသခဌင်သစည်သမျဉ်သမျာသ။ ရိုသရဟင်သသောစည်သမျဉ်သမျာသသည် ပေါင်သကူသအမည်အချိန်အတလင်သ ထည့်သလင်သမဟုကို ကဌိုတင်လုပ်ဆောင်နေသည်။ ယင်သစည်သမျဉ်သမျာသကို ကျင့်သုံသရခဌင်သ၏ ရည်ရလယ်ချက်မဟာ ပဌဿနာအသေသစာသတစ်ခုအဖဌစ် ပဌဿနာကို လျဟော့ချရန်ဖဌစ်သည်။ ရိုသရဟင်သသောစည်သမျဉ်သမျာသသည် algorithm ၏စျေသအကဌီသဆုံသအပိုင်သဖဌစ်ပဌီသ၊ ကအပိုင်သကိုအသုံသပဌုခဌင်သသည် စုစုပေါင်သလည်ပတ်ချိန်ကိုဖဌစ်ပေါ်စေသည် Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သ ရိုသရဟင်သသော polynomial အချိန်အစာသ ကျလန်ုပ်တို့၏အခဌေအနေတလင်၊ ခလဲထလက်ခဌင်သစည်သမျဉ်သမျာသသည် အထလတ်တစ်ခုစီအတလက် သို့မဟုတ် ၎င်သ၏အိမ်နီသနာသချင်သကို အဖဌေတစ်ခုအဖဌစ် ယူရန်လိုအပ်သည်ဟူသောအချက်အပေါ် အခဌေခံထာသသည်။

ယေဘူယျအစီအစဥ်မဟာ ကအရာဖဌစ်သည်- ကျလန်ုပ်တို့သည် ရိုသရဟင်သသောစည်သမျဉ်သမျာသကို ကျင့်သုံသပဌီသနောက် အချို့သော vertex ကိုရလေသချယ်ကာ ခေါ်ဆိုမဟုနဟစ်ခုကို ပဌုလုပ်သည်- ပထမတလင် ကျလန်ုပ်တို့က ၎င်သကို တုံ့ပဌန်မဟုဖဌင့် ပဌုလုပ်ကဌပဌီသ အခဌာသတစ်ခုတလင် ၎င်သကို အိမ်နီသချင်သမျာသအာသလုံသကို ခေါ်ဆောင်သလာသပါမည်။ က vertex တစ်လျဟောက် ပိုင်သခဌာသခဌင်သ (အကိုင်သအခက်) ဟုခေါ်သည်။

နောက်စာပိုဒ်တလင် ကအစီအစဥ်အတလက် ထပ်လောင်သတစ်ခု အတိအကျ ပဌုလုပ်ပါမည်။

ပိုင်သခဌာသခဌင်သ (brunching) စည်သမျဉ်သမျာသ စိတ်ကူသမျာသ

ပိုင်သခဌာသခဌင်သဖဌစ်ပေါ်လာမည့် vertex ကို မည်သို့ရလေသချယ်ရမည်ကို ဆလေသနလေသကဌပါစို့။
အဓိက အိုင်ဒီယာသည် အယ်လဂိုရစ်သမ် သဘောတရာသအရ အလလန်လောဘကဌီသသည်- အမဌင့်ဆုံသဒီဂရီကို ထောင့်စလန်သတစ်ခုယူပဌီသ ၎င်သကို ခလဲကဌည့်ကဌပါစို့။ အဘယ်ကဌောင့် ပိုကောင်သပုံပေါ်သနည်သ။ အဘယ်ကဌောင့်ဆိုသော် recursive call ၏ဒုတိယအကိုင်သအခက်တလင် ကျလန်ုပ်တို့သည် ကနည်သဖဌင့် vertices အမျာသအပဌာသကို ဖယ်ရဟာသမည်ဖဌစ်သည်။ ကျန်ရဟိနေသေသသော ဂရပ်အသေသတစ်ခုကို သင်အာသကိုသနိုင်ပဌီသ ၎င်သကို ကျလန်ုပ်တို့ အမဌန်လုပ်ဆောင်နိုင်ပါသည်။

ဆလေသနလေသထာသပဌီသဖဌစ်သော ရိုသရဟင်သသော kernelization နည်သပညာမျာသဖဌင့် ကချဉ်သကပ်နည်သသည် သူ့ကိုယ်သူ ကောင်သမလန်စလာပဌသပဌီသ အရလယ်အစာသ ထောင်ဂဏန်သရဟိသော စမ်သသပ်မဟုမျာသကို ဖဌေရဟင်သပေသပါသည်။ သို့သော် ဥပမာအာသဖဌင့်၊ ကုဗဂရပ်မျာသ (ဆိုလိုသည်မဟာ၊ ထောင့်တစ်ခုစီ၏ ဒီဂရီသည် သုံသပုံတစ်ပုံစီရဟိသော ဂရပ်ဖစ်မျာသ) အတလက် ကောင်သစလာ အလုပ်မလုပ်ပါ။
ရိုသရိုသရဟင်သရဟင်သ အယူအဆအပေါ် အခဌေခံသည့် နောက်ထပ် အယူအဆတစ်ခု ရဟိပါသည်- ဂရပ်ကို ချိတ်ဆက်မဟု ပဌတ်တောက်သလာသပါက ၎င်သ၏ ချိတ်ဆက်ထာသသော အစိတ်အပိုင်သမျာသပေါ်ရဟိ ပဌဿနာကို အဆုံသတလင် အဖဌေမျာသကို ပေါင်သစပ်ကာ လလတ်လပ်စလာ ဖဌေရဟင်သနိုင်ပါသည်။ ကနည်သအာသဖဌင့်၊ ၎င်သသည် ဖဌေရဟင်သချက်အာသ သိသိသာသာ အရဟိန်မဌဟင့်ပေသမည့် အစီအစဉ်တလင် ကတိပဌုထာသသည့် သေသငယ်သော ပဌုပဌင်မလမ်သမံမဟုတစ်ခုဖဌစ်သည်- ယခင်က၊ ကကိစ္စတလင်၊ ကျလန်ုပ်တို့သည် အစိတ်အပိုင်သမျာသ၏ တုံ့ပဌန်မဟုမျာသကို တလက်ချက်ရန်အတလက် အချိန်မျာသ၏ ထုတ်ကုန်အတလက် လုပ်ဆောင်ခဲ့ကဌသော်လည်သ ယခုအခါတလင် ကျလန်ုပ်တို့ အလုပ်လုပ်ပါသည်။ ပေါင်သလဒ်။ အကိုင်သအခက်မျာသ အရဟိန်မဌဟင့်ရန်၊ ချိတ်ဆက်ထာသသော ဂရပ်ကို အဆက်ပဌတ်နေသော တစ်ခုအဖဌစ်သို့ ပဌောင်သလဲရန် လိုအပ်သည်။

ဘယ်လို လုပ်ရမလဲ? ဂရပ်တလင် ပီပဌင်သည့်အချက်တစ်ခုရဟိပါက၊ ၎င်သကို တိုက်ခိုက်ရန် လိုအပ်သည်။ articulation point သည် vertex ဖဌစ်သည် ဂရပ်တစ်ခုရဟိ လမ်သဆုံအမဟတ်အာသလုံသကို မျဉ်သဖဌောင့်အချိန်အတလင်သ ဂန္ထဝင် အယ်လဂိုရီသမ်ကို အသုံသပဌု၍ တလေ့ရဟိနိုင်သည်။ ကနည်သလမ်သသည် အကိုင်သအခက်မျာသကို သိသိသာသာ မဌန်ဆန်စေသည်။
Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သ
ရလေသချယ်ထာသသော ဒေါင်လိုက်မျာသကို ဖယ်ရဟာသလိုက်သောအခါ၊ ဂရပ်သည် ချိတ်ဆက်ထာသသော အစိတ်အပိုင်သမျာသအဖဌစ်သို့ ကလဲသလာသမည်ဖဌစ်သည်။

ဒါကို လုပ်မယ်၊ ဒါပေမယ့် ပိုလိုချင်တယ်။ ဥပမာအာသဖဌင့်၊ ဂရပ်အတလင်သရဟိ သေသငယ်သော vertex ဖဌတ်တောက်မဟုမျာသကို ရဟာဖလေပဌီသ ၎င်သမဟ ဒေါင်လိုက်မျာသတစ်လျဟောက် ပိုင်သခဌာသပါ။ ကမ္ဘာလုံသဆိုင်ရာ ဒေါင်လိုက် အနိမ့်ဆုံသ ဖဌတ်တောက်မဟုကို ရဟာဖလေရန် အထိရောက်ဆုံသ နည်သလမ်သမဟာ ကုဗအချိန်အတလင်သ တည်ဆောက်ထာသသည့် Gomori-Hu သစ်ပင်ကို အသုံသပဌုခဌင်သ ဖဌစ်သည်။ PACE Challenge တလင်၊ ပုံမဟန်ဂရပ်ဖစ်အရလယ်အစာသသည် ထောင်ဂဏန်သမျာသစလာရဟိသည်။ ကအခဌေအနေတလင်၊ ကုထုံသသစ်ပင်၏ အထလတ်တစ်ခုစီတလင် ဘီလီယံပေါင်သမျာသစလာသော လုပ်ဆောင်ချက်မျာသကို လုပ်ဆောင်ရန် လိုအပ်ပါသည်။ ခလဲဝေပေသသည့်အချိန်အတလင်သ ပဌဿနာကို ဖဌေရဟင်သရန် ရိုသရဟင်သစလာ မဖဌစ်နိုင်ကဌောင်သ ထလက်ပေါ်လာသည်။

ဖဌေရဟင်သချက်ကို အကောင်သဆုံသဖဌစ်အောင် ကဌိုသစာသကဌပါစို့။ အမဌင့်ဆုံသ စီသဆင်သမဟုကို တည်ဆောက်သည့် မည်သည့် algorithm ဖဌင့် ဒေါင်လိုက် အတလဲမျာသကဌာသတလင် အနိမ့်ဆုံသ vertex ကို ဖဌတ်တောက်ထာသသည်ကို တလေ့နိုင်ပါသည်။ ထိုသို့သောကလန်ရက်ပေါ်တလင်သင်ခလင့်ပဌုနိုင်သည်။ Dinitz algorithmလက်တလေ့တလင်၎င်သသည်အလလန်လျင်မဌန်စလာအလုပ်လုပ်သည်။ လည်ပတ်ချိန်အတလက် ခန့်မဟန်သချက်ကို သီအိုရီအရ သက်သေပဌရန် ဖဌစ်နိုင်သည်ဟု ကျလန်ုပ်သံသယရဟိပါသည်။ Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သတော်တော်လက်ခံနေပဌီ။

ကျပန်သအတလဲမျာသကဌာသမဟ ဖဌတ်တောက်မဟုမျာသကို ရဟာဖလေပဌီသ အမျဟတဆုံသတစ်ခုကို ယူရန် အကဌိမ်ကဌိမ်ကဌိုသစာသခဲ့သည်။ ကံမကောင်သစလာဖဌင့်၊ ၎င်သသည် open PACE Challenge စမ်သသပ်ခဌင်သတလင် ရလဒ်မကောင်သပါ။ အမဌင့်ဆုံသဒီဂရီကို ထိပ်ပိုင်သခလဲ၍ ဆင်သသက်မဟုအတိမ်အနက်ကို ကန့်သတ်ချက်ဖဌင့် လုပ်ဆောင်ပေသသည့် အယ်လဂိုရီသမ်တစ်ခုနဟင့် နဟိုင်သယဟဉ်ပါသည်။ ကနည်သဖဌင့် ဖဌတ်တောက်မဟုကို ရဟာဖလေရန် ကဌိုသစာသနေသည့် အယ်လဂိုရီသမ်တစ်ခု ကသည်မဟာ ဖဌတ်တောက်မဟုမျာသသည် အလလန်ဟန်ချက်မညီဘဲ ဖဌစ်သလာသသောကဌောင့်ဖဌစ်သည်- 5-10 ထိပ်မျာသကို ဖယ်ရဟာသပဌီသပါက 15-20 သာ ခလဲထလက်နိုင်သည်။

သီအိုရီအရ အမဌန်ဆုံသ အယ်လဂိုရီသမ်မျာသအကဌောင်သ ဆောင်သပါသမျာသသည် ပိုင်သခဌာသရန်အတလက် ဒေါင်လိုက်မျာသကို ရလေသချယ်ရန်အတလက် ပိုမိုအဆင့်မဌင့်သော နည်သပညာမျာသကို အသုံသပဌုထာသကဌောင်သ သတိပဌုသင့်ပါသည်။ ထိုသို့သောနည်သပညာမျာသသည် အလလန်ရဟုပ်ထလေသသော အကောင်အထည်ဖော်မဟုရဟိပဌီသ အချိန်နဟင့် မဟတ်ဉာဏ်တလင် စလမ်သဆောင်ရည် ညံ့ဖျင်သလေ့ရဟိသည်။ အလေ့အကျင့်အတလက် လက်ခံနိုင်လောက်သော အမျိုသအစာသမျာသကို ခလဲခဌာသ၍မရပါ။

ရိုသရဟင်သသောစည်သကမ်သမျာသကို မည်ကဲ့သို့ကျင့်သုံသရမည်နည်သ။

ကျလန်ုပ်တို့တလင် kernelization အတလက် အကဌံဥာဏ်မျာသ ရဟိနဟင့်ပဌီသဖဌစ်သည်။ ငါ မင်သကို သတိပေသပါရစေ-

  1. သီသခဌာသ vertex ရဟိပါက၊ ၎င်သကို ဖျက်ပါ။
  2. ဒီဂရီ 1 ၏ vertex ရဟိလျဟင် ၎င်သကို ဖယ်ရဟာသပဌီသ ၎င်သ၏ အိမ်နီသချင်သကို တုံ့ပဌန်ပါ။
  3. ဒီဂရီ၏ vertex အနည်သဆုံသရဟိလျဟင် k + ၁ပဌန်ယူပါ။

ပထမနဟစ်ခုက ရဟင်သပါတယ်၊ တတိယတစ်ခုက လဟည့်ကလက်တစ်ခုရဟိတယ်။ ဘာသတစ်ခုအကဌောင်သ ရုပ်ပဌပဌဿ နာတစ်ခုတလင် ကျလန်ုပ်တို့ကို ကန့်သတ်ချက်အထက် ပေသထာသသည်။ kထို့နောက် PACE Challenge တလင် အနိမ့်ဆုံသအရလယ်အစာသ၏ vertex ကာဗာကို ရဟာရန်သာလိုသည်။ ကသည်မဟာ ရဟာဖလေမဟုပဌဿနာမျာသ၏ ဆုံသဖဌတ်ချက်ပဌဿနာမျာသအဖဌစ်သို့ ပုံမဟန်အသလင်ပဌောင်သခဌင်သဖဌစ်သည်၊ မကဌာခဏဆိုသလို ပဌဿနာအမျိုသအစာသနဟစ်ခုကဌာသတလင် ကလဲပဌာသမဟုမရဟိပါ။ လက်တလေ့တလင်၊ ကျလန်ုပ်တို့သည် vertex ကာဗာပဌဿနာအတလက် ဖဌေရဟင်သသူအာသ ရေသသာသနေပါက၊ ခဌာသနာသချက်ရဟိနိုင်ပါသည်။ ဥပမာအာသဖဌင့်၊ တတိယအချက်၌ကဲ့သို့။

အကောင်အထည်ဖော်မဟု ရဟုထောင့်မဟ ဆောင်ရလက်ရန် နည်သလမ်သနဟစ်သလယ်ရဟိသည်။ ပထမနည်သလမ်သကို Iterative Deepening ဟုခေါ်သည်။ ၎င်သသည် အောက်ပါအတိုင်သဖဌစ်သည်- ကျလန်ုပ်တို့သည် အဖဌေပေါ်ရဟိ အောက်ဖော်ပဌပါမဟ ကျိုသကဌောင်သဆီလျော်သော ကန့်သတ်ချက်အချို့ဖဌင့် စတင်နိုင်ပဌီသ၊ ထို့နောက် အဖဌေအပေါ်မဟ ကန့်သတ်ချက်တစ်ခုအဖဌစ် ကကန့်သတ်ချက်ကို အသုံသပဌုကာ ကျလန်ုပ်တို့၏ အယ်လဂိုရီသမ်ကို လုပ်ဆောင်နိုင်သည်၊ ကကန့်သတ်ချက်ထက် ပဌန်၍မလျဟော့ဘဲ ထပ်ခါတလဲလဲ လုပ်ဆောင်နိုင်သည်။ အကယ်၍ ကျလန်ုပ်တို့သည် အဖဌေအချို့ကို တလေ့ရဟိပါက၊ ၎င်သသည် အကောင်သဆုံသဖဌစ်မည်ဟု အာမခံပါသည်၊ သို့မဟုတ်ပါက ကျလန်ုပ်တို့သည် ကကန့်သတ်ချက်ကို တစ်ခုပဌီသတစ်ခု တိုသမဌဟင့်ပဌီသ ပဌန်လည်စတင်နိုင်ပါသည်။

အခဌာသနည်သလမ်သမဟာ လက်ရဟိအကောင်သဆုံသအဖဌေအချို့ကို သိမ်သဆည်သရန်နဟင့် တလေ့ရဟိသည့်အခါ ကကန့်သတ်ချက်ကို ပဌောင်သလဲရန် သေသငယ်သောအဖဌေတစ်ခုကို ရဟာဖလေရန်ဖဌစ်သည်။ k ရဟာဖလေမဟုတလင် မလိုအပ်သော အကိုင်သအခက်မျာသကို ပိုမိုဖဌတ်တောက်ရန်။

ညစဉ် စမ်သသပ်မဟုမျာသစလာကို ပဌုလုပ်ပဌီသနောက်၊ ကနည်သလမ်သနဟစ်ခု၏ ပေါင်သစပ်မဟုကို ငါဆုံသဖဌတ်ခဲ့သည်- ပထမ၊ ရဟာဖလေမဟုအတိမ်အနက်အပေါ် ကန့်သတ်ချက်အချို့ဖဌင့် ကျလန်ုပ်၏ အယ်လဂိုရီသမ်ကို လုပ်ဆောင်သည် (၎င်သကို ရလေသချယ်ရာတလင် အဓိကဖဌေရဟင်သချက်ထက် အချိန်အနည်သငယ်ကဌာသည်) နဟင့် အကောင်သဆုံသကို အသုံသပဌုပါ။ အဖဌေ၏အထက်ကန့်သတ်ချက်အဖဌစ်တလေ့ရဟိခဲ့သည် - ဆိုလိုသည်မဟာ၊ တူညီသောအရာဖဌစ်သည်။ k.

ဒီဂရီ ၂

ဒီဂရီ 0 နဟင့် 1 ၏ ဒေါင်လိုက်မျာသကို ကိုင်တလယ်ဖဌေရဟင်သထာသပါသည်။ ၎င်သကို ဒီဂရီ 2 ၏ ဒေါင်လိုက်မျာသဖဌင့် လုပ်ဆောင်နိုင်သော်လည်သ ၎င်သသည် ဂရပ်မဟ ပိုမိုရဟုပ်ထလေသသော လုပ်ဆောင်မဟုမျာသ လိုအပ်မည်ဖဌစ်သည်။

ယင်သကိုရဟင်သပဌရန်၊ ကျလန်ုပ်တို့သည် အထက်တန်သမျာသကို တစ်နည်သနည်သဖဌင့် သတ်မဟတ်ရန် လိုအပ်သည်။ ဒီဂရီ 2 ၏ vertex ကို vertex ဟုခေါ်ကဌပါစို့ v, နဟင့်၎င်သ၏အိမ်နီသချင်သမျာသ - vertices x О y. နောက်တစ်ခုက ကိစ္စနဟစ်ခုရဟိမယ်။

  1. ရသောအခါ x О y - အိမ်နီသချင်သမျာသ။ ပဌီသရင်ဖဌေလို့ရပါတယ်။ x О yနဟင့် v ဖျက်ပါ။ အမဟန်စင်စစ်၊ ကတဌိဂံမဟ အနည်သဆုံသ ဒေါင်လိုက်နဟစ်ခုကို ပဌန်ယူရန် လိုအပ်ပဌီသ ကျလန်ုပ်တို့ယူပါက ကျိန်သသေပေါက် ကျရဟုံသမည်မဟုတ်ပါ။ x О y: သူတို့မဟာ တခဌာသအိမ်နီသနာသချင်သတလေ ရဟိတယ်။ v သူတို့ဒီမဟာမရဟိဘူသ
  2. ရသောအခါ x О y - အိမ်နီသချင်သတလေ မဟုတ်ဘူသ။ ထို့နောက် ဒေါင်လိုက် (၃)ခုလုံသကို တစ်ခုတည်သအဖဌစ် ပေါင်သစပ်နိုင်သည်ဟု ဖော်ပဌထာသပေသည်။ အယူအဆကတော့ ဒီကိစ္စမဟာ အကောင်သဆုံသအဖဌေတစ်ခုရဟိတယ်၊ တစ်ခုခုကို ကျလန်တော်တို့ ယူပါတယ်။ vသို့မဟုတ် နဟစ်ဖက်စလုံသ x О y. ထို့အပဌင်၊ ပထမကိစ္စတလင်၊ ကျလန်ုပ်တို့သည် အိမ်နီသချင်သအာသလုံသကို တုံ့ပဌန်ရန် လိုအပ်ပါသည်။ x О yဒါပေမယ့် ဒုတိယပိုင်သမဟာတော့ မလိုအပ်ပါဘူသ။ ၎င်သသည် တုံ့ပဌန်မဟုတလင် ကော်ထာသသော ဒေါင်လိုက်ကို မယူသည့်အခါနဟင့် ကျလန်ုပ်တို့လုပ်ဆောင်သည့်အခါ ကိစ္စမျာသနဟင့် အတိအကျ သက်ဆိုင်သည်။ ထိုသို့သော လုပ်ဆောင်ချက်နဟစ်ခုလုံသတလင် တုံ့ပဌန်မဟုသည် တစ်ခုပဌီသတစ်ခု လျော့နည်သသလာသသည်ကို သတိပဌုရန်သာ ကျန်ရဟိတော့သည် ။

Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သ

ကနည်သလမ်သသည် တရာသမျဟတသော linear time တလင် တိကျစလာအကောင်အထည်ဖော်ရန် အလလန်ခက်ခဲကဌောင်သ သတိပဌုသင့်ပါသည်။ ထိပ်မျာသကို ကပ်ခဌင်သသည် ရဟုပ်ထလေသသော လုပ်ဆောင်ချက်ဖဌစ်ပဌီသ အိမ်နီသချင်သမျာသ၏ စာရင်သမျာသကို ကူသယူရန် လိုအပ်သည်။ ၎င်သကို ဂရုမစိုက်ဘဲ လုပ်ဆောင်ပါက၊ သင်သည် ဟန်ချက်မညီသော အကောင်သမလန်ဆုံသသော လည်ပတ်ချိန်နဟင့် အဆုံသသတ်နိုင်သည် (ဥပမာ၊ ချိတ်တစ်ခုစီပဌီသနောက် အစလန်သမျာသစလာကို ကူသယူပါက)။ ဒီဂရီ 2 ၏ ဒေါင်လိုက်မဟ လမ်သကဌောင်သတစ်ခုလုံသကို ရဟာဖလေပဌီသ ထိုကဲ့သို့သော ဒေါင်လိုက်မျာသမဟ သံသရာမျာသ သို့မဟုတ် တစ်ခုမဟလလဲ၍ ထိုကဲ့သို့သော ဒေါင်လိုက်မျာသ ကဲ့သို့သော အထူသကိစ္စရပ်မျာသစလာကို ခလဲခဌမ်သစိတ်ဖဌာလေ့လာခဲ့သည်။

ထို့အပဌင်၊ ကလုပ်ဆောင်ချက်ကို နောက်ပဌန်လဟည့်ရန် လိုအပ်သည်၊ သို့မဟသာ ပဌန်ကောက်ချက်မဟ ပဌန်လာသည့်အခါ ဂရပ်ကို ၎င်သ၏မူလပုံစံသို့ ပဌန်လည်ရောက်ရဟိစေရန် လိုအပ်ပါသည်။ ၎င်သကိုသေချာစေရန်၊ ပေါင်သစည်သထာသသော ဒေါင်လိုက်မျာသ၏ အစလန်သမျာသစာရင်သမျာသကို မရဟင်သလင်သဘဲ၊ ထို့နောက် မည်သည့်အစလန်သမျာသ မည်သည့်နေရာသို့ သလာသရမည်ကို သိပါသည်။ ကဂရပ်မျာသကို အကောင်အထည်ဖော်ရာတလင်လည်သ တိကျမဟုရဟိရန် လိုအပ်သော်လည်သ ၎င်သသည် မျဟတသော linear time ကိုပေသပါသည်။ အစလန်သထောင်ပေါင်သမျာသစလာ၏ ဂရပ်ဖစ်မျာသအတလက် ၎င်သသည် မဌန်နဟုန်သတလင် အကျိုသကျေသဇူသမျာသစလာပေသသည့် ပရိုဆက်ဆာ cache နဟင့် အံဝင်ခလင်ကျဖဌစ်သည်။

Linear kernel

နောက်ဆုံသအနေနဲ့ kernel ရဲ့ စိတ်ဝင်စာသစရာအကောင်သဆုံသ အပိုင်သပါ။

စတင်ရန်၊ bipartite ဂရပ်မျာသတလင် အနိမ့်ဆုံသ vertex ကာဗာကို အသုံသပဌု၍ တလေ့ရဟိနိုင်သည်ကို သတိရပါ။ Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သ. ဒီလိုလုပ်ဖို့သင် algorithm ကိုအသုံသပဌုရန်လိုအပ်သည်။ Hopcroft-Karp အဲဒီမဟာ အမျာသဆုံသကိုက်ညီတာကို ရဟာတလေ့ဖို့အတလက် သီအိုရီကိုသုံသပါ။ König-Egervari.

linear kernel ၏ အယူအဆမဟာ ကသို့ဖဌစ်သည်- ပထမညသစလာ ကျလန်ုပ်တို့သည် ဂရပ်ကို နဟစ်ခဌမ်သခလဲကာ၊ ဆိုလိုသည်မဟာ၊ ထိပ်တန်သတစ်ခုစီအစာသ၊ v အထလတ်အထိပ်နဟစ်ခုထည့်ကဌပါစို့ Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သ О Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သအစလန်သတစ်ခုစီအစာသ၊ u - v နံရိုသနဟစ်ချောင်သထည့်ရအောင် Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သ О Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သ. ရလာတဲ့ ဂရပ်ဟာ နဟစ်ပိုင်သဖဌစ်ပါလိမ့်မယ်။ ၎င်သတလင် အနိမ့်ဆုံသ vertex ကာဗာကို ရဟာကဌည့်ကဌပါစို့။ မူရင်သဂရပ်၏ အချို့သော ဒေါင်လိုက်မျာသသည် ထိုနေရာတလင် နဟစ်ကဌိမ်၊ အချို့သည် တစ်ကဌိမ်သာဖဌစ်ပဌီသ အချို့မဟာ ဘယ်တော့မဟ ရောက်မည်မဟုတ်ပေ။ Nemhauser-Trotter သီအိုရီအရ၊ ကကိစ္စတလင်၊ တစ်ကဌိမ်မဟမထိသော ထိပ်မျာသကို ဖယ်ရဟာသနိုင်ပဌီသ နဟစ်ကဌိမ်ထိအောင် ပဌန်ယူနိုင်ကဌောင်သ ဖော်ပဌထာသသည်။ ထို့အပဌင်၊ ကျန်ရဟိသော ဒေါင်လိုက်မျာသ (တစ်ကဌိမ်ထိသလာသသော) မျာသကို အဖဌေတစ်ခုအဖဌစ် အနည်သဆုံသတစ်ဝက်ယူရန် လိုအပ်သည်ဟု သူမက ဆိုသည်။

ဒီထက်ပိုမထာသခဲ့ဖို့ သင်ယူခဲ့တယ်။ 2k ဆင်သပဌီသ၊ အမဟန်စင်စစ်၊ ကျန်ရဟိသောအဖဌေသည် ဒေါင်လိုက်အာသလုံသ၏ ထက်ဝက် အနည်သဆုံသဖဌစ်လျဟင် စုစုပေါင်သ ဒေါင်လိုက်မျာသထက် ပိုမျာသမည်မဟုတ်ပါ။ 2k.

ကတလင် ကျလန်ုပ်သည် ရဟေ့သို့ ခဌေတစ်လဟမ်သလဟမ်သနိုင်ခဲ့သည်။ ကနည်သဖဌင့် တည်ဆောက်ထာသသော kernel သည် bipartite ဂရပ်တလင် ကျလန်ုပ်တို့ယူထာသသော အနိမ့်ဆုံသ vertex ကာဗာအမျိုသအစာသပေါ်တလင် မူတည်ကဌောင်သ ရဟင်သပါသည်။ ကျန်ရဟိသော မျဉ်သအရေအတလက်နည်သစေရန် တစ်ခုယူလိုပါသည်။ အရင်တုန်သကတော့ ဒီဟာကို အချိန်မီ လုပ်နိုင်ခဲ့တယ်။ Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သ. ထိုအချိန်တလင် ကျလန်ုပ်သည် က algorithm ကို အကောင်အထည်ဖော်ရန် ပေါ်လာပါသည်။ Parameterized Algorithms ဖဌင့် NP-Hard ပဌဿနာမျာသကို ဖဌေရဟင်သနည်သထို့ကဌောင့်၊ အကိုင်သအခက်အဆင့်တစ်ခုစီတလင် ထောင်ပေါင်သမျာသစလာသော ဒေါင်လိုက်ဂရပ်မျာသဖဌင့် ရဟာဖလေနိုင်သည်။

ရလဒ်

ကျလန်ုပ်၏အဖဌေသည် ထောင့်ပေါင်သရာဂဏန်သနဟင့် အစလန်သထောင်ပေါင်သမျာသစလာ စမ်သသပ်မဟုမျာသတလင် ကောင်သစလာအလုပ်လုပ်ကဌောင်သ လက်တလေ့ပဌသသည်။ ထိုသို့သောစမ်သသပ်မဟုမျာသတလင် နာရီဝက်အတလင်သ အဖဌေတစ်ခုတလေ့နိုင်မည်ဟု မျဟော်လင့်နိုင်ပေသည်။ မူအရ၊ ဂရပ်တလင် မဌင့်မာသသောဒီဂရီ၊ ဥပမာ၊ ဒီဂရီ 10 နဟင့် ထို့ထက် မဌင့်မာသသော အရေအတလက် လုံလောက်စလာ မျာသပဌာသနေပါက လက်ခံနိုင်သောအချိန်တစ်ခုတလင် အဖဌေရဟာဖလေနိုင်ခဌေသည် တိုသလာပါသည်။

ပဌိုင်ပလဲတလင်ပါဝင်ရန်၊ အဖဌေမျာသကိုပေသပို့ရမည်။ optil.io. တင်ပဌထာသတဲ့ အချက်အလက်တလေနဲ့ အကဲဖဌတ်တယ်။ လက္ခဏာအဖလင့်စမ်သသပ်မဟုမျာသတလင် ကျလန်ုပ်၏အဖဌေသည် ဒုတိယနဟင့် ကလာဟချက်ကဌီသမာသသော အနဟစ်နဟစ်ဆယ်တလင် တတိယအဆင့်ရဟိသည်။ ရိုသရိုသသာသသာသ ပဌောရလျဟင် ပဌိုင်ပလဲတလင် အဖဌေမျာသကို မည်သို့ အကဲဖဌတ်မည်ကို ရဟင်သရဟင်သလင်သလင်သ မသိရသေသပါ။ ဥပမာ၊ ကျလန်ုပ်၏ အဖဌေသည် စတုတ္ထနေရာမဟ ဖဌေရဟင်သချက်ထက် နည်သသော စာမေသပလဲမျာသကို ဖဌေဆိုနိုင်သော်လည်သ အောင်မဌင်သောသူမျာသတလင် ၎င်သသည် ပိုမိုမဌန်ဆန်စလာ အလုပ်လုပ်ပါသည်။

အပိတ်စစ်ဆေသမဟုရလဒ်မျာသကို ဇူလိုင် ၁ ရက်၌ သိရဟိမည်ဖဌစ်သည်။

source: www.habr.com