पी में समस्याएं काफी तेजी से यादृच्छिक एल्गोरिदम के साथ होती हैं


20

में कोई समस्या नहीं है Pजो नियतात्मक एल्गोरिदम पर निचले सीमा को बेतरतीब ढंग से एल्गोरिदम बना रहा है? अधिक , क्या हम किसी ऐसे को जानते हैं जिसके लिए ? यहाँ \ mathsf {PTIME} (f (n)) का अर्थ है यादृच्छिक रूप से TM द्वारा स्थिर भाषाओं का सेट, जो f (n) चरणों में निरंतर-बाध्य (एक या दो तरफा) त्रुटि के साथ है ।kDTIME(nk)⊊PTIME(nk)PTIME(f(n))f(n)

क्या यादृच्छिकता हमें \ mathsf {P} के अंदर कुछ भी खरीदती हैP ?

स्पष्ट होने के लिए, मैं एक ऐसी चीज़ की तलाश कर रहा हूँ जहाँ अंतर अस्वाभाविक है (अधिमानतः बहुपद, लेकिन मैं पॉलीग्लारिथिक के लिए व्यवस्थित होगा), न कि केवल एक स्थिर।

मैं सबसे खराब स्थिति में एल्गोरिदम को बेहतर तरीके से देख रहा हूं। बेहतर अपेक्षित जटिलता वाले एल्गोरिदम वे नहीं हैं जिनकी मुझे तलाश है। मेरा मतलब है कि आरपी या बीपीपी नहीं के रूप में यादृच्छिक एल्गोरिदम।


शायद "याओ की तकनीक" वह है जो आप ढूंढ रहे हैं। एक संक्षिप्त विवरण cs.pitt.edu/~kirk/cs2150/yao/yao.html
— वू यिन

अगर मैं सही ढंग से समझता हूं कि नियतात्मक एल्गोरिथ्म के औसत मामले व्यवहार द्वारा कम-बाउंडिंग रैंडमाइज्ड एल्गोरिदम की दिशा में जाता है .. तो मैं इसे और अधिक देखूंगा, लेकिन जिस तरह से मैं इसे देखता हूं, यह कभी भी इस यादृच्छिकता को साबित कर सकता है। करता नहीं अंदर हमें कुछ भी नहीं खरीद P .. मैं सही हूँ?
— अनुलग्‍नक

1
किसी भी तत्व को लंबाई क्रम में खोजने के लिए [ , ] में रैंक के साथ हम किसी भी यादृच्छिक तत्व को वापस कर सकते हैं और यह साथ सही होगा। संभावना इसलिए इसका O (1)! जबकि निर्धारक एल्गोरिथ्म कम से कम इनपुट के कुछ अंश और इसलिए । nn43∗n412Ω(n)
— रिजवानहुडा

@rizwanhudda इसके साथ कुछ समस्याएं हो सकती हैं। सबसे पहले, मैं एक निर्णय समस्या की तलाश में हूं। दूसरा, ट्यूरिंग मॉडल में, एक यादृच्छिक तत्व वापस करना , क्योंकि कोई यादृच्छिक पहुँच नहीं है। हो सकता है, मशीन हमेशा पहले तत्व का उत्पादन करे? फिर भी, पहली समस्या बड़ी है। Ω(n)
— ऐलेंगुइंडी

2
अंतिम पैराग्राफ का कोई मतलब नहीं है क्योंकि प्रत्येक लास वेगास एल्गोरिदम को मोंटे कार्लो एल्गोरिदम में परिवर्तित किया जा सकता है।
— Tsuyoshi Ito

जवाबों:


17

बहुपद पहचान परीक्षण एक यादृच्छिक बहुपद समय एल्गोरिथ्म ( Schwartz-Zippel lemma देखें ) कोस्वीकार करता है , और हमारे पास वर्तमान में इसके लिए एक नियतात्मक बहुपद समय या यहां तक ​​कि एक उप-घातीय समय एल्गोरिथ्म नहीं है।

गेम ट्री मूल्यांकन लीफ नोड्स केसाथ एक पूर्ण बाइनरी ट्री पर विचार करें, जिसमें सेप्रत्येक में 0/1 मान हो। आंतरिक नोड्स में वैकल्पिक स्तरों में OR / AND गेट होते हैं। यह विरोधी तर्क का उपयोग है कि हर नियतात्मक एल्गोरिथ्म की जांच करने के लिए होगा साबित किया जा सकता Ω ( एन ) सबसे खराब स्थिति में पत्र-गांठ। लेकिन वहाँ एक सरल यादृच्छिक एल्गोरिथ्म जो है लेता है उम्मीद के समय चल रहा हे ( n 0.793 ) पर देखो स्लाइड बात की 14-27।nΩ(n)O(n0.793)

एक हाइपरक्यूब पर विस्मृत रूटिंग एन = 2 एन कोनेवाले -dimension में एक क्यूब पर विचार करें। प्रत्येक शीर्ष पर डेटा का एक पैकेट और एक गंतव्य होता है जिसे वह पैकेट को अंततः वितरित करना चाहता है। सभी पैकेटों का गंतव्य अलग-अलग है। यहां तक कि इस के लिए, यह साबित हो चुका है कि किसी भी निश्चयात्मक मार्ग रणनीति ले जाएगा Ω ( √nN=2nकदम। हालांकि, एक सरल यादृच्छिक रणनीति है जोउच्च संभावना के साथअपेक्षितओ(एन)चरणोंमें समाप्त होगी।Ω(Nn) O(n)

ध्यान दें कि यादृच्छिक एल्गोरिदम में, उम्मीद लागत उच्च संभावना के साथ (जैसे उदाहरण के लिए। पी आर [ एफ ( एन ) > 10 ⋅ ई ( एफ ( एन ) ) ] < 1E(F(n)) ) व्यवहार में सबसे खराब स्थिति के बराबर है।Pr[F(n)>10⋅E(F(n))]<1n2


इसके अलावा, , बी और सी के लिए मेट्रिस के परीक्षण पर विचार करें यदि ए बी = सी । हम वर्तमान में नो ओ ( 2 2.3 ) एल्गोरिदम को जानते हैं, हम एक यादृच्छिक ओ ( एन 2 ) एल्गोरिदम जानते हैं । मुद्दा यह है कि क्या ऐसी समस्याएं हैं जिनके लिए हम यह साबित कर सकते हैं कि यादृच्छिक एल्गोरिदम बेहतर हैं? ABCAB=Co(22.3)O(n2)
— अनलगिंडी

@aelguindy मुझे आपकी बात सही लगी। लेकिन, पीआईटी के लिए सबसे अच्छा ज्ञात निर्धारक एल्गोरिथ्म घातीय है। और, पीआईटी को व्युत्पन्न करना सैद्धांतिक सीएस में एक महत्वपूर्ण खुली समस्या है।
— रिजवानहुडा

मैंने पोस्ट में गेम ट्री मूल्यांकन और हाइपरक्यूब राउटिंग को जोड़ा है, जिसके लिए यादृच्छिक एल्गोरिदम, निर्धारक काउंटरों की तुलना में काफी बेहतर है।
— रिजवानहुड

ठीक है, गेम ट्री मूल्यांकन के लिए, अगर मैं सही ढंग से समझता हूं, तो यह अपेक्षित में चलता है , है ना? मेरा मतलब है कि ऐसी स्थितियां उस में चलेंगे Ω ( एन ) । क्या तीसरा उदाहरण भी ऐसा ही है? मैं बेहतर अपेक्षित समय के लिए अनुमति नहीं दे रहा हूं, मैं बेहतर सबसे खराब स्थिति की तलाश कर रहा हूं, आउटपुट में त्रुटि की अनुमति है। O(n0.793)Ω(n)
— अनलगिंडी

1
इसलिए वे सबसे खराब स्थिति में बेहतर नहीं हैं। जितना मैं उदाहरणों की सराहना करता हूं, मुझे डर है कि वास्तव में मैं जो खोज रहा हूं वह नहीं है। हालांकि उदाहरण बहुत ज्ञानवर्धक थे!
— 22 अगस्त को अनलगिंडी

5

सबसे खराब स्थिति की जांच यादृच्छिक एल्गोरिदम के लिए अर्थहीन है। न केवल सबसे खराब स्थिति वाला रनटाइम अक्सर अनंत होगा, बल्कि वे उस मीट्रिक में नियतात्मक एल्गोरिदम को बेहतर नहीं बना सकते हैं ।

किसी भी यादृच्छिक एल्गोरिथ्म पर विचार करें । A से 0 istic के लिए यादृच्छिक टेप को ठीक करके एक नियतात्मक एल्गोरिथम बी प्राप्त करें । फिर, टी बी ( एन ) ≤ टी ए ( एन ) सभी के लिए एन ।ABA0∞TB(n)≤TA(n)n


5

ऐसी कई समस्याएं हैं जहां हम एक कुशल यादृच्छिक एल्गोरिदम के बारे में जानते हैं, और हम किसी भी नियतात्मक एल्गोरिथ्म के बारे में नहीं जानते हैं जिसे हम साबित कर सकते हैं कि यह कुशल है। हालांकि, यह किसी भी मौलिक अंतर के बजाय जटिलता के बारे में चीजों को साबित करने की हमारी क्षमता में कमियों को प्रतिबिंबित कर सकता है।

आपकी टिप्पणी के आधार पर , यह प्रतीत होता है कि आप यह पूछना चाहते हैं कि क्या कोई समस्या मौजूद है जहां एक कुशल यादृच्छिक एल्गोरिदम है, और हम यह साबित कर सकते हैं कि तुलनीय दक्षता का कोई निर्धारण एल्गोरिथ्म नहीं है। मैं ऐसी किसी भी समस्या के बारे में नहीं जानता।

वास्तव में, इस बात पर संदेह करने के लिए उचित आधार हैं कि ऐसी समस्याओं के होने की संभावना नहीं है। स्वाभाविक रूप से, ऐसी समस्या के अस्तित्व का मतलब होगा कि सुरक्षित क्रिप्टोग्राफी असंभव है। ऐसा लगता है कि एक नहीं बल्कि परिणामी परिणाम है।

क्या कनेक्शन है, आप पूछें? खैर, किसी भी यादृच्छिक एल्गोरिदम पर विचार करें जो किसी समस्या को कुशलता से हल करता है। यह यादृच्छिक सिक्कों पर निर्भर करता है: एक सच्चे-यादृच्छिक स्रोत से प्राप्त यादृच्छिक बिट्स। अब मान लें कि हम एक क्रिप्टोग्राफिक-गुणवत्ता वाले छद्म आयामी जनरेटर लेते हैं, और छद्म आयामी जनरेटर के उत्पादन के साथ सच्चे-यादृच्छिक स्रोत को प्रतिस्थापित करते हैं। परिणामी एल्गोरिथ्म ए ′ को कॉल करें । ध्यान दें कि एक ' एक नियतात्मक एल्गोरिथ्म है और इसके चलने का समय लगभग रूप में ही है एक ।AA′A′A

इसके अलावा, अगर क्रिप्टोग्राफिक PRNG सुरक्षित है, heuristically हम उम्मीद करनी चाहिए एक अच्छा एल्गोरिथ्म होने के लिए है, तो एक है:A′A

  • उदाहरण के लिए, यदि लास वेगास एल्गोरिथ्म है (यह हमेशा सही उत्तर का उत्पादन करता है, और उच्च संभावना के साथ तेजी से समाप्त होता है), तो A ′ एक बहुत अच्छा निर्धारक एल्गोरिथ्म होगा (हमेशा सही उत्तर का आउटपुट देता है, और अधिकांश इनपुट के लिए तेजी से समाप्त होता है) ।AA′

  • एक और उदाहरण के रूप में, अगर एक मोंटे कार्लो एल्गोरिथ्म (नियतात्मक प्रसारण समय है, और संभावना कम से कम के साथ सही जवाब आउटपुट है 1 - ε ), तो एक एक बहुत अच्छा नियतात्मक एल्गोरिथ्म (नियतात्मक प्रसारण समय हो जाएगा, और सही जवाब आउटपुट एक अंश पर 1 - ε सभी आदानों की)।A′1−εA1−ε

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

निर्माण के विवरण: यहाँ है कैसे काम करता है। पर इनपुट एक्स , इसके बारे में एक समारोह के रूप में क्रिप्टोग्राफिक PRNG के लिए एक बीज निकला एक्स (जैसे, द्वारा हैशिंग एक्स ), और फिर simulates एक ( एक्स ) , के लिए सिक्के के रूप में क्रिप्टोग्राफिक PRNG के उत्पादन का उपयोग कर एक । उदाहरण के लिए, एक विशिष्ट तात्कालिकता k = SHA256 ( x ) को सेट करना होगा , फिर k का उपयोग करेंA′xxxA(x)Ak=SHA256(x)k काउंटर मोड में AES256 या कुछ अन्य क्रिप्टोग्राफिक PRNG के लिए बीज के रूप में । हम यादृच्छिक ओरेकल मॉडल के तहत उपरोक्त बयानों को साबित कर सकते हैं।

यदि आप विचार है कि साथ हैं दुखी हो सकता है उत्पादन आदानों की कुछ छोटा सा अंश पर गलत परिणाम, कि संबोधित किया जा सकता। आप दोहराएँ एक ' कई बार और बहुमत ले, त्रुटी संभावना पुनरावृत्तियों की संख्या में तेजी से तेजी से कम हो जाती है। तो, समय की एक स्थिर संख्या पुनरावृत्ति करके, आप त्रुटि संभाव्यता प्राप्त कर सकते हैं ε नीचे होने 1 / 2 256 है, जो संभावना है मतलब है कि आप भर में एक इनपुट चलाने एक्सA′A′ε1/2256xजहाँ एल्गोरिथ्म गलत उत्तर देता है वह गायब रूप से छोटा होता है (एक पंक्ति में कई बार बिजली गिरने की संभावना से कम)। इसके अलावा, निर्माण के साथ मैं ऊपर, संभावना है कि एक विरोधी भी कर सकते हैं दे दी है लगता है एक इनपुट जहां एक ' , देता है कि के रूप में SHA256 हैश की सुरक्षा को तोड़ने की आवश्यकता होगी गलत जवाब बहुत छोटा बनाया जा सकता है। (तकनीकी रूप से, इसे सही ठहराने के लिए यादृच्छिक ओरेकल मॉडल की आवश्यकता होती है, इसलिए इसका मतलब है कि A को SHA256 का "स्वतंत्र" चुना जाना चाहिए और इसमें हार्डकोड नहीं होना चाहिए जो SHA256 से संबंधित हैं, लेकिन लगभग सभी वास्तविक दुनिया के खिलाड़ी उस आवश्यकता को पूरा करेंगे ।)xA′A

आप एक मजबूत सैद्धांतिक आधार चाहते हैं, आप पुनरावृति कर सकते हैं Θ ( n ) बार, और त्रुटी संभावना कम हो करने के लिए मिल 1 / 2 n , जहां एन के इनपुट लंबाई है एक्स । अब के अंश n -बिट आदानों जहां एक ' एक गलत जवाब देता है कड़ाई से कम है 1 / 2 n । लेकिन वहाँ केवल हैं 2 n संभव n -बिट आदानों, और हर एक पर एक या तो सही या गलत है, तो यह इस प्रकार कोई इनपुट है कि वहाँ है, जहां एक 'A Θ(n)1/2nnxnA′1/2n2nnAA′गलत है: सभी आदानों पर सही है, और यह बिना शर्त रखती है। तो एक में समय चलाता टी ( एन ) , तो एक ' समय में रन Θ ( n ⋅ टी ( एन ) ) , तो एक ' थोड़ा की तुलना में धीमी है एक नहीं बल्कि बहुत ज्यादा धीमी। यह एडलमैन के प्रमाण की सामग्री है कि बीपीपी पी / पॉली में निहित है। व्यावहारिक उद्देश्यों के लिए, यह संभवतः ओवरकिल है, लेकिन यदि आप स्वच्छ प्रमाण पसंद करते हैं जो क्रिप्टोग्राफ़िक मान्यताओं से बचते हैं या यदि आप एक सैद्धांतिक के दृष्टिकोण से इसे प्राप्त करते हैं तो आप इस संस्करण को बेहतर तरीके से पसंद कर सकते हैं।A′At(n)A′Θ(n⋅t(n))A′A

बाद के सैद्धांतिक विचारों और अतिरिक्त समस्याओं के बारे में अधिक जानकारी के लिए जहां हम एक कुशल यादृच्छिक एल्गोरिदम के बारे में जानते हैं, लेकिन हम किसी भी निर्धारित एल्गोरिथ्म के बारे में नहीं जानते हैं जो हम साबित कर सकते हैं कि कुशल है, /cstheory//q/31195 देखें / 5038

सारांश में: किसी भी समस्या के लिए जहां हम एक कुशल यादृच्छिक एल्गोरिदम जानते हैं, हम एक नियतात्मक एल्गोरिथ्म के बारे में भी जानते हैं जो व्यवहार में कुशल होने की संभावना है - लेकिन वर्तमान में हम यह नहीं जानते कि यह कैसे साबित किया जाए कि यह कुशल है। एक संभावित व्याख्या यह है कि हम एल्गोरिदम के बारे में सामान साबित करने में बहुत अच्छे नहीं हैं।

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