लगभग प्रदर्शन की लागत। निकटतम पड़ोसी एक स्किप क्वाडट्री में खोज करते हैं


10

नोट : मेरे उत्तरों में प्रश्न को बहाल कर दिया गया है: अब मान लें कि हम समय में सबसे कम भाई पूर्वजों को ढूंढ सकते हैं , क्या ANN वास्तव में में किया जा सकता है ?O ( लॉग एन )O(1)O(logn)


Quadtrees कुशल स्थानिक सूचकांक हैं। मेरे पास एक पहेली है जो एक संकुचित पड़ोसी संरचना में एक निकटतम पड़ोसी खोज के कार्यान्वयन के साथ है जैसा कि [2] में वर्णित है। (विवरण में जाने के बिना, खोज तथाकथित समतुल्य वर्गों के साथ ऊपर-नीचे हो रही है, एक विषुवतीय पथ की पूंछ नोड में समाप्त हो रही है। संलग्न छवि में यह बिंदुओं से भरे दक्षिण-पूर्व में कोई भी नोड हो सकता है)।

काम करने के लिए उनके एल्गोरिथ्म के लिए, प्रत्येक को प्रत्येक नोड के लिए बनाए रखना चाहिए - एक वर्ग जिसमें कम से कम दो गैर-खाली क्वाड्रेंट हों - प्रत्येक दिशा के लिए पॉइंटर्स (पदानुक्रम में निकटतम) चार दिशाओं (उत्तर, पश्चिम, दक्षिण में से प्रत्येक में पूर्वज नोड) , पूर्व)। ये हरे रंग के तीरों से संकेत देते हैं कि नोड्स के पश्चिम की ओर पूर्वज (पूर्वज वर्ग के केंद्र में तीर बिंदु)।

कागज का दावा है कि इन बिंदुओं को बिंदु सम्मिलन और विलोपन के दौरान O (1) में अद्यतन किया जा सकता है। हालांकि जब हरे बिंदु के सम्मिलन को देखते हुए, ऐसा लगता है कि मुझे किसी भी मनमाने ढंग से संख्या को अद्यतन करने की आवश्यकता है, इस मामले में उनमें से छह।

मैं निरंतर समय में इस पॉइंटर अपडेट को करने के लिए एक ट्रिक की उम्मीद कर रहा हूं। हो सकता है कि अप्रत्यक्ष रूप से शोषण हो सकता है?

क्वाडट्री से पहले (बाएं) और बाद में (दाएं) बिंदु सम्मिलन

संपादित करें:

कागज से संबंधित खंड 6.3 है, जहां यह पढ़ता है: "यदि रास्ता झुकता है, तो के अलावा सबसे कम पूर्वजों , हमें भी दिशाओं में से प्रत्येक के लिए सबसे कम दिशाओं पर विचार करना चाहिए। पूर्वज जो उस दिशा की ओर जाता है [...] से इन वर्गों को खोजना समय प्रति वर्ग में किया जा सकता है यदि हम अतिरिक्त को में प्रत्येक वर्ग से जो प्रत्येक दिशा के लिए इसके निकटतम पूर्वजों की ओर इशारा करता है। इन बिंदुओं को किसी बिंदु के सम्मिलन या विलोपन के दौरान समय में भी अद्यतन किया जा सकता है । "q 2 d q q O ( 1 ) 2 d Q 0 O ( 1 )log(c/ε)q2dqqO(1)2dQ0O(1)

] , 2005।


2
यह एक समय हो गया है, इसलिए मुझे ठीक से याद नहीं है, लेकिन आज सुबह पेपर को रीक्रिएट करने पर (दोनों arxiv और जर्नल वर्जन में) मुझे पता नहीं चल पाया कि यह कहां कहता है कि हम आपके द्वारा बताए गए बिंदुओं को रखते हैं। मुझे लगा कि हम केवल पेरेंट-चाइल्ड पॉइंटर्स और क्रॉस-सैंपल पॉइंटर्स रख रहे हैं। तो हो सकता है कि आप कागज़ के उस पाठ को अधिक सटीक रूप से इंगित कर सकें जो कहता है कि आप इसे कहते हैं।
डेविड एप्पस्टीन

2
हाय डेविड, एक नज़र लेने के लिए धन्यवाद। ANN खोज अंतिम खंड (6) है। समस्या अंजीर में इंगित की गई है। 7 (बी) जो मोटे तौर पर मैं ऊपर चित्रण में रेखांकन किया है, अगर क्ष नीचे बाईं ओर कहीं है। मैंने खंड 6.3 से पाठ के विशेष भाग को शामिल करने के लिए प्रश्न को संपादित किया है। मुझे इस बारे में कुछ विचार हैं कि हो सकता है कि मैं समतुल्यता की परिभाषा के साथ आराम करूं, लेकिन मुझे यकीन नहीं है कि मैं यह साबित कर सकता हूं कि कोई भी वैकल्पिक गिनती लक्षित प्रदर्शन का उल्लंघन नहीं करती है ...
11:39 पर 0

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

2
अापका बहुत - बहुत धन्यवाद। वर्ण गणना और लेआउट के कारणों के लिए, मैं एक उत्तर जोड़ूंगा जो मेरे 'सहज विचार' को दर्शाता है, शायद यह एक प्रारंभिक बिंदु है।
0__

जवाबों:


11

डेविड की तरह, मुझे नहीं पता कि जोनाथन ने 2 ^ डी पॉइंटर्स के बारे में उस टिप्पणी को क्यों रखा। उनकी जरूरत नहीं है। जैसा कि डेविड ने ऊपर उल्लेख किया है, आवश्यक संपत्ति यह है कि जब हम Q_0 में लीफ v के लिए एक बिंदु स्थान कर रहे हैं, तो स्किप क्वैडट्री में सिबलिंग नोड्स (और उनके बक्से) को याद रखना पर्याप्त है। जब हम पी से एक बॉक्स संसाधित करते हैं, तो हम अपने क्वेरी बिंदु के निकटतम पत्ती बॉक्स के लिए एक बिंदु स्थान करते हैं, जैसे ही हम नीचे जाते हैं, सिबलिंग बक्से को सम्मिलित करते हैं। ऐसा लगता है कि यह कमोबेश आपके उत्तर के समान ही होगा। इसके अलावा, यह प्रक्रिया बहुत समान है, उदाहरण के लिए, निम्न पेपर में अनुमानित बिंदु स्थान कैसे किया जाता है: आर्य, सुनील और माउंट, डेविड एम। और नेतन्याहू, नाथन एस और सिल्वरमैन, रूथ और वू, एंजेला वाई। "निश्चित आयामों की खोज करने वाले निकटतम पड़ोसी के लिए एक इष्टतम एल्गोरिथ्म", जेएसीएम, 1998। वास्तव में,


ये अच्छी खबर है! मुझे यकीन नहीं था कि अगर गो-डाउन कदम के दौरान भाई-बहनों को जोड़ने से समग्र रूप से सबसे खराब मामले की लागत बदल जाएगी या नहीं, लेकिन मुझे लगता है कि नहीं। मैंने आर्य एट अल द्वारा पेपर में देखा था, लेकिन मुझे यह आपके क्वाडट्री पेपर की तुलना में बहुत कम सुलभ लगा :)
0:56

5
वाह! Cstheory.SE में आपका स्वागत है!
Hsien-Chih चांग 張顯 '

5

एक व्यक्ति अपने z- आदेश के अनुसार अंकों को संग्रहीत करने वाले डेटा-संरचना के स्किप-लिस्ट कार्यान्वयन के रूप में क्वाडट्री को छोड़ सकते हैं। यह (यकीनन) कम से कम वैचारिक रूप से सरल है ...

: यहाँ अध्याय 2 देखें http://goo.gl/pLiEO

और हाँ, यह मानते हुए कि आप निरंतर समय में कुछ बुनियादी z- क्रम संचालन कर सकते हैं, आप निश्चित रूप से लघुगणक समय में ANN कर सकते हैं। उपर्युक्त अध्याय से यह भी पता चलता है कि यदि कोई संकुचित चतुर्भुज चाहता है तो विचित्र संचालन से बचने का कोई तरीका नहीं है। ध्यान दें, कि LCA ऑपरेशन आवश्यक नहीं है ...


3
हां, और निर्धारक संस्करण एक ही जेड-ऑर्डर के लिए 2-3 पेड़ों की तरह हैं।
डेविड एप्पस्टीन

लिंक के लिए धन्यवाद, मैंने आपका पेपर पहले देखा है, वास्तव में। किसी भी मामले में, मैं दिए गए एल्गोरिदम के साथ बाध्यता को आनुभविक रूप से सत्यापित नहीं कर सका। मुझे लगता है कि लेम्मा 7 का संदर्भ, जिसका उपयोग प्रमेय 13 में राउंड की संख्या को सीमित करने के लिए किया जाता है, अमान्य हो सकता है, क्योंकि यह एक निरंतर त्रिज्या मानता है , जबकि एएनएन में खोज त्रिज्या क्रमिक रूप से बदलती है, और इसी तरह महत्वपूर्ण वर्गों का सेट। ? r
0__

खोज प्रक्रिया के दौरान त्रिज्या निश्चित सिकुड़ जाती है। मैं तर्कपूर्ण रूप से आशावादी हूं कि तर्क सही है।
सरील हर-पेलेड

1

मैं यह भी सहजता से महसूस करता हूं कि कोई भी उन बिंदुओं के बिना रह सकता है, और जैसा कि मुझे किसी बिंदु पर हार्डडिस्क को सभी नोड्स को बनाए रखने की आवश्यकता है, पॉइंटर्स में कोई भी कटौती महान है।

मेरा विचार मोटे तौर पर निम्नानुसार है: सबसे अच्छा उम्मीदवार बिंदु (पत्ती) , हम प्रत्येक दौर में सबसे खराब दूरी का ट्रैक भी रखते हैं, आर एम एक्स । एक सबसे खराब दूरी d i s t ( v , q ) एक नोड q के सभी कोनों की अधिकतम दूरी क्वेरी बिंदु v होगी , चाहे v एक वर्ग के अंदर हो या बाहर।lbestrmaxdist(v,q)qvv

एक राउंड इस तरह है: यदि खाली है, तो l b e s t , यदि कोई था तो वापस करें । अन्यथा डिलीट-मिनट Q 0 में वर्तमान p 0 देता है । प्रारंभ आर एम एक एक्स के लिए एल बी एस टी (या के लिए सेट अगर कोई सबसे अच्छा उम्मीदवार अभी तक देखा गया था)। पहले, क्यू 0 में पी 0 के प्रत्येक गैर-खाली बच्चे का परीक्षण करें । यदि यह चाइल्ड क्यू एक पत्ती है, तो l b e s t और अपडेट करेंPlbestp0Q0rmaxlbestp0Q0qlbest यदि आवश्यक हो तो। यदि क्ष एक नोड, calculate हैमैं रों टी ' ( क्ष , वी ) और d मैं रों टी ( क्ष , वी ) , बाद किया जा रहा है सबसे अच्छा दूरी: या तो शून्य, अगर वी के अंदर झूठ क्ष , या सभी के कम से कम दूरी के कोनों क्ष को वीrmaxqdist(q,v)dist(q,v)vqqv

यदि , तो क्ष , अन्यथा यह रखने के लिए। यदि रखी गई नोड्स की संख्या odes 2 है , तो P पर उन नोड्स को धक्का दें । दौर का अंत।dist(q,v)>rmaxq2P

अन्यथा, मूल खोज के समान आगे बढ़ें: ज्ञात करें , उच्चतम संभव क्यू जे में 0 से पी 0 के लिए संबंधित नोड , और वहां से शुरू करें: फिर से, एक समान बच्चे के लिए उतरने के लिए पूछने के बजाय, सभी बच्चों के अनुसार परीक्षण करें। पिछले प्रक्रिया, यह है कि, जिनकी सबसे अच्छा दूरी से अधिक छोड़ आर हूँ एक एक्स । यदि इस परीक्षण के बाद एक बच्चा रह गया, तो उसके पास उतरें और दोहराएं। यदि कोई बच्चा नहीं रहा, तो Q j - 1 पर जाएं और दोहराएं। यदि परीक्षण Q 0 में किया गया था , तो राउंड समाप्त हो गया है।qp0QjrmaxQj1Q0

rmaxP


EDIT (अप्रैल 2013)

rmax

दुर्भाग्य से, कोई रोग संबंधी मामलों का निर्माण कर सकता है (नीचे चित्र देखें; क्वेरी पॉइंट बॉटम सेंटर है) जहां प्रदर्शन ) तक कम हो जाता हैO(n)

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


0

O(ϵ1d(logn+logϵ1))

ϵ=1v

Q0

O(n)d=2ϵ=1O(logn)

इसलिए जब तक मैं कुछ महत्वपूर्ण याद नहीं कर रहा हूं, एल्गोरिथ्म बताई गई गति को प्राप्त नहीं कर सकता है। कोई टिप्पणी या विचार?

ट्रेवर्सल

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