कुल कार्य क्यों उल्लेखनीय नहीं हैं?


29

हमने कार्यों की गणना की अवधारणा के बारे में सीखा। व्यवहार में, वे प्रोग्रामिंग भाषाओं के अनुरूप हैं।

एक गुजरती टिप्पणी में, प्रोफेसर ने उल्लेख किया कि सभी कुल कार्यों का वर्ग (अर्थात हर इनपुट के लिए हमेशा समाप्त होने वाले कार्य) उल्लेखनीय नहीं है । इसका मतलब यह होगा कि हम एक प्रोग्रामिंग भाषा नहीं बना सकते हैं जो हमें कुल कार्यों को लिखने की अनुमति देती है, लेकिन कोई अन्य --- जो अच्छा होगा!

तो यह कैसे है कि हम (जाहिरा तौर पर) को गैर-समाप्ति की क्षमता को स्वीकार करना होगा अगर हम सभ्य कम्प्यूटेशनल शक्ति चाहते हैं?

जवाबों:


24

विकर्ण के कारण। अगर से सभी की कुल गणनीय कार्यों की गणना कर सका गणन था को , इस तरह है कि हर कुल था, तो भी कुल गणना योग्य कार्य होगा, लेकिन यह गणना में नहीं होगा। यह अनुक्रम के बारे में मान्यताओं का खंडन करेगा। इस प्रकार कार्यों की कोई गणना योग्य गणना कुल कम्प्यूटेशनल कार्यों से मिलकर नहीं हो सकती है।(fe:eN)NNfeg(i)=fi(i)+1

मान लीजिए कि हमें एक सार्वभौमिक गणनीय समारोह के बारे में सोच है, जहां "सार्वभौमिक" साधन एक गणनीय द्विआधारी समारोह है और हर कुल गणनीय एकल समारोह के लिए है कि वहाँ कुछ है ऐसी है कि सभी के लिए । फिर कुछ भी होना चाहिए जैसे कि पिछले पैराग्राफ के कारण कुल फ़ंक्शन नहीं है। अन्यथा कुल कम्प्यूटरीकृत भिन्न कार्यों की गणना करने योग्य गणना करता है जिसमें सभी कुल कम्प्यूटरीकृत कार्य शामिल होते हैं।h(e,i)hf(n)ef(i)=h(e,i)ieg(n)=h(e,n)h

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


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

बेशक, सिस्टम एफ एक ट्यूरिंग पूरा सिस्टम नहीं है। आपके द्वारा जोड़ा गया पेपर दिलचस्प है; ऐसा लगता है कि वे गैर-ट्यूरिंग-पूर्णता का दिलचस्प तरीके से लाभ उठाने का प्रबंधन करते हैं।
कार्ल मम्मर्ट

मुझे नहीं लगता कि क्यों "तब भी कुल कम्प्यूटेशनल फ़ंक्शन होगा"। यदि कुल कम्प्यूटेशनल फ़ंक्शन है, तो , तो मूल्यांकन करने के लिए विरोधाभास का मूल्यांकन करने की आवश्यकता है। इसलिए ऐसा लगता है कि अगर कुल गणना योग्य कार्यों की गणना की जाती है, तो हम निर्माण भी नहीं कर सकते हैं , ताकि हम प्रारंभिक परिकल्पना को अस्वीकार करने के लिए विरोधाभास तक नहीं पहुंच सकें (हम एक विरोधाभास तक पहुंच सकते हैं, लेकिन यह सिर्फ गणना करने योग्य नहीं है)। g(i)=fi(i)+1gk,fk=gg(k)g(k)=fk(k)+1=g(k)+1gg
एगेमो

और इस समस्या से बचने के लिए एक स्थानांतरित विकर्ण का उपयोग करना भी विरोधाभासों को जन्म देता है।
एग्मो

10

बस स्पष्ट होने के लिए, हमें गणितीय कार्यों को अलग करने की आवश्यकता है (मैं उन्हें फ़ंक्शन कहूंगा और अक्सर उनमें से बहुत से बेशुमार हैं इसलिए वे सभी गणना करने योग्य नहीं हैं) और फ़ंक्शंस आप लिख सकते हैं: मैं उन्हें प्रोग्राम या कंप्यूटेबल फ़ंक्शन भी कहूंगा ।

एक गणना योग्य सेट एक सबसेट को कंप्यूटेबल कहा जाता है यदि कोई ऐसा प्रोग्राम है, जिसे का एक तत्व दिया गया है, तो "हां" यदि और "नहीं" अगर । (और उसे हमेशा कुछ जवाब देना होता है) यदि प्रोग्राम को "नहीं" कहने के बजाय जवाब देने के लिए अधिकृत नहीं किया जाता है, तो एक सेट को पुनरावर्ती रूप से कहा जाता है । (यह आवश्यक है कि कार्यक्रम को किसी भी क्रम में सभी तत्वों को प्रिंट करना होगा )SExExSxSS

सभी कार्यक्रमों है कि एक पर कुल का सेट परिमित सेट है गणनीय क्योंकि आप एक दुभाषिया कि सिर्फ परिमित सेट और बदले "हाँ" अगर वे सब समाप्त के सभी तत्वों पर कार्यक्रम चलाने लिख सकते हैं। (लेकिन अगर उनमें से कोई भी नहीं देखता है)

आपका प्रोफेसर ने कहा कि सभी कार्यक्रमों है कि एक पर कुल का सेट अनंत सेट है गणनीय नहीं है क्योंकि आप न सिर्फ तत्वों की एक अनंत संख्या पर अपने कार्यक्रम चला सकते हैं।

लेकिन इसका मतलब यह नहीं है कि यह बुरा है:

  1. उदाहरण के लिए सेट करता है, तो सभी प्रोग्राम हैं जो कर रहे हैं provably कुल है गणनीय क्योंकि आप सभी सबूत की गणना और यंत्रवत् जाँच अगर वे साबित अपने कार्यक्रम की कुल है सकते हैं।

  2. यहां तक ​​कि एक गणना करने योग्य सेट व्यावहारिक नहीं होगा, क्योंकि आपको यह सुनिश्चित करने के बिना हमेशा इंतजार करना पड़ सकता है कि क्या प्रक्रिया एक दिन समाप्त हो जाएगी। मैं यह नहीं देखता कि सभी कार्यक्रमों को पूरा करने वाले कार्यक्रमों का उपयोग कैसे किया जाए ...

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

तो अपने प्रश्न का उत्तर देने के लिए: एक अर्थ में, हाँ। संभावित गैर-समाप्ति ट्यूरिंग-पूर्ण (अब के लिए उच्चतम कम्प्यूटेशनल शक्ति) होना आवश्यक है। लेकिन मुझे यह सीधे तौर पर इस तथ्य के लिए प्रासंगिक नहीं लगता कि कुल कार्य करने योग्य हैं या नहीं। आप अभी भी सभी कुल कार्यक्रम लिख सकते हैं!


2
"क्योंकि आप सिर्फ अनंत तत्वों पर अपने कार्यक्रम को नहीं चला सकते हैं" - यह एक कमजोर तर्क है क्योंकि मुझे ऐसा करने की आवश्यकता नहीं हो सकती है अगर मुझे प्रोग्राम से ही आवश्यक सभी जानकारी को निस्तारण कर सके। अपने तर्क के खतरे को स्पष्ट करने वाले प्रश्न के लिए यहां देखें ।
राफेल

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