किन परिस्थितियों में एल्गोरिदम एल्गोरिदम लगाते हैं?


16

मान लीजिए कि, प्रत्येक , एक ट्यूरिंग मशीन जो समय में एक भाषा का निर्णय करती है । क्या एक एकल एल्गोरिथ्म समय में तय कर रहा है ? (यहां, शब्द को , इनपुट लंबाई के संदर्भ में मापा जाता है ।)ϵ>0MϵLO(na+ϵ)LO(na+o(1))o(1)n

यदि एल्गोरिदम कम्प्यूटेशनल, या कुशलता से कम्प्यूटेशनल, तो संदर्भ में फर्क पड़ता है ?Mϵϵ

प्रेरणा: कई प्रमाणों में, एल्गोरिथ्म एल्गोरिथ्म O (n ^ {a + o (1)}) की तुलना में एल्गोरिदम का निर्माण करना आसान है । विशेष रूप से, आपको O (n ^ {a + o (1)}) की सीमा को पास करने के लिए O (n ^ {a + \ epsilon}) में निरंतर कार्यकाल को बाध्य करने की आवश्यकता है । यह अच्छा होगा यदि कुछ सामान्य परिणाम हैं जो आप सीधे सीमा तक पारित करने के लिए आमंत्रित कर सकते हैं।O(na+ϵ)O(na+o(1))O(na+ϵ)O(na+o(1))

जवाबों:


10

प्रश्न (रचनात्मक) वस्तुओं के अनुक्रम की सीमा के रचनात्मक अस्तित्व के बारे में प्रश्नों के समान है। आमतौर पर यदि आप समान रूप से उन वस्तुओं (यहाँ Mϵ ) को कुशलतापूर्वक बना सकते हैं तो आप सीमा के अस्तित्व को रचनात्मक रूप से दिखा सकते हैं।

उदाहरण के लिए, मान लें कि हमारे पास एक TM N(k,x) जो M_ {| k | ^ {- 1}} xM|k|1 पर चलता है और इसका चलने का समय O (n ^ {a + k | ^ | {{1}} है। ) + O (| k।) (यहां सीमाएं भी समान हैं, जैसे O (2 ^ kn ^ {+ + | k | ^ {- 1}}) कुछ काम नहीं करेगा)। फिर हम इस समान सिम्युलेटर को फंक्शन (k, x) \ mapsto x के साथ मशीन N (x, x) प्राप्त करने के लिए जोड़ सकते हैं जो समय O (n ^ {a + o (1)}) में चलता है ।xO(na+|k|1)+O(|k|)O(2k.na+|k|1)(k,x)xN(x,x)O(na+o(1))

PS: O(na+o(1)) एसिम्प्टोटिक नोटेशन के घोंसले के कारण थोड़ा अस्पष्ट है, मैं इसे n ^ {a + o (1)} के रूप में व्याख्या कर रहा हूं na+o(1)। इसके अलावा हम की जरूरत है a भी नहीं छोटे, कम से कम उदाहरण के लिए होने के लिए 1


8

आप लेविन के सार्वभौमिक खोज एल्गोरिदम का उपयोग कर सकते हैं। मान लीजिए कि आप किसी तरह तय करने वाले एल्गोरिदम अनुक्रम की गणना कर सकते हैं , प्रत्येक समय में चल रहा है । में समय लेविन एल्गोरिथ्म रन हर के लिए , जहां के आधार पर एक स्थिर है । अतः प्रत्येक , दिए गए , , और एल सी कश्मीर n एक + 1 / कश्मीर टी ( एन ) डी कश्मीर n एक + 1 / कश्मीर कश्मीर डी कश्मीर सी कश्मीर कश्मीर τ ( एन ) लोग इन टी ( एन )AkLCkna+1/kT(n)Dkna+1/kkDkCkkε>0कश्मीर=2/εएन=डी 2 / ε कश्मीरnएनτ(एन)ετ(एन)0एनएक+τ(एन)=nएक+(1)

τ(n)logT(n)lognalogDk+(a+1/k)lognlogna=logDklogn+1k.
ϵ>0k=2/ϵN=Dk2/ϵ। फिर , । इसलिए , और हम पाते हैं कि लेविन का एल्गोरिथ्म समय में चलता है ।nNτ(n)ϵτ(n)0na+τ(n)=na+o(1)

अगर मैं लेविन के एल्गोरिथ्म को समझता हूं, तो यह केवल खोज एल्गोरिदम पर लागू होता है। यह एल्गोरिथ्म एक फ़ंक्शन को पलटने के लिए काम करेगा , जहाँ गणना समय । f O ( n o ( a ) )ffO(no(a))
डेविड हैरिस

मैं खुद लेविन के एल्गोरिदम का उपयोग करने का सुझाव नहीं दे रहा हूं, बस सभी एल्गोरिदम को समानांतर रूप से dovetailing का उपयोग करने का विचार है , इस तरह से कि प्रत्येक को केवल एक गुणक कारक द्वारा धीमा किया जाता है। Ak
युवल फिल्मस

@ युवल, जब आप सभी एल्गोरिदम को डाइवेट करते हैं, तो आप कैसे तय करते हैं कि किस उत्तर को स्वीकार करना है? एक खोज समस्या में, आप प्रत्येक पुटकीय आउटपुट का परीक्षण कर सकते हैं, लेकिन सामान्य तौर पर यह संभव नहीं है।
डेविड हैरिस

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