कवरेज समस्या (ट्रांसमीटर और रिसीवर)


14

मैं निम्नलिखित कवरेज समस्या को हल करने का प्रयास करता हूं।

1 किमी के कवरेज क्षेत्र और एन रिसीवर के साथ ट्रांसमीटर हैं । ( एन लॉग एन ) में तय करें कि सभी रिसीवर किसी भी ट्रांसमीटर द्वारा कवर किए गए हैं। सभी reveivers और ट्रांसमीटरों का उनके x और y निर्देशांक द्वारा प्रतिनिधित्व किया जाता है।nnO(nlogn)xy

सबसे उन्नत समाधान मैं लेता है । प्रत्येक रिसीवर के लिए यह वर्तमान रिसीवर के लिए दूरी द्वारा सभी ट्रांसमीटर को सॉर्ट करता है, फिर ट्रांसमीटर को कम से कम दूरी के साथ लें और यह सबसे कम दूरी 0.5 किमी के भीतर होनी चाहिए।O(n2logn)

लेकिन अनुभवहीनता समय जटिलता में बहुत बेहतर लगती है । बस ट्रांसमीटर और रिसीवर के सभी जोड़े के बीच सभी दूरी की गणना करें।O(n2)

मुझे यकीन नहीं है कि मैं इस समस्या में श्रेणी-खोज एल्गोरिदम लागू कर सकता हूं। उदाहरण के लिए केडी-ट्री हमें ऐसी रेंज खोजने की अनुमति देते हैं, हालांकि मैंने कभी भी एक उदाहरण नहीं देखा है, और मुझे यकीन नहीं है कि अगर हलकों के लिए रेंज-सर्च की तरह हैं।

दी गई जटिलता मानती है कि समाधान किसी तरह छँटाई के समान होना चाहिए।O(nlogn)


1
तो उम्मीद समय ठीक है, मुझे लगता है कि आप एक बना सकते हैं कश्मीर ट्रांसमीटरों से अधिक पेड़ (लेने समय हे ( एन लॉग इन करें n ) (), और फिर प्रत्येक रिसीवर के लिए एक निकटतम पड़ोसी क्वेरी निष्पादित औसत लेने की हे ( लॉग एन ) प्रत्येक रिसीवर के लिए समय)। यह चाल के लिए होना चाहिए, लेकिन मुझे लगता है कि आपको सबसे खराब स्थिति की आवश्यकता है। स्पीडअप के लिए कुछ ट्रिक्स लगती हैं, जब आप k d- tree में कई निकटतम पड़ोसी प्रश्नों का निष्पादन कर रहे होते हैं । O(nlogn)kdO(nlogn)O(logn)kd
25'12

1
मुझे लगता है कि एक स्वीप लाइन एल्गोरिथ्म चाल कर सकता है: दोनों ट्रांसमीटर और रिसीवर को x- समन्वय और सूची के माध्यम से चरणबद्ध करें। व्यवहार्य ट्रांसमीटरों के सेट का चतुर प्रबंधन आवश्यक है।
राफेल

@ राफेल, क्या आप कृपया थोड़ा और विस्तृत कर सकते हैं, ऐसा लगता है कि यह सबसे खराब स्थिति में बहुत धीमा होने वाला है।
कॉम

1
मुझे लगता है कि यह विमान में वोरोनोई आरेख की गणना के लिए फॉर्च्यून के एल्गोरिथ्म पर एक नज़र डालने के लायक है। यह O ( n लॉग एन ) में काम करता है , और वोरोनोई आरेख दिया जाता है, आपकी समस्या आसान हो जाती है। O(nlogn)
सियाजी

जवाबों:


4

आप इस समस्या को हल करने के लिए किर्कपैट्रिक की डेटा संरचना के साथ मिलकर वोरोनोई आरेख का उपयोग कर सकते हैं ।

जैसा कि राफेल और सिज़्जी ने सुझाव दिया है, आप वोरोनोई आरेख बनाने के लिए फॉर्च्यून (स्वीपलाइन) एल्गोरिदम का उपयोग कर सकते हैं । सबसे खराब स्थिति समय: O(nlogn)

वोरोनोई आरेख में पॉलीगोन का एक गुच्छा होगा, प्रत्येक में एक ट्रांसमीटर होगा। बहुभुज के भीतर कोई बिंदु उस ट्रांसमीटर के सबसे करीब है। इस प्रकार, यदि आप यह पता कर सकते हैं कि किस बहुभुज में रिसीवर है, तो आप किसी भी तरह से यह पता लगा सकते हैं कि वह किस बहुभुज में है। इसके बाद, आप जांचते हैं कि क्या वह ट्रांसमीटर भीतर है ।1 km

O(logn)O(nlogn)O(nlogn)

वोरोनोई आरेख में प्रत्येक कोशिका एक उत्तल बहुभुज है, संभवतः अनबाउंडेड।

...

[साइटों के एक वोरोनोई आरेख के वर्टिस की संख्या] V-2n-5

- www.cs.arizona.edu

Θ(v)vnnO(n)O(n)O(n)O(n)O(n)

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