मैक्स-कट एल्गोरिथ्म जो काम नहीं करना चाहिए, अस्पष्ट क्यों


21

ठीक है, यह एक होमवर्क प्रश्न की तरह लग सकता है और, एक अर्थ में, यह है। एक स्नातक एल्गोरिदम कक्षा में एक होमवर्क असाइनमेंट के रूप में, मैंने निम्नलिखित क्लासिक दिया:

एक अप्रत्यक्ष ग्राफ़ को देखते हुए , एक एल्गोरिथ्म दें जो कट जैसे कि , where कट को पार करने वाले किनारों की संख्या है। समय की जटिलता होनी चाहिए ।G=(V,E)(S,S¯)δ(S,S¯)|E|/2δ(S,S¯)O(V+E)

किसी कारण से, मुझे निम्न समाधान मिला। अब, यह बहुत अधिक समय का उपयोग करता है, इसलिए यह ग्रेडिंग की बात नहीं है, लेकिन मैं उत्सुक था। यह "सही" प्रतीत नहीं होता है, लेकिन काउंटरटेक्मेन्स पर मेरे सभी प्रयास विफल हो गए हैं। यह रहा:

  1. सेट करेंS
  2. बता दें कि ग्राफ में अधिकतम डिग्री वर्टेक्स हैv
  3. जोड़े केvS
  4. सटे सभी किनारों को हटा देंv
  5. यदि वापस जाएँδ(S,S¯)<|E|/2

ध्यान दें कि चरण 5 में मूल ग्राफ को संदर्भित करता है। यह भी ध्यान दें कि हमने चरण 4 को छोड़ दिया था, यह स्पष्ट रूप से गलत होगा (उदाहरण के लिए दो अलग-अलग किनारों के साथ एक त्रिकोण का संघ)।E

अब, किसी भी सरल प्रमाण में निम्नलिखित समस्या है - यह हो सकता है कि जब हम एक नया शीर्ष जोड़ते हैं तो हम वास्तव में हटा दें नए किनारों को जोड़ने में कटौती से किनारों (जहां हटाए गए किनारों के साथ ग्राफ को संदर्भित करता है)। बात यह है, कि अगर यह हमारे कारण के लिए हानिकारक है, तो इसका मतलब है कि इस वर्टेक्स "का उपयोग कभी उच्च डिग्री के लिए किया जाता है, इसलिए इसे" पहले चुना जाना चाहिए था।v|S|d(v)d(v)v

क्या यह एक प्रसिद्ध एल्गोरिदम है? क्या इसके लिए कुछ सरल प्रतिधारण है?


2
यह शीर्ष आवरण के लिए 2-सन्निकटन के समान है। सही लालची एल्गोरिथ्म मुझे लगता है कि भाग में अधिक पड़ोसियों के साथ शीर्ष को चुनना होगा यह दूसरे भाग में है और इसे तब तक स्थानांतरित करें जब तक कि ऐसा कोई शीर्ष न हो और यह दिखाना मुश्किल नहीं है कि उस बिंदु पर उत्तर कम से कम है । लेकिन उस एल्गोरिथ्म की शुद्धता इस तथ्य पर निर्भर करती है कि: हम कट के दो पक्षों में वर्टेक्स के लिए पड़ोसियों की संख्या के बीच के अंतर को देख रहे हैं न कि केवल अधिकतम डिग्री को। इसके अलावा सही एल्गोरिदम दोनों दिशाओं में लंबवत चलता है, न कि केवल से । ˉ एस एस|E|/2S¯S
केव

3
@ मुझे लगता है कि ओपी आपके द्वारा वर्णित एल्गोरिदम को जानता है (उसने इसे होमवर्क के रूप में सौंपा है)। उनका सवाल यह है कि क्या वह जिस एल्गोरिथ्म का वर्णन करता है वह किसी भी अनुमान को प्राप्त करता है।
साशो निकोलेव

2
@ मोहम्मदअल-तुर्किस्टनी ने निकोलोव की टिप्पणी देखी।
vb le

1
यह भी ध्यान दें कि 16/17 सन्निकटन एनपी-हार्ड है, न कि 1/2। GW अपने सेमिनल पेपर में SDP का उपयोग करके ~ 0.878 सन्निकटन देता है।
योनातन

1
@ योनातन इस प्रश्न को देखें cstheory.stackexchange.com/questions/3846/…
मोहम्मद अल-तुर्किस्टनी

जवाबों:


13

मेरे पहले के दावे का दावा आकार को ध्यान में नहीं रखा गया पहले से ही ग्राफ में मौजूद है। निम्न निर्माण परिणामी प्रतीत होता है (स्पष्ट रूप से - मैंने एक कठिन प्रमाण के लिए math.stackexchange.com पर एक प्रश्न बनाया है) अंश में। n2/4हे(12c+6n2/4O(1logc)

एल्गोरिथ्म कई डिस्कनेक्ट किए गए यूनियनों पर बुरी तरह से प्रदर्शन करता है, अलग-अलग आकार के पूर्ण रेखांकन। हम रूप में कोने पर पूरा ग्राफ । पर एल्गोरिथ्म के व्यवहार पर विचार करें : यह बार-बार में अभी तक नहीं एक मनमाना शिखर कहते हैं के - इस तरह के सभी कोने समान हैं और इसलिए क्रम मायने नहीं रखता। एल्गोरिथ्म द्वारा अभी तक से नहीं जोड़ा गया वर्टिकल की संख्या सेट करना , उस पल में कट का आकार ।के एन के एन एस एस एस | ˉ एस | = k k ( n - k )nKnKnSSS|S¯|=kk(nk)

विचार करें कि अगर हम कई कट पर एल्गोरिथ्म चलाने होता के साथ रेखांकन 0 और 1. के बीच स्थिरांक हैं में तत्वों की संख्या है अभी तक नहीं में वें पूरा ग्राफ तो वह एल्गोरिथ्म, बार-बार एक जोड़ देगा उच्चतम साथ पूर्ण ग्राफ़ से से शीर्ष पर , मनमाने ढंग से संबंधों को तोड़ना। यह लिए `राउंड 'आधारित को प्रेरित करेगा : एल्गोरिथ्म उच्चतम साथ सभी पूर्ण ग्राफ़ से एक शीर्ष जोड़ता है , फिर सभी पूर्ण ग्राफ़ से ( साथ x मैं k मैं एस मैं एस k मैं एस कश्मीर = k मैं k मैं = कश्मीर - 1 कश्मीर मैं एसKxinxikiSiSkiSk=kiki=k1kiपिछले दौर के बाद अद्यतन), और इसी तरह। एक बार जब एक पूरा ग्राफ एक दौर में में जोड़ा जाता है , तो यह तब से हर दौर के लिए ऐसा करेगा।S

Let पूरा रेखांकन की संख्या हो। मान लें कि को के साथ -th पूर्ण ग्राफ़ के लिए आकार संशोधक किया जाए । हम इन आकार के बड़े से छोटे और सेट को । अब हमारे पास है कि अगर साथ तत्व हैं, जिनमें तत्व अभी तक नहीं जोड़े गए हैं , तो उस समय कट का आकार । किनारों की कुल संख्या है ।0 < एक्स मैं1 0 मैं सी - 1 मैं x 0 = 1 ' कश्मीर एस Σ ' - 1 मैं = 0 कश्मीर ( x मैं n - कश्मीर ) = कश्मीर एन Σ ' - 1 मैं = 0 ( एक्स मैं ) - सी ' कश्मीर 2 | c0<xi10ic1ix0=1ckSi=0c1k(xink)=kni=0c1(xi)ck2|E|=i=0c1xin(xin1)2n22i=0c1xi2

ध्यान दें कि में द्विघात क्रिया है और इसलिए एक अधिकतम है। इसलिए हमारे पास कई स्थानीय रूप से अधिकतम कटौती होगी। उदाहरण के लिए, यदि हमारा अधिकतम कट के आकार का । हम को लेने जा रहे हैं ताकि , जिसका अर्थ है कि दूसरा पूर्ण ग्राफ़, पर इस स्थानीय अधिकतम कट का आकार नहीं बदलेगा । फिर हम पर एक नया स्थानीय रूप से अधिकतम कट प्राप्त करते हैं और इसलिए हम ( कश्मीर = 1 कश्मीर = nkni=0c1xick2kc=1 एनk=n2 एक्स1एक्स1=1/2-εकश्मीर=nn24x1x1=1/2ε कश्मीर=3/8n-ε'एक्स2=3/8n-ε"ε,ε',ε"k=n2k=3/8nεx2=3/8nεε,ε,εछोटे स्थिरांक)। हम इस पल के लिए s को नजरअंदाज करेंगे और बस मान लेंगे कि हम चुन सकते हैं - हमें सुनिश्चित करना चाहिए , लेकिन यह अंतिम परिणाम को प्रभावित नहीं करेगा यदि है काफी बडा।एक्स 1 = 1 / 2 एक्स 1 एन = nεx1=1/2एनx1n=n21n

हम अपने कटों की स्थानीय अधिकतम सीमा का पता लगाना चाहते हैं। हम से , । के बराबर देता है है, जो आकार का एक हिस्सा देता है । कश्मीर एन Σ ' - 1 मैं = 0 ( एक्स मैं ) - 2 ' कश्मीर 0 कश्मीर = nkni=0c1(xi)ck2kni=0c1(xi)2ck0n2k=n2ci=0c1xin24c(i=0c1xi)2

आइए जा पिछले पैराग्राफ यदि निर्धारित । हम यह सुनिश्चित करेंगे कि सूत्र - सभी पूर्ण रेखांकन साथ की मांग करके रखता है, फिर इस स्थानीय अधिकतम कट के से छोटा और इसलिए कट का आकार नहीं बढ़ाता। इसका मतलब है कि हमारे पास इन पर कट हैं जो एल्गोरिथम द्वारा पाए गए अन्य सभी से बड़े हैं। k ' = मैं x मैं n < कश्मीर मैं मैं ' मैं ' > मैं k मैं c k मैंkikc=ixin<kiii>ikicki

में भरने पर , हमें के साथ पुनरावृत्ति (और कुछ छोटे ) । इस पैदावार को हल करने से : @ सवाल पर देखें । @Daniel फिशर द्वारा व्युत्पत्ति के लिए math.stackexchange.com। में इस प्लग और पुनरावृत्ति में हमारी अंतर्दृष्टि का उपयोग करके हमसे आकार की कटौती देता है । इस केंद्रीय द्विपद गुणांक के गुणों का उपयोग करना , हमारे पास हैx मैं = 1xin<kiεएक्स0=1xi=12ci=0c1xiεx0=1xi=(2ii)4in24c(i=0c1xi)2n24c(2c(2cc)4c)2=n2c((2cc)4c)2limcc((2cc)4c)2=1π ( math.stackexchange.com पर मेरा प्रश्न भी देखें )।

किनारों की संख्या लगभग । ज्ञात गुणों द्वारा हमारे पास । कम से कम जो कि asymptotically जैसे जाता है अनंत।n22i=0c1xi2=n22i=0c1((2ii)4i)214i(2ii)4in22i=0c1(14i)2=n28i=0c11in28logcc

इसलिए हमारे पास समान रूप से बराबर है क्योंकि अनंतता में जाता है, यह दिखाते हुए कि एल्गोरिथ्म कर सकता है मनमाने ढंग से कम अंशों की वापसी कटौती।δ(S,S¯)|E|8πlogcc|E|


3
एक मामूली संशोधन के साथ, आपका निर्माण देता है । फिक्स और एक पर्याप्त रूप से बड़े चुना । Let । प्रत्येक दो कोने को से एक किनारे से कनेक्ट करें ; इसके बाद wp में हर दो कोने को जोड़ते हैं । किनारों की कुल संख्या लगभग । एल्गोरिथ्म में एक कट लगता है जो लगभग किनारों ( में निचले क्रम की शर्तों तक ) में कटौती करता है । 1/4εNV={1,,N}{1,,εN}Vε2(εn)2/2+ε2(n2/2)=ε2n2ε2n2/4ε
यूरी डेस

मुझे लगता है कि मैं जल्द ही अंतिम परिणामों (अधिक विस्तार के साथ) को शामिल करने के लिए अपने उत्तर को फिर से लिखूंगा, क्योंकि यह अभी थोड़ा गड़बड़ है।
एलेक्स दस ब्रिंक

1
योग के बारे में , चूंकि प्रत्येक शब्द , योग एक हार्मोनिक श्रृंखला है, जो लिए , और कुल मिलाकर हमें । n22i=0c1((2ii)4i)2Θ(1/(i+1))Θ(logc)Θ(n2logc)
युवल फिल्मस

12

कुछ देर सोचने और इधर-उधर पूछने के बाद, एमी पाज़ का सौजन्य :

चलो भी हो सकता है और एक ग्राफ जो का मिलन है हो के मिलान के साथ कोने (यह है कि, के साथ एक मिलान किनारों)।nGKnn+2n/2+1

इस ग्राफ पर एल्गोरिदम कैसे चलता है? यह सिर्फ मनमाना क्रम में क्लिक भाग से कोने लेता है। क्लिक्स से वर्टिस लेने के बाद , कट का आकार । यह लिए अधिकतम है , जो आकार कट देता है , जबकि ग्राफ में किनारों की संख्या ।kk(nk)k=n/2n24n22+1

निर्धारित किए गए एल्गोरिथ्म में क्‍लिक से वर्टिकल जोड़ना जारी रहेगा, कट को पार करने वाले किनारों की संख्‍या को कम किया जाएगा, जब तक कि क्‍लिक से जो बचता है वह केवल एक किनारे पर है। इस बिंदु पर यह से बेहतर कुछ भी प्राप्त नहीं कर सकता है ।n2+2


1
अच्छा उलटा।
केव

हालांकि यह अभी भी बहुत करीब है हालांकि एक उदाहरण देखना अच्छा होगा जहां एल्गोरिथ्म बदतर करता है|E|/2
सैशो निकोलेव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.