performance - Maximise sum of pairwise distances in array -


एक सूची की कल्पना करें [e1, e2, ..., en] और एक फ़ंक्शन एफ (ई 1, ई 2) - & gt;

  f (e, e) = 0 e1! = E2 = & gt; संख्या  एफ (ई 1, ई 2) & gt; 0 एफ (ई 1, ई 2) & lt; = f (e1, e3) + f (e3, e2)  

लक्ष्य सूची को क्रमबद्ध करने के लिए है ताकि किड़ी की दूरी की दूरी तत्व अधिकतम है।

मैं एक ओ (n ^ 2) लालची एल्गोरिथ्म के साथ आया था जो ऐसा कर रहा है:

  1. सभी जोड़ीदार दूरी (या त्रिकोणीय मैट्रिक्स) की टेबेल
  2. सबसे बड़ी दूरी की तलाश करें, उस जोड़ी को एक प्रारंभिक बिंदु के रूप में चुनें (चरण 1 में किया जा सकता है)
  3. सूची को बढ़ाएं

कृपया मुझे बताएं कि क्या यह गलत है I नि: शुल्क तत्व जोड़ता है जो कि अधिकतम राशि को बढ़ाता है (संभवतः किसी लिंक किए गए हैश सेट का उपयोग करके अब तक उठाए गए तत्वों का ट्रैक रख सकता है)। क्या आप एक तेजी से एल्गोरिथम या पर्याप्त (गैर-जटिलता) स्पीड यूप के साथ आ सकते हैं? और इस समस्या को सुलझाने के लिए न्यूनतम जटिलता क्या है?

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

(शायद यह समस्या किसी ज्ञात समस्या के बराबर है, मैं जानना चाहता हूं कि कौन सा एक है)

आपकी इष्टतम क्रमबद्धता एक पथ को जन्म देती है जहां प्रत्येक नोड आपके नामांकित सूची में अगले नोड से जुड़ा होता है इस प्रकार आप सबसे लंबे समय तक सरल मार्ग की तलाश कर रहे हैं, जो आपके जैसे मीट्रिक स्पेस के लिए भी एनपी-कठिन है (सबसे लंबे समय तक पथ समस्या पर विकिपीडिया देखें)। आपके लालची समाधान में समस्या है कि यदि आप दो तत्वों को चुनते हैं जो दूर की दूरी के अलावा हैं, तो अगर दो अतिरिक्त तत्व हैं जो कि समान हैं, जो कि रेखा के मध्य बिंदु पर दो मूल चयनित तत्वों को जोड़ते हैं, तो इसके लिए इष्टतम समाधान ये 4 अंक वास्तव में पहले समापन बिंदु से एक श्रृंखला को केंद्र बिंदुओं में से एक दूसरे बिंदु तक दूसरे केंद्र बिंदु तक बनाते हैं, मूल रूप से सबसे आगे के अलग-अलग कोने को जोड़ने के बजाय (जो तब केंद्र बिंदु से कनेक्ट होना होता है, और फिर दूसरे केंद्र बिंदु से दूरी 0 पर जोड़ने से, त्रिकोण असमानता द्वारा एक छोटा रास्ता बनाते हैं)।


Comments

Popular posts from this blog

sqlite3 - UPDATE a table from the SELECT of another one -

c# - Showing a SelectedItem's Property -

javascript - Render HTML after each iteration in loop -