दो विभाजनों के बीच की दूरी संपादित करें


17

मेरे पास दो विभाजन हैं और मैं उनके बीच संपादन दूरी की तलाश कर रहा हूं।[1…n]

इसके द्वारा, मैं नोड के एकल संक्रमणों की एक न्यूनतम संख्या को एक अलग समूह में खोजना चाहता हूं जो कि विभाजन ए से विभाजन बी तक जाना आवश्यक है।

उदाहरण के लिए से दूरी {0 1} {2 3} {4}में {0} {1} {2 3 4}होगा दो

खोज करने के बाद मैं इस कागज पर आया , लेकिन क) मुझे यकीन नहीं है कि अगर वे समूहों के आदेश को ध्यान में रख रहे हैं (कुछ जिसकी मुझे परवाह नहीं है) उनकी दूरी पर ख) मुझे यकीन नहीं है कि यह कैसे काम करता है और ग) कोई संदर्भ नहीं हैं।

किसी भी मदद की सराहना की


5
आप {0 1 2 3} और {0 1} {2 3} के बीच की दूरी पर क्या विचार करेंगे? यह 2 होगा? दूसरे, मैं यह नहीं देखता कि "रेखांकन" चित्र में क्यों आते हैं। ऐसा लगता है कि आपके पास [एन] के दो विभाजन हैं और उनके बीच एक दूरी की गणना करना चाहते हैं।
— सुरेश वेंकट

हाँ, यह दो होगा। दरअसल ये एक ग्राफ के नोड्स (यानी एक ग्राफ विभाजन) पर विभाजन सेट किए गए हैं। यह संभवतः समाधान के लिए महत्वपूर्ण नहीं है, लेकिन यह वह समस्या है जिसे मैं हल करने की कोशिश कर रहा हूं, इसलिए मैंने इसका उल्लेख क्यों किया।
— zenna

3
यदि ग्राफ़ अप्रासंगिक है, तो कृपया अपने प्रश्न से "ग्राफ़" और "नोड्स" के सभी संदर्भ हटा दें; यह मदद नहीं करता है, यह विचलित करता है।
— जूका सूमेला

विभाजन जाली पर दूरी के संदर्भ में संपादित दूरी को परिभाषित नहीं किया जा सकता है?
— तेगिरी नेनाशी

@ टेगीरी - यह वास्तव में पार्टिटिटन्स के जाली पर जियोडेसिक दूरी है। दुर्भाग्य से कंप्यूटिंग कि 10 से अधिक कार्डिनैलिटी के किसी भी सेट के लिए जाली अचूक है।
— zenna

जवाबों:


21

इस समस्या को असाइनमेंट समस्या में बदल दिया जा सकता है , जिसे अधिकतम भारित द्विदलीय मिलान समस्या के रूप में भी जाना जाता है।

पहले ध्यान दें कि संपादित दूरी उन तत्वों की संख्या के बराबर होती है जिन्हें एक सेट से दूसरे में बदलने की आवश्यकता होती है। यह उन तत्वों की कुल संख्या के बराबर है, जिन तत्वों को बदलने की आवश्यकता नहीं है। इसलिए जो तत्व नहीं बदलते हैं उनकी न्यूनतम संख्या खोजना उन अधिकतम संख्याओं को खोजने के बराबर है जो बदलते नहीं हैं।

चलो और बी = { बी 1 , बी 2 , । । । , बी l } [ 1 , 2 , का विभाजन हो । । । , एन ] । इसके अलावा, व्यापकता की हानि के बिना, चलो कश्मीर ≥ एल (अनुमति दी क्योंकि ई डी मैं टीA={A1,A2,...,Ak}B={B1,B2,...,Bl}[1,2,...,n]k≥एल )। फिर बी एल + 1 , बी एल + 2 , ..., बी के सभी खाली सेट हो। फिर जो अधिकतम कोने नहीं बदलते हैं वह है:इघमैंटी(ए,बी)=इघमैंटी(बी,ए)बीएल+1बीएल+2बीक

अधिकतमचΣमैं=1क|एमैं∩बीच(मैं)|

जहां [ 1 , 2 , का क्रमपरिवर्तन है । । । , कश्मीर ] ।च[1,2,।।।,क]

यह बिल्कुल असाइनमेंट की समस्या है जहाँ कोने , ..., A k , B 1 , ..., B k और किनारे जोड़े हैं ( A i , B j ) वजन के साथ | A i ∩ B j | । इसे O ( | V | 2 लॉग इन | V | + | V | | E | ) समय में हल किया जा सकता है ।ए1एकबी1बीक(एमैं,बीजे)|एमैं∩बीजे|हे(|वी|2लॉग⁡|वी|+|वी||इ|)


क्या आप एल्गोरिथ्म को नाम दे सकते हैं, जो इस समय को जटिलता देता है?
— D-503

मेरा मानना ​​है कि @bbejot क्रमिक सबसे छोटी पथ एल्गोरिथ्म का उल्लेख कर रहा है (सबरूटीन डायजकस्ट्रा के द्वारा हैम्पटन हीप्स का उपयोग करके)।
— वी

मुझे इसे पार्स करने में काफी समय लगा क्योंकि मैं गणित का व्यक्ति नहीं हूं, लेकिन धन्यवाद। मैंने एक लंबा समय खोजा और यह एकमात्र ऐसी चीज थी जिसे मैं पा सकता था कि दिखाया गया है कि विभाजन की दूरी की समस्या को असाइनमेंट समस्या में कैसे बदला जाए - या किसी भी एल्गोरिथ्म में जिसे मैं कुछ पायथन लाइब्रेरी से कह सकता हूं। (मेरे लिए कठिन भाग यह पता लगा रहा है कि scipy.optimize.linear_sum_assignment का उपयोग कैसे करें और फिर इन निर्देशों के आधार पर मैट्रिसेस स्थापित करने के लिए।)
— सिगफ्रीड

मुझे वज़न को नकारात्मक बनाने की ज़रूरत थी। अन्यथा scipy.optimize.linear_sum_assignment मुझे सब कुछ के लिए 0 देता है।
— सिगफ्रीड

2

इस पेपर की पीडीएफ देखें

http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.0030160

वहाँ संपादित दूरी की परिभाषा ठीक वही है जो आपको चाहिए। 'संदर्भ' विभाजन आपके दो विभाजनों में से एक होगा (एक मनमाना), दूसरा बस एक होगा। प्रासंगिक उद्धरण भी शामिल हैं।

सबसे अच्छा, रोब


धन्यवाद रॉब। हालांकि, जब तक मैं कुछ याद नहीं कर रहा हूं, यह विभाजन-मर्ज चाल के रूप में परिभाषित एक संपादित दूरी है। इनका अच्छी तरह से अध्ययन किया जाता है और जैसा कि पेपर बताता है, सूचना की भिन्नता इस का एक सूचना सिद्धांत है। मैं हालांकि, एकल तत्व चालन बदलाव में दिलचस्पी रखता हूं।
— zenna

1

सनकी रविवार की सुबह का विचार सही हो भी सकता है और नहीं भी:

Wlog, को अधिक सेट के साथ विभाजन होने दें , P 2 अन्य। सबसे पहले, असाइन जोड़ो में अलग-अलग नामों एन 1 ( एस ) ∈ Σ अपने सेट करने के लिए पी 1 । फिर, निम्नलिखित नियमों द्वारा सेट P 2 के लिए एक सर्वश्रेष्ठ नामकरण n 2 ( S ) खोजें :पी1पी2n1(एस)∈Σपी1n2(एस)पी2

  • के लिए एस ∈ पी 2 के साथ एस ∩ एस ' अधिक से अधिक सभी के बीच एस ' ∈ पी 1 ; यदि कई विकल्प संभव हैं, तो कम से कम संघर्ष पैदा करें।n2(एस): =n1(एस')एस∈पी2एस∩एस'एस'∈पी1
  • तो अब कुछ के लिए एस ≠ एस ' , निर्दिष्ट कर उस के साथ शेयरों कम तत्वों एस " , एन 1 ( एस " ) = n 2 ( एस ) , सेट का नाम में पी 1 इसके साथ, यानी यह है कि सेट का नाम के लिए प्रतिस्पर्धा है दूसरा सबसे तत्वों साझा करता है।n2(एस)=n2(एस')एस≠एस'एस",n1(एस")=n2(एस)पी1
  • पूर्व शासन लागू नहीं किया जा सकता है, तो दोनों सेट के लिए चेक मौसम वे अन्य सेट के नाम के लिए प्रतिस्पर्धा कर सकते हैं वे के साथ कम तत्व साझा (वे अभी भी कुछ से अधिक तत्वों हो सकता है सेट कि इसके नाम सौंपा गया से !)। यदि हां, तो से एक के लिए है कि नाम असाइन एस , एस ' कि संबंधित सेट जिसका नाम वे के लिए प्रतिस्पर्धा कर सकते हैं के साथ साझा करता अधिक तत्वों; दूसरा पूर्व में परस्पर विरोधी नाम रखता है।एस"∈पी1एस,एस'
  • इस प्रक्रिया को पूरा करें जब तक कि सभी संघर्ष हल न हो जाएं। चूंकि पी 2 से कम सेट नहीं हैं , इसलिए पर्याप्त नाम हैं।पी1पी2

अब, आप विचार कर सकते हैं अपने तत्वों के बिट श्रृंखला, या तो विभाजन WRT यानी और डब्ल्यू 2 = n 2 ( 1 ) ⋅ ⋯ ⋅ एन 2 ( एन ) ( साथ n j ( मैं ) = n j ( एस ) , मैं ∈ एस ∈ पी जेw1=n1(1)⋅⋯⋅n1(n)w2=n2(1)⋅⋯⋅n2(n)nजे(मैं)=nजे(एस),मैं∈एस∈पीजे)। फिर, वांछित मात्रा , यानी बिट स्ट्रिंग्स के बीच हैमिंग दूरी।घएच(w1,w2)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.