प्रत्येक अभिकलन योग्य फ़ंक्शन के लिए


19

हर गणनीय समारोह के लिए किसी समस्या की वजह में सबसे अच्छे रूप में हल किया जा सकता है मौजूद है समय या वहाँ है एक गणनीय समारोह ऐसी है कि हर समस्या यह है कि में हल किया जा सकता कर सकते हैं समय में भी हल किया जा सकता है ?Θ ( ( एन ) ) हे ( ( एन ) ) ( ( एन ) )fΘ(f(n))fO(f(n))o(f(n))

यह प्रश्न कल मेरे दिमाग में आया। मैं अब इसके बारे में थोड़ा सोच रहा हूं, लेकिन इसका पता नहीं लगा सकता। मैं वास्तव में नहीं जानता कि मैं इसके लिए कैसे गूगल करूंगा, इसलिए मैं यहां पूछ रहा हूं। यहाँ मैं क्या लेकर आया हूँ:

मेरी पहली सोचा था कि जवाब है हां: हर गणनीय समारोह के लिए समस्या "आउटपुट डॉट्स" (या के साथ एक स्ट्रिंग बनाने के डॉट्स या जो कुछ भी) स्पष्ट रूप से में हल नहीं किया जा सकता है समय। इसलिए हमें केवल यह दिखाने की आवश्यकता है कि इसे समय में हल किया जा सकता है । कोई समस्या नहीं, बस निम्नलिखित छद्म कोड लें:एफ ( एन ) एफ ( एन ) ( एफ ( एन ) ) ( एफ ( एन ) )ff(n)f(n)o(f(n))O(f(n))

x = f(n)
for i from 1 to x:
    output(".")

स्पष्ट रूप से वह एल्गोरिथ्म बताई गई समस्या को हल करता है। और यह रनटाइम स्पष्ट रूप से , इसलिए समस्या हल हो गई है। यह आसान था, है ना? को छोड़कर, ऐसा नहीं है क्योंकि आपको पहली पंक्ति की लागत पर विचार करना होगा। उपरोक्त एल्गोरिथ्म के क्रम में ही है अगर समय पर कैलकुलेट की जरूरत में है। स्पष्ट रूप से यह सभी कार्यों के लिए सही नहीं है 1Θ(f(n))Θ(f(n))f(n)O(f(n))

इसलिए यह दृष्टिकोण मुझे कहीं नहीं मिला। मैं किसी के लिए आभारी हूँ कि वह मुझे सही दिशा में इंगित करता है ताकि इसे ठीक से समझ सके।


1 उदाहरण के लिए विचार करें फ़ंक्शन । स्पष्ट रूप से , लेकिन कोई एल्गोरिथ्म नहीं है जो समय में गणना करता है।p(n)={1if n is prime2otherwiseO(p(n))=O(1)pO(1)


1
मुझे नहीं लगता कि अपने पहले पैराग्राफ में अपने दो बयान जरूरी दूसरे की contrapositives हैं: क्या आप एक है, तो इस तरह वहाँ कुछ समस्या यह है कि में हल किया जा सकता मौजूद है कि , नहीं में , न ही in समय? हे ( ( एन ) ) ( ( एन ) ) Θ ( ( एन ) )fO(f(n))o(f(n))Θ(f(n))
एलेक्स दस ब्रिंक

@ एलेक्स यह एक अच्छा बिंदु है जिस पर मैंने विचार नहीं किया।
sepp2k

जवाबों:


13

तक गैप प्रमेय (से तैयार करने का उपयोग कर यहां , किसी भी गणना कर सका असीम समारोह के लिए, 'खाई' के लिए खोज) , वहाँ कुछ बढ़ रही है (वास्तव में, मनमाने ढंग से बड़े) गणनीय समारोह मौजूद है : एनएन ऐसी है कि डी T I M E ( f ( n ) ) = D T I M E ( g ( f ( n ) ))g:NNf:NNDTIME(f(n))=DTIME(g(f(n))

यह आपके प्रश्न का उत्तर देता है कि इस तरह के एक (असीम रूप से कई, वास्तव में) मौजूद है: प्रत्येक कम्प्यूटेशनल फंक्शन g के लिए जैसे कि g = o ( n ) , वहाँ कुछ फंक्शनिंग f मौजूद है जैसे कि सभी समस्याएँ O ( f ( n) में हल हो सकती हैं ) ) समय भी व्याख्या करने योग्य में हैं हे ( जी ( ( एन ) ) = ( ( एन ) ) समय। ध्यान दें कि fgg=o(n)fO(f(n))O(g(f(n))=o(f(n))f जरूरी नहीं कि समय-निर्माण योग्य है - समय-रचनात्मक मामले के लिए, @RanG द्वारा उत्तर देखें।

विकिपीडिया सूत्रीकरण (जो कि आवश्यकता है ), तो जी , अपने उदाहरण बन जाता है और की जरूरत होने की ω ( एन ) समस्याओं व्याख्या करने योग्य में '- (ताकि आप दूसरी तरह के आसपास जाना हे ( जी ( ( एन ) ) कर रहे हैं भी व्याख्या करने योग्य में हे ( जी ( एन ) ) 'दिलचस्प हिस्सा) है।g(x)xgffω(n)O(g(f(n))O(g(n))

विकिपीडिया लेख ध्यान नहीं देता कि बढ़ रहा है और वास्तव में मनमाने ढंग से बड़ा हो सकता है ( f ) ( n ) g ( n ) उदाहरण के लिए)। अंतर प्रमेय साबित करने वाला लेख इसका उल्लेख करता है और इसे साबित करता है ( उदाहरण के लिए यहां देखें )।ff(n)g(n)


कर सकते हैं हो ( n ) ? यह आवश्यक है कि नहीं है जी ( x ) एक्स ? आपका कथन अभी भी सही है, लेकिन प्रमाण दूसरे तरीके से सही है? go(n)g(x)x
रान जी।

@RanG। दोनों योगों के लिए एक प्रमाण देने के लिए अद्यतन (मैंने कागज में सूत्रीकरण का उपयोग किया है) :)
एलेक्स दस ब्रिंक

"हर कंप्यूटेबल फंक्शन g के लिए ऐसा है कि g = o (n), कुछ फंक्शन मौजूद है जैसे कि O (f (n)) टाइम में सॉल्व करने वाली सभी प्रॉब्लम्स O (g (f (n)) = o ( f (n)) समय "क्या होगा यदि उस g के लिए मौजूद सभी fs O (1) में हैं? तो O (g (f (n)) अभी भी O (1) है और इस प्रकार o (1) नहीं है।
sepp2k

@ sepp2k: अच्छी पकड़, यह वास्तव में एक मुद्दा है। मैंने अपना उत्तर अपडेट कर दिया है।
एलेक्स दस ब्रिंक

12

हर गणनीय समारोह के लिए किसी समस्या की वजह में सबसे अच्छे रूप में हल किया जा सकता मौजूद है Θ ( ( एन ) ) समय या वहाँ एक गणनीय समारोह है ऐसी है कि हर समस्या यह है कि में हल किया जा सकता हे ( ( एन ) ) भी कर सकते हैं o ( f ( n ) ) समय में हल किया जा सकता है ?fΘ(f(n))fO(f(n))o(f(n))

अगर है एक समय constructible समारोह है, तो समय पदानुक्रम प्रमेय का कहना है वहाँ समस्या है कि आवश्यकता होती है कि हे ( ( एन ) ) समय, और के साथ समय हल नहीं किया जा सकता है ( ( एन )fO(f(n))। विशेष रूप से, DTIME(o(f(n))o(f(n)log(f(n)))

DTIME(o(f(n)log(f(n))))DTIME(f(n))

यह केवल निर्णय की समस्याओं पर विचार करता है, और आउटपुट उत्पन्न करने में लगने वाले समय के संबंध में नहीं है।


क्या मैं यह मानने में सही हूँ कि यदि हम गैर-समय-निर्माण कार्यों पर विचार करते हैं, तो मेरे प्रश्न का उत्तर "नहीं" है? या संबंधित: यदि कोई फ़ंक्शन समय-निर्माण योग्य नहीं है और इस प्रकार कोई ट्यूरिंग मशीन नहीं है जो f ( n ) चरणों के बाद रुकती है , तो क्या इसका मतलब यह है कि कोई ट्यूरिंग मशीन भी नहीं है जो Θ ( f ( n ) ) चरणों के बाद रुकती है ? क्योंकि उसमें से यह तुच्छ रूप से यह माना जाएगा कि मेरे प्रश्न का उत्तर नहीं है। ff(n)Θ(f(n))
sepp2k

निर्भर करता है। मान लें कि समय-उत्पादक नहीं है, लेकिन कुछ अन्य फ़ंक्शन जी द्वारा बाध्य किया जा सकता है जो समय-निर्माण योग्य है। f = which ( g ) और अभी भी मौजूद समस्याएं हैं जिन्हें समय O ( f ) के साथ हल किया जा सकता है लेकिन उससे बहुत कम नहीं। fgf=Θ(g)O(f)
रैन जी।

और कई टेप टीएम का उपयोग करके, आप ( एफ ( एन ) से परिणाम में सुधार कर सकते हैंtoo(f(n))o(f(n)lgf(n))o(f(n))
केवह

3

मैं आशाओं में कुछ ढाँचा प्रदान करने की कोशिश करूँगा क्योंकि यह गहन अंतर्दृष्टि प्रदान करता है।

जब आप इस मूलभूत के लिए कुछ प्राप्त करते हैं तो हर जगह अप्रत्याशित नुकसान होते हैं। उदाहरण के लिए: किसी समस्या को "हल" करना क्या है? अक्सर कंप्यूटर विज्ञान में हम केवल "निर्णय" संस्करण पर विचार करते हैं, जिसमें हमें एक इनपुट दिया जाता है और केवल ट्रू या फाल्स को आउटपुट करने की आवश्यकता होती है। आप "फ़ंक्शन" समस्या पर ध्यान केंद्रित कर रहे हैं।

यदि आप O (f (n)) संकेतन पर विचार करते हैं, तो समस्या को हल करने के लिए "काम" करने की आवश्यकता के रूप में नोट करने की कोशिश करते हैं, फ़ंक्शन के बजाय निर्णय का उपयोग करके (जहां आउटपुट की आवश्यकता होती है) बेहतर लगता है क्योंकि आप सफाई को आउटपुट स्वरूपण से गणना को अलग करते हैं ।

मुझे नहीं लगता कि यह आपके प्रश्न का उत्तर देगा, लेकिन आप इसमें रुचि ले सकते हैं: http://en.wikipedia.org/wiki/Time_hierarchy_theorem

इसके अलावा, स्पीडअप प्रमेय के बारे में सावधान रहें ।

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