केवल अनुमानित अधिकतम प्रश्नों का उपयोग करके एक अनुमानित argmax खोजें


10

निम्नलिखित समस्या पर विचार करें।

हैं अज्ञात मूल्यों v 1 , , वी एनआर । कार्य निम्नलिखित फॉर्म के केवल प्रश्नों का उपयोग करते हुए सबसे बड़े सूचकांक को खोजना है। एक क्वेरी एक सेट द्वारा निर्दिष्ट किया जाता एस { 1 , , n } और इसी जवाब है अधिकतम मैं एस वी मैं । लक्ष्य के रूप में संभव के रूप में कुछ प्रश्नों का उपयोग करने के लिए है।nv1,,vnRS{1,,n}maxiSvi

यह समस्या आसान है: हम प्रश्नों के साथ argmax को खोजने के लिए द्विआधारी खोज का उपयोग कर सकते हैं । यानी सूचकांकों के अनुरूप n पत्तियों के साथ एक पूर्ण बाइनरी ट्री बनाएँ । जड़ से शुरू करें और एक पत्ती तक नीचे चलें। प्रत्येक नोड पर, दाएं और बाएं उपप्रकारों में अधिकतम मान को क्वेरी करें और फिर बड़े उत्तर के साथ बच्चे की तरफ बढ़ें। एक पत्ती तक पहुँचने पर, इसके सूचकांक का उत्पादन करता है।O(logn)n

इस समस्या का निम्नलिखित शोर संस्करण मेरे शोध में सामने आया है।

हैं अज्ञात मूल्यों v 1 , , वी एन । इन क्वेरी के में एक सेट के साथ पहुँचा जा सकता है एस { 1 , , n } निर्दिष्ट किया जाता है और से एक नमूना एन ( अधिकतम मैं एस वी मैं , 1 ) दिया जाता है। लक्ष्य की पहचान है मैं *{ 1 , , n } ऐसी है कि [ वी मैं * ]nv1,,vnS{1,,n}N(maxiSvi,1)i{1,,n} संभव के रूप में कुछ प्रश्नों का उपयोग करते हुए। (उम्मीद i expect की पसंद से अधिक है, जो एल्गोरिथ्म के दोनों सिक्कों और शोर के उत्तर पर निर्भर करता है।)E[vi]maxivi1i

मान लीजिए कि हम पहले की तरह ही बाइनरी खोज रणनीति का उपयोग करके इसे हल करने का प्रयास करते हैं (लेकिन शोर के जवाब के साथ)। यह दिखाने के लिए कि इस को प्राप्त होता है यथोचित आसान है और है कि इस सबसे खराब स्थिति में तंग है। हम प्रत्येक क्वेरी O ( लॉग 2 n ) बार दोहराकर और औसत का उपयोग करके त्रुटि को वांछित 1 तक कम कर सकते हैं (जो ड्राइव को नीचे चलाता है)। यह O ( लॉग 3 एन ) प्रश्नों का उपयोग करके एक एल्गोरिथ्म देता है ।E[vi]maxiviO(logn)1O(log2n)O(log3n)

क्या एक बेहतर एल्गोरिथ्म है? मैं मानता हूं कि क्वेरीज़ पर्याप्त हैं। और मुझे विश्वास है कि मैं एक Ω ( लॉग 2 एन ) कम बाध्य साबित कर सकता हूं । इसके अलावा, समस्या आसान हो जाता है - यानी ~ हे ( लॉग एन ) द्विआधारी खोज के माध्यम से प्रश्नों - वादा एक है कि वहाँ के तहत Ω ( 1 ) सबसे बड़ा मान और दूसरी सबसे बड़ी मूल्य के बीच की खाई। यदि यह मदद करता है, तो आप मान सकते हैं कि सभी मान 0 और ( लॉग एन ) के बीच हैंO(log2n)Ω(log2n)O~(logn)Ω(1)0O(logn)


एक द्विआधारी खोज के बारे में क्या है जो हर स्तर पर O (लॉग एन) क्वेरी जोड़े (बाएं हाथ की अधिकतम के लिए एक, दाएं हाथ की अधिकतम के लिए एक) और रिकॉर्ड जो जीतता है। फिर, O (लॉग एन) राउंड के बाद एल्गोरिथ्म उस तरफ पुनरावृत्ति रूप से आगे बढ़ता है जो सबसे अधिक बार "जीता"। मेरे सिर में एक संक्षिप्त गणना से प्रतीत होता है कि यह सेटिंग में साथ संभाव्यता के साथ काम करता है जहां एक इनपुट 2 है और अन्य सभी 0 हैं ... हालांकि मैं रास्ता बंद कर सकता हूं। 11/nc20
डैनियलो

@daniello सबसे बड़े और दूसरे-सबसे बड़े मूल्यों के बीच अंतर होने पर काम करता है। सामान्य मामला हालांकि अधिक कठिन प्रतीत होता है।
थॉमस

स्वयं पर ध्यान दें: टिप्पणी करने से पहले पूरा प्रश्न पढ़ें
daniello

जवाबों:


1

B=Θ(logn){v1,,vn}={1nB,,n1nB,B}

विचार यह होना चाहिए कि यदि हम मान को छोड़कर सभी मूल्यों के सूचकांकों को ठीक करते हैंBn1nB

B1

logn(logn)2

Bn

क्षमा करें यह आधा बेक किया हुआ है, लेकिन आशा है कि यह उपयोगी हो सकता है!


Ω(logn)Ω(log2n)

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