अंकों के एक सेट से अधिकांश बिखरे हुए बिंदुओं का चयन करना


15

क्या N ( M < N ) के सेट से बिंदुओं के सबसेट का चयन करने के लिए कोई (कुशल) एल्गोरिथ्म है, जैसे कि वे अधिकांश क्षेत्र (आकार M के सभी संभावित सबसेट पर) को "कवर" करते हैं ?MNM<NM

मुझे लगता है कि अंक 2 डी विमान में हैं।

भोली एल्गोरिथ्म सरल है, लेकिन समय जटिलता के संदर्भ में निषेधात्मक है:

for each subset of N points
    sum distance between each pair of points in the subset
    remember subset with the maximum sum

मैं एक अधिक कुशल या अनुमानित विधि की तलाश में हूं।

उदाहरण, यहाँ एक विमान है जिसमें कुछ यादृच्छिक बिंदु हैं:

यहां छवि विवरण दर्ज करें

के लिए , मैं इस तरह का चयन अंक की उम्मीद:M=5

यहां छवि विवरण दर्ज करें

ध्यान दें चयनित बिंदु (लाल) पूरे विमान में बिखरे हुए हैं।

मुझे एक लेख मिला " EFFICIENTLY SELECTING SPATIALLY DISTRIBUTED KEYPOINTS FOR VISUAL TRACKING " जो इस समस्या से संबंधित है। हालांकि, यह मानता है कि अंक भारित हैं।



दुर्भाग्य से, आमतौर पर लगभग 1500-5000 है और एम 10-50 की तरह है। NM
लिबोर

क्या और N दोनों निश्चित हैं, या क्या आप M को भी अलग-अलग कर रहे हैं (जैसे, क्योंकि आप दूरियों के औसत को अधिकतम करना चाहते हैं , ऐसे में M के बढ़ने की स्थिति में और कमी आ सकती है)? MNMM
वोल्फगैंग बंगर्थ

1
मैं दृढ़ता से यह एनपी-मुश्किल है। यह एक अधिकतम वजन वाली गुत्थी समस्या से मिलता-जुलता है जहां दो कोने के बीच के किनारे का वजन उनके बीच यूक्लिडियन दूरी है। (मेरा मानना ​​है कि अधिकतम-क्लिक के लिए व्यावहारिक रूप से प्रभावी
उत्तराधिकारी

1
@hardmath क्षमा करें कि यह एक टाइपो था। मैंने यह बताने की कोशिश की कि मुझे क्या हासिल करना है। समस्या छवि सुविधा निष्कर्षण से आती है, जहाँ मुझे केवल कुछ बिंदु सुविधाओं को प्राप्त करने की आवश्यकता होती है, लेकिन उन्हें पूरी छवि में बिखेर दिया जाता है क्योंकि उनका उपयोग अनुमान बदलने के लिए किया जाता है और जब वे स्थानिक रूप से बिखरे होते हैं, तो अनुमान अधिक स्थिर होता है। शायद "एन्ट्रॉपी" एक बेहतर उपाय है - मैं पॉइंट्स को ऐसे चुनना चाहूंगा कि वे सभी जगह पर हों, जैसे कि अधिकतम एन्ट्रोपी राज्य में गैस। दूसरी ओर, मैं चुनिंदा बिंदुओं को दूर करने से बचने की कोशिश कर रहा हूं। M
लिबोर

जवाबों:


11

यहाँ एक अनुमानित समाधान है। चूँकि N इतना बड़ा है और M इतना छोटा है, तो निम्नलिखित के बारे में कैसे:

  1. N के उत्तल हल की गणना करें
  2. पतवार से एम अंक तक का चयन करें जो आपकी अधिकतम दूरी के मानदंडों को पूरा करता है।
  3. यदि चरण 2 आपको M से कम अंकों के साथ छोड़ता है, तो उस आंतरिक से 1 बिंदु का चयन करें जो पहले चयनित बिंदुओं से अपनी दूरी को अधिकतम करता है।
  4. चरण 3 को दोहराएं जब तक कि चयनित बिंदुओं की संख्या M न हो

इसके पीछे अंतर्ज्ञान यह है कि चूंकि एन >> एम , और आप एक दूसरे से यथासंभव दूर बिंदु चाहते हैं, वे संभवतः डेटा के किनारों के करीब होंगे, इसलिए आप पतवार के साथ शुरू कर सकते हैं और फिर पुनरावृति वहां से अपने तरीके से काम करें।

इसके अलावा, पतवार के साथ शुरू करके, आप अपनी प्रारंभिक खोज को एन से एन 1/2 तक कम कर देते हैं


अपडेट करें

यदि चरण 3 और 4 से ऊपर बहुत अधिक समय लग रहा है (क्योंकि आप अपने डेटासेट के आंतरिक रूप से परीक्षण कर रहे हैं) तो दो और विचार आपकी समस्या को गति देने के लिए हुए।

  1. बेतरतीब खोजें : कहते हैं आप पाया पी चरण 2. में पतवार पर अंक तो बेतरतीब ढंग से आकर्षित एम - पी आंतरिक भाग से इंगित करता है। X परीक्षणों के बाद सर्वश्रेष्ठ सेट का चयन करें।
  2. सिम्युलेटेड एनीलिंग : सबसे छोटी बाउंडिंग बॉक्स की गणना करें जो आपके डेटासेट को कवर करती है (कुल्हाड़ियों के साथ गठबंधन नहीं करना पड़ता है, झुका जा सकता है)। फिर उस बाउंडिंग बॉक्स पर M समान रूप से वितरित ग्रिड बिंदुओं के एक सेट को परिभाषित करें । ध्यान दें, ये बिंदु आवश्यक रूप से आपके किसी भी डाटासेट बिंदु के साथ मेल नहीं खाते हैं। फिर प्रत्येक ग्रिड बिंदु के लिए अपने डेटासेट में k -nearest पड़ोसियों को ढूंढें। प्रत्येक एम एक्स के संयोजन के माध्यम से चलाएं और उस एक का चयन करें जो आपकी अधिकतम दूरी के मानदंडों को संतुष्ट करता है। दूसरे शब्दों में, आप एक अच्छा प्रारंभिक समाधान खोजने के लिए शुरुआती ग्रिड का उपयोग बूटस्ट्रैप के रूप में कर रहे हैं।

धन्यवाद। हो सकता है कि गलत तरीके से प्रश्न तैयार किया गया हो। मैं ऐसे बिंदुओं के सेट के लिए लक्ष्य कर रहा हूं, जैसे कि वे अधिकांश क्षेत्र को "कवर" करते हैं। मैंने सोचा कि बस दूरी का मापदंड पर्याप्त है लेकिन ऐसा लगता है कि कुछ और जोड़ने की आवश्यकता है।
लिबोर

M

1
शायद आपकी समस्या बताते हुए एक और औपचारिक तरीका यह है कि आप आकार M का एक tessellation चाहते हैं जो कवर करता है एन है और औसत टेस्यूलेशन पहलू क्षेत्र को कम करता है? मुख्‍य क्षेत्रों को कम से कम करना, बिंदुओं को फैलाने का एक तरीका प्रतीत होता है और यह सुनिश्चित करता है कि वे एक साथ न टकराएं।
dpmcmlxxvi 16

हाँ। मैं ग्रिड का उपयोग करने से बचना चाहता था क्योंकि यदि अंक ग्रिड लाइनों के आसपास आकस्मिक क्लस्टर किए जा सकते हैं और फिर उन्हें चयन में क्लस्टर किया जाएगा।
लिबोर

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

6

NM

MM

M1M=3,4,5

M=31M=4M=51

अगर हम परिधि में अंकों के चयन से बचना चाहते हैं, तो एक अलग उद्देश्य उपयोगी साबित होता है। अंकों के बीच न्यूनतम दूरी का अधिकतमकरण एक ऐसी कसौटी है। संबंधित समस्याओं को StackOverflow पर , Computer Science SE पर , Math.SE में , और MathOverflow में प्रस्तुत किया गया है

इस दृष्टिकोण में कुछ अंतर्दृष्टि के लिए पैदावार के लिए एक बिंदु के लिए आंतरिक बिंदु देता है, पैकिंगM लिए इसकी किसी न किसी तुल्यता पर विचार करेंDMD


1

ठीक है, इसलिए आप यूक्लिडियन विमान में एन बिंदुओं के एक सेट से एम अंक का चयन करना चाहते हैं, ताकि चयनित बिंदुओं की जोड़ीदार दूरी का योग अधिकतम हो, सही?

मानक स्थानीय खोज एल्गोरिथ्म बहुत तेज़ है और एक बहुत अच्छा सन्निकटन प्रदान करता है। एम। में रनटाइम रैखिक है और एम। में द्विघात है इसका सन्निकटन अनुपात 1 - 4 / एम है। इसका मतलब है कि एम बढ़ने के साथ अनुपात बेहतर हो जाता है। उदाहरण के लिए, M = 10 के लिए इसे 60% इष्टतम मूल्य मिलता है, और M = 50 के लिए इसे 92% इष्टतम मूल्य मिलता है।

एल्गोरिथ्म सामान्य आयाम के यूक्लिडियन स्थानों के लिए भी काम करता है। इस मामले में, समस्या एनपी-हार्ड है। लेकिन विमान में, यह ज्ञात नहीं है कि यह एनपी-हार्ड है।

स्रोत यह कागज है । उम्मीद है की यह मदद करेगा! सबसे अच्छा, अल्फांसो



1
मैंने पहले ही इसे "पेपर से डिस्क कवरिंग के माध्यम से" एल्गोरिदम का उपयोग करके हल कर लिया है "छवि ट्रैकिंग पर 2011 के 18 वें IEEE अंतर्राष्ट्रीय सम्मेलन में कुशलता से दृश्य ट्रैकिंग के लिए स्थानिक रूप से वितरित किए गए कुंजीपटों का चयन"। IEEE, 2011
Libor

1
अल्फांसो, कृपया सुझाए गए कागज के लिए अपनी संबद्धता स्पष्ट करें।
nicoguaro

0

एक समाधान है:

  • में बाउंडिंग आयत बनाएँO(n)

  • इस बाउंडिंग आयत के अंदर M को कृत्रिम रूप से वितरित अंक भी बनाएं , कुछ M दूसरों की तुलना में अधिक कठिन हैं। आपके मामले में आयत के कोनों में चार और केंद्र में एक

  • O(n(log(n)))

  • O(m(log(n)))

O(n(log(n)))MN

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