चलती लक्ष्य का पीछा करने के लिए एल्गोरिदम


20

मान लीजिए कि हमारे पास एक ब्लैक-बॉक्स f जिसे हम क्वेरी और रीसेट कर सकते हैं। जब हम रीसेट f , राज्य fS के f एक तत्व सेट से यादृच्छिक पर समान रूप से चुना करने के लिए सेट कर दिया जाता

{0,1,...,n1}
जहाँ n नियत है और दिए गए लिए जाना जाता हैf । क्वेरी करने के लिए f , एक तत्व x से (अनुमान)
{0,1,...,n1}
प्रदान किया गया है, और दिया गया मान है (fSx)modn । साथ ही, राज्यकीएक मान पर सेट है, जहांसे यादृच्छिक पर समान रूप से चयन किया जाता हैfSffS=fS±kk
{0,1,2,...,n/2((fSx)modn)}

प्रत्येक क्वेरी के साथ समान रूप से यादृच्छिक अनुमान लगाने से, किसी को प्राप्त करने से पहले अनुमान लगाने की अपेक्षा होगी , विचरण (प्रमाण के बिना कहा गया) के साथ।nfS=xn2n

क्या एल्गोरिथ्म को बेहतर करने के लिए डिज़ाइन किया जा सकता है (यानी, कम अनुमान लगाते हैं, संभवतः अनुमानों की संख्या में कम विचरण के साथ)? यह कितना बेहतर कर सकता है (यानी, एक इष्टतम एल्गोरिथ्म क्या है, और इसका प्रदर्शन क्या है)?

इस समस्या का एक कुशल समाधान एक अंधेरे कमरे में एक खरगोश (एक परिपत्र ट्रैक पर hopping तक सीमित) में शूटिंग के लिए महत्वपूर्ण लागत-बचत प्रभाव हो सकता है।


मुझे यकीन नहीं है कि क्या शूटिंग खरगोश कंप्यूटर विज्ञान है।
डेव क्लार्क

6
@DaveClarke लेकिन अगर आप खरगोशों को मार सकते हैं, तो आपने खरगोशों के लिए हल करने की समस्या हल कर दी है।
पैट्रिक87

@DaveClarke न तो अंतरिक्ष में उपग्रहों की शूटिंग कर रहा है, लेकिन उपग्रह की स्थिति की गणना है। यह प्रश्न पूरी तरह से क्रिप्टोनालिसिस के विपरीत नहीं है।
गिल्स एसओ- बुराई को रोकना '

जवाबों:


13

सबसे पहले, मैं यह मानूंगा

साथ ही, राज्य के एक मान पर सेट है ' एस = एस ± कश्मीर , जहां कश्मीर से यादृच्छिक पर समान रूप से चयन किया जाता है { 0 , 1 , 2 , , n / 2 - ( ( एस - एक्स )fSffS=fS±kk

{0,1,2,...,n/2((fSx)modn)}

आप वास्तव में मतलब है

साथ ही, राज्य के एक मान पर सेट है ' एस = एस + कश्मीरfSf , जहाँ k को यादृच्छिक रूप से { - | एनfS=fS+kmodnk

{|n2((fSx)modn)|,,1,0,1,2,,|n2((fSx)modn)|}

fS{0,...,n1}fS±k

fSx=±1modn(n/2±1)(n/2±1)fSxmodn=n/2

हम प्रत्येक शॉट में तेजी से लापता होने के लिए एक प्रक्रिया खोजने के साथ रह गए हैं। मैं एक सरल "बाइनरी खोज" का प्रस्ताव करता हूं। (मैं आसानी से गोलाई को छोड़ दूंगा।) यह इस प्रकार है:

  1. (fSxmodn){14n,...,34n}.
  2. fS14nfS{(fS14n)modn,...,fS,...,(fS+14n)modn}
  3. fSn/2modn1/2fS{fS18n,...,fS,...,fS+18n}1/2fSxmodn=fSfS+n/2modn{12n14n,...,12n+14n}

2=O(1)O(logn)

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