O (n log n) में अंकों की सबसे छोटी जोड़ी दूरी ज्ञात कीजिए?


11

निम्नलिखित अभ्यास छात्रों को सौंपा गया है जिनकी मैं देखरेख करता हूं:

प्लेन में पॉइंट्स को देखते हुए , एक एल्गोरिथ्म तैयार करें, जो उन सभी पॉइंट्स को जोड़े जो सभी पॉइंट्स के बीच कम से कम दूरी पर हों। एल्गोरिथ्म समय में चलना चाहिए ।o ( n 2 )n(n2)

वहाँ एक (अपेक्षाकृत) सरल विभाजन और जीत एल्गोरिथ्म है जो कार्य को समय में हल करता है ।Θ(nलॉगn)

प्रश्न 1 : क्या कोई एल्गोरिथ्म है जो दी गई समस्या को सबसे खराब समय हल करता है ?(nलॉगn)

मुझे क्या संदेह था कि यह संभव हो सकता है एक परिणाम है जो मुझे कुछ चर्चा (संदर्भ की सराहना) में देखा गया है। यह कुछ की पंक्तियों के साथ कहा गया है कि अंकों की एक स्थिर संख्या से अधिक नहीं में विमान में कुछ बिंदु चारों ओर त्रिज्या एक चक्र के अंदर में साथ व्यवस्थित किया जा सकता है। शामिल बिंदुओं में से किसी दो के बीच न्यूनतम दूरी। मुझे लगता है कि , केंद्र में साथ एक समभुज षट्भुज बनाने वाले बिंदु (चरम मामले में)। पी आर आर आर सी = 7 पीसीएनपीआरआरआरसी=7पी

उस स्थिति में, निम्न एल्गोरिथम उन्हें चरणों में समस्या का समाधान करना चाहिए ।n

fun mindist [] | p::[] = INFINITY
|   mindist p1::p1::[] = dist(P[0], P[1])
|   mindist p::r = let m = mindist(r) in
                     min(m, nextNeighbour(p, r, m))
                   end

ध्यान दें कि यह (होने का दावा किया जाता है) रैखिक समय में क्योंकि केवल अंकों की एक निरंतर संख्या इससे rदूर नहीं हो सकती mहै p(ऊपर दिए गए कथन को मानते हुए); नया न्यूनतम खोजने के लिए केवल इन बिंदुओं की जांच की जानी चाहिए। निश्चित रूप से एक पकड़ है; आप कैसे लागू करते हैं nextNeighbour(शायद रैखिक समय में प्रीप्रोसेसिंग के साथ)?

प्रश्न 2 : अंक और बिंदु का एक सेट दें । चलो के साथपी आर एम आरआरपीआरआर

मिनट{मैंरोंटी(पी1,पी2)|पी1,पी2आर}

तथा

आरपी,: ={पी'|पी'आरमैंरोंटी(पी,पी')}

मान लें । क्या यह संभव है कि में (amortized) time से न्यूनतम दूरी के साथ हो ? (आप मान सकते हैं जांच अंक जोड़कर निर्माण किया जा करने के लिए एक के बाद एक।) पी 'आर पी , m पी ( 1 ) आर पीआरपी,पी'आरपी,पीहे(1)आरपी


2
मैं एक कीवर्ड के रूप में "निकटतम जोड़ी" के साथ खोज करना चाहता हूं।
योशियो ओकामोटो

यह अब तक सभी मानक सामान हैं, पहले दो अध्याय यहाँ देखें: goo.gl/pLiEO
Sariel Har-Peled

Ps। यदि आप अपेक्षित समय चाहते हैं, तो आप डेलुनाय त्रिकोण की गणना भी कर सकते हैं, जिसमें न्यूनतम दूरी होती है।
डोमोटर

प्रश्न 1 के बाद आप लिखते हैं "एक स्थिर संख्या से अधिक बिंदुओं को विमान में त्रिज्या r के एक वृत्त के अंदर किसी भी बिंदु पर व्यवस्थित किया जा सकता है, जिसमें p और किसी अन्य बिंदु के बीच न्यूनतम दूरी होती है।" यह निश्चित रूप से सच नहीं है: आप त्रिज्या आर के सर्कल पर किसी भी संख्या में अंक ले सकते हैं। आपका कथन सही है यदि r किसी भी दो बिंदुओं के बीच की न्यूनतम दूरी है, जिस स्थिति में प्रमाण काफी सरल है।
डोमोटर

पहला प्रश्न पाठ्यपुस्तक सामग्री है, जैसा कि पहले ही बताया गया है: निश्चित रूप से अनुसंधान स्तर नहीं। मैं दूसरा सवाल नहीं समझता: किसी भी , आप जिस लिए पूछ रहे हैं वह मौजूद नहीं है या में लिए निकटतम पड़ोसी है । तो यह सवाल 1 से अलग कैसे है? आप क्या कर रहे हैं (यानी यदि यह एक डेटा संरचना सवाल है कि अपडेट और प्रश्न क्या हैं)? पी ' पी आरपी'पीआर
साशो निकोलेव

जवाबों:


12

मानक मॉडल में से कम समय में समस्या को हल करना असंभव है , जैसे बीजीय निर्णय पेड़ों का उपयोग करना। यह याओ और बेन-या के काम से निम्नानुसार है कि इस मॉडल में यह तय करना संभव नहीं है कि क्या इनपुट संख्याओं का एक सेट अलग है या नहीं (देखें http://people.bath.ac.uk/masnnv /Teaching/AAlg11_8.pdf )। अपनी समस्या के मामले में, कल्पना करें कि वे सभी वास्तविक रेखा पर हैं। यदि दो बिंदु समान हैं, तो आपका आउटपुट दूरी शून्य के साथ दो अंक होगा, जबकि अन्यथा नहीं, इसलिए आपकी समस्या का समाधान DISTINCT NUMBERS समस्या भी हल करेगा। यदि आप मान लेते हैं कि आपके सभी अंक अलग-अलग हैं, तो बस कोn मैं ε एक्स मैं n ε 2 n ε Ω ( एन लॉग इन करें n )cnlognniϵxiDISTINCT NUMBERS समस्या के इनपुट, इस मामले में यदि आपका आउटपुट अधिकांश , तो संख्याएँ बिल्कुल अलग नहीं हैं। (हालांकि इस मामले में आपको एक वादा संस्करण का उपयोग करना होगा जहां किसी भी दो अलग-अलग संख्याओं का अंतर कम से कम , लेकिन मुझे लगता है कि एक ही प्रमाण यह दिखाने के लिए काम करता है कि आपको इसमें भी है मामला।)nϵ2nϵΩ(nlogn)


वास्तव में, धन्यवाद। यह प्रश्न 2 (नकारात्मक) का उत्तर देता है।
राफेल

आपके द्वारा बताई गई समस्या को स्पष्ट रूप से तत्व विकृति समस्या के रूप में भी जाना जाता है ।
राफेल

@ सार्इल हर-पेलेड का संदर्भ ( goo.gl/pLiEO ) निकटतम जोड़ी खोजने के लिए एक व्यावहारिक रैखिक-समय एल्गोरिथ्म प्रस्तुत करता है। वह दस्तावेज़ इस तर्क को सीधे संबोधित करता है, और बताता है कि यह लागू नहीं होता है क्योंकि एल्गोरिथ्म एक अधिक शक्तिशाली कम्प्यूटेशन मॉडल का उपयोग करता है।
केविन क्लाइन

1
हां, लेकिन सवाल विशेष रूप से सबसे खराब स्थिति में चल रहा है। लेकिन मैं इस बात से सहमत हूं कि मेरी सभी टिप्पणियां पहले से ही सरिएल की थीसिस में दिखाई देती हैं।
डोमोटर


0

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


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

केवल अपेक्षा में, डोमोटरप्स उत्तर देखें।
राफेल

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

4
"अधिक है कि Rabin का उपयोग करता है" को पुन:: भी पूर्णांक के लिए वास्तविक संख्या आदानों को गोल करने की क्षमता। इसके साथ बहुत सावधान रहने की जरूरत है: यदि आप गणना का एक मॉडल सेट करते हैं जिसमें कोई मानक अंकगणितीय संचालन कर सकता है और वास्तविक संख्याओं पर गोलाई कर सकता है, प्रत्येक ऑपरेशन में लगातार समय में, तो बहुपद समय में PSPACE- पूर्ण समस्याओं को हल करना संभव है इस मॉडल में। लेकिन राबिन केवल इनपुट संख्याओं (विभिन्न पुनरावृत्तियों में सटीकता के विभिन्न स्तरों तक) को गोल करता है, और गोलाई का यह परिचालित रूप समस्याग्रस्त है।
डेविड एप्पस्टीन

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