2 डी में दो सेटों के बीच निकटतम जोड़ी


11

2-आयामी विमान में मेरे पास दो सेट के अंक हैं। मैं बिंदुओं की निकटतम जोड़ी को खोजना चाहता हूं जैसे कि , और बीच यूक्लिडियन की दूरी यथासंभव छोटी है। यह कितनी कुशलता से किया जा सकता है? क्या यह समय में किया जा सकता है , जहां?एस , टी एस एस टी टी एस , टी हे ( एन लॉग इन करें n ) n = | एस | + | टी |S,Ts,tsStTs,tO(nlogn)n=|S|+|T|

मुझे पता है कि अगर मुझे एक भी सेट दिया जाता है , तो एक मानक डिवाइड-एंड-कॉनकॉर एल्गोरिथ्म का उपयोग करके समय , में की निकटतम जोड़ी को खोजना संभव है । हालाँकि, वह एल्गोरिथ्म दो सेटों के मामले को सामान्य नहीं करता है, क्योंकि या भीतर दो निकटतम बिंदुओं के बीच की दूरी के बीच कोई संबंध नहीं है । उन सेटों के बीच दो निकटतम बिंदुओं के बीच की दूरी।एस , एस 'एस ( n लॉग इन करें n ) एस टीSs,sSO(nlogn)ST

मैंने सेट को -d ट्री में संग्रहीत करने के बारे में सोचा , फिर प्रत्येक , निकटतम पड़ोसी क्वेरी का उपयोग करके से में निकटतम बिंदु खोजने के लिए । हालाँकि, सबसे खराब स्थिति वाला समय समय जितना खराब हो सकता है । ऐसे परिणाम हैं जो कहते हैं कि यदि के अंक बेतरतीब ढंग से वितरित किए जाते हैं, तो प्रत्येक क्वेरी के लिए अपेक्षित रनिंग टाइम , इसलिए हम अपेक्षित रनिंग टाइम साथ एक एल्गोरिथ्म प्राप्त करेंगे यदि हम गारंटी दी गई थी कि अंक बेतरतीब ढंग से वितरित किए गए हैं - लेकिन मैं एक एल्गोरिथ्म की तलाश कर रहा हूं जो अंकों के किसी भी संग्रह के लिए काम करेगा (जरूरी नहीं कि यादृच्छिक रूप से वितरित हो)।कश्मीर रों एस टी एस ( n 2 ) टी ( लॉग एन ) हे ( एन लॉग इन करें n )TksSTsO(n2)TO(logn)O(nlogn)

प्रेरणा: एक कुशल एल्गोरिथ्म इस अन्य प्रश्न के लिए उपयोगी होगा ।

जवाबों:


10

हां, यह समय हो सकता है। लिए एक वोरोनोई आरेख बनाएँ । फिर, प्रत्येक बिंदु के लिए, वोरोनोई आरेख के किस सेल में निहित है, उस सेल का केंद्र में बिंदु जो सबसे करीब है ।टी एस एस टी टी रोंO(nlogn)TsStTs

आप समय में वोरोनोई आरेख का निर्माण कर सकते हैं , और प्रत्येक क्वेरी (सेल युक्त ) समय में की जा सकती है , इसलिए कुल चलने का समय समय।s O ( लॉग एन ) O ( n लॉग एन )O(nlogn)sO(logn)O(nlogn)


अच्छा है, मैं क्या कर सकता था की तुलना में बहुत आसान :)।
एनिलगिंडी

अच्छा तरीका! लिंक मदद करेगा, खासकर चीजों की क्वेरी पक्ष के लिए। मैं एक विकिपीडिया पृष्ठ दिखा सकता हूं जो यह दिखा रहा है कि सामान्य बिंदु स्थान समस्या को समय में हल किया जा सकता है , लेकिन क्या वोरोनोई कोशिकाओं के विशेष मामले के लिए एक अच्छा तरीका है? मेरी खोज ने केवल इस उत्तर को बदल दिया , जो इसे तरीके से करता है। O ( n )O(logn)O(n)
j_random_hacker

पॉइंट लोकेशन की समस्या की जटिलता आमतौर पर कुल संख्या (वर्नोनोई आरेख के यहाँ) के संदर्भ में दी गई है। यह संख्या में अंकों की संख्या से भी बड़ी है और। मुझे यकीन नहीं है कि अगर संख्याओं की संख्या , तो क्या यह है? एन = | एस | + | टी | ( एन )Tn=|S|+|T|O(n)
अल्बजेनो

1
@Albjenow, मुझे यकीन नहीं है कि यह आपकी चिंता को संबोधित करता है, लेकिन हाँ, 2 आयामों में, मेरा मानना ​​है कि बिंदुओं पर एक वोरोनोई आरेख में संख्याओं की संख्या (मुझे याद है कि यह या है ऐसा कुछ)। O ( n ) 6 nnO(n)6n
डीडब्ल्यू

यह सही लगता है । math.stackexchange पर यह सवाल सही है ।
एल्बजेनो नोव

5

मैं एक उत्तर में अपनी टिप्पणी का विस्तार कर रहा हूं, क्योंकि मैंने एक अर्ध-संतोषजनक उत्तर दिया है। यह केवल -distance के लिए समस्या हल करता है । यह उत्तर मूल रूप से गलत है।L1

यह पेपर उस स्थिति के लिए आयामों में निकटतम जोड़ी को खोजने की समस्या को हल करता है जब सेट को में एक हाइपरप्लेन द्वारा अलग किया जाता है ।( एन लॉग डी - 1 एन )dO(nlogd1n)

दो आयामों के लिए, यह आपके द्वारा में आपके प्रश्न के लिए प्राथमिक प्रेरणा के रूप में संदर्भित उत्तर में मामले को हल करता है । इसका उपयोग डी समस्या के सामान्य मामले को हल करने के लिए भी किया जा सकता है ।O ( n लॉग 2 एन )O(nlogn)O(nlog2n)

दो सेट के बिंदुओं को 2 डी में देखते हुए , उन्हें 3 डी स्पेस में एम्बेड करें, सेट को कुछ और दिशा में by सेट करें। की पसंद लेने के द्वारा अंक के निकटतम जोड़ी के चुनाव को प्रभावित नहीं किया जा सकता है (प्रत्येक इनपुट समन्वय के लिए और दोहरीकरण परिशुद्धता बिट्स) अपने इनपुट अंकों की परिशुद्धता की तुलना में छोटा। उद्धृत पेपर से 3D एल्गोरिथ्म का उपयोग करें।एस - δ जेड टी δ जेड जेड δ z δ zS,TSδzTδzzδzδz


+1, लेकिन उस कागज के बारे में कुछ बातें (जो मैंने अभी पढ़ना शुरू किया है): (i) वे केवल आयताकार (मैनहट्टन) दूरी के मामले के लिए समस्या को हल करने का दावा करते हैं ; (ii) मुझे समझ नहीं आ रहा है कि वे ऐसा क्यों सोचते हैं कि पी पर क्षेत्र । 2 में ठीक 1 अंक शामिल है। मैं मान लिया था कि में बिंदु है मंझला y सह ord साथ में , और में बिंदु है मंझला y सह ord साथ में , लेकिन मैं नहीं दिख रहा है कि कैसे ऊपर इस से पालन कर सकते हैं। पी एम पी पी क्ष मीटर क्यू क्यूP2pmPPqmQQ
j_random_hacker

1
@j_random_hacker पेपर केवल L1 दूरी के लिए समस्या हल करता है और यह उत्तर गलत है :)। और मुझे लगता है कि यह अक्षर :) है। l
anelguindy

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