क्या गणना के मॉडल के लिए "अभिकलन" की स्पष्ट परिभाषा है जो पूर्ण रूप से ट्यूरिंग नहीं है?


9

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

कम्प्यूटिंग ट्यूरेबल की विशिष्ट परिभाषा निम्नानुसार है:

परिभाषा 1: एक फ़ंक्शन को ट्यूरिंग कम्प्यूटेबल iff कहा जाता है, एक ट्यूरिंग मशीन जो स्ट्रिंग्स के रूप में प्राकृतिक संख्याओं के उपयुक्त एन्कोडिंग का उपयोग करके f की गणना करता है ।:एनएन

परिभाषाएँ अलग-अलग हैं जो वास्तव में एक उपयुक्त एन्कोडिंग है, लेकिन सबसे अधिक बाइनरी एन्कोडिंग , यूनिरी एन्कोडिंग या दशमलव एन्कोडिंग को एक निश्चित और उपयुक्त एन्कोडिंग के रूप में संदर्भित करता है । यह दिखाना भी संभव है कि ट्यूरिंग कम्प्यूटेबिलिटी की परिभाषा के लिए एक एन्कोडिंग को ठीक करना आवश्यक है। लेकिन प्राकृतिक संख्याओं के द्विआधारी एन्कोडिंग को क्या कहते हैं, ताकि हम इसे एक उपयुक्त एन्कोडिंग के रूप में स्वयंसिद्ध कर सकें? शायद इसलिए क्योंकि यह संयोग की सहज धारणा पर निर्भर करता है कि संयोग का क्या अर्थ है

अब क्या होगा अगर हम ट्यूरिंग मशीनों की तुलना में कम्प्यूटेशन के कमजोर मॉडल को देखें? उदाहरण के लिए, चलो वर्णमाला साथ "अपंग" ट्यूरिंग मशीनों के सेट पर विचार करें, जो केवल दाईं ओर जा सकते हैं, और अपंग ट्यूरिंग कंप्यूटेबल की एक परिभाषा जो कि ट्यूरिंग कम्प्यूटेबिलिटी के अनुरूप है:सी{0,1}

परिभाषा 2: एक समारोह कहा जाता है गणनीय ट्यूरिंग अपंग या में शुमार कर सका iff वहाँ एक अपंग ट्यूरिंग मशीन है जो computes के रूप में प्राकृतिक संख्या का एक उपयुक्त एन्कोडिंग का उपयोग एक स्ट्रिंग।:एनएनसी

अगर हम "के रूप में द्विआधारी कूटबन्धन" "उपयुक्त एन्कोडिंग", तो समारोह को परिभाषित है नहीं में शुमार कर सका । यदि हम "उपयुक्त एन्कोडिंग" " एन्कोडिंग" के रूप में स्वयंसिद्ध करते हैं, तो में की गणना की जा । यह अजीब लगता है कि इस तथ्य को देखते हुए कि हर कोई इच्छानुसार कई सहज ज्ञान युक्त एन्कोडिंग में से एक को ठीक कर सकता है। यह स्पष्ट होना चाहिए कि अगर एक गणना मॉडल कुछ विशिष्ट एन्कोडिंग का संदर्भ लिए बिना या नहीं की गणना कर सकता है - कम से कम मैंने कभी किसी का उल्लेख नहीं देखा है कि "लूप प्रोग्राम ट्यूरिंग मशीनों की तुलना में कमजोर हैं" का उपयोग करते समय एन्कोडिंग का क्या उपयोग किया जाता है।:एनएन,nn+1सी सी


इस परिचय के बाद, मैं अंत में अपने प्रश्न का मुहावरा दे सकता हूं: अभिकलन के मनमाने मॉडल के लिए कोई भी "उपयुक्त एन्कोडिंग" और "कम्प्यूटेबिलिटी" को कैसे परिभाषित करेगा जो कम्प्यूटेबिलिटी की सहज धारणा से मेल नहीं खाता है? क्या यह संभव कम्प्यूटिंग की संरचना के भीतर संभव है?

संपादित करें: मैंने परिचय को छोटा किया, यह प्रश्न में नहीं जोड़ा गया।

जवाबों:


6

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

कम्प्यूटेबिलिटी इसके मूल में है कड़े कार्यों की एक संपत्ति :Σ*Σ*। जब आप किसी अन्य डोमेन में कम्प्यूटेबिलिटी को परिभाषित करते हैं, तो आपको एक एन्कोडिंग को ठीक करना होगा। व्यवहार में, सभी "उचित" एन्कोडिंग पूर्ववर्ती पैराग्राफ के अर्थ में बराबर हैं, इसलिए सटीक एन्कोडिंग कोई फर्क नहीं पड़ता।

एन्कोडिंग, गणना के प्रतिबंधित मॉडल में मायने रखता है। एक चरम उदाहरण लेने के लिए, मान लीजिए कि आप समय-प्रतिबंधित ट्यूरिंग मशीनों पर विचार करते हैं: कहते हैं कि आप चाहते हैं कि आपकी मशीन समय पर समाप्त हो जाएहे(nसी) कुछ के लिए सी, कहाँ पे nइनपुट की लंबाई है (एक स्ट्रिंग के रूप में)। हम अब बाइनरी एन्कोडिंग और यूनीरी एन्कोडिंग के बीच स्विच नहीं कर सकते, क्योंकि बाइनरी एनकोडिंग बहुत अधिक कॉम्पैक्ट है। जब हम पूर्णांक के बहुपद समय गणना योग्य कार्य के बारे में बात करते हैं , तो हम निर्दिष्ट करते हैं कि पूर्णांक द्विआधारी में एन्कोडेड हैं। यहां तक ​​कि यह कुछ हद तक मनमाना विकल्प है, क्योंकि दशमलव एन्कोडिंग बहुपद समय कम्प्यूटेशन की समान धारणा को जन्म देगा।

तो आपके प्रश्न का उत्तर देने के लिए - एन्कोडिंग को प्रतिबंधित मॉडल की परिभाषा के हिस्से के रूप में निर्दिष्ट किया गया है।


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

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

इसलिए संक्षेप में: क) प्रत्येक एकल गणना मॉडल की परिभाषा में इसे वाक्यविन्यास, शब्दार्थ और उपयुक्त एन्कोडिंग शामिल होना चाहिए। बी) "उपयुक्त एन्कोडिंग" की परिभाषा मॉडल के वाक्यविन्यास और शब्दार्थ से पूरी तरह से स्वतंत्र है। ग) "उपयुक्त एन्कोडिंग" की परिभाषा देने का कोई तरीका नहीं है जो गणना के सभी मॉडलों के लिए मान्य है। क्या वो सही है?
स्टीफन लुत्ज़

मैं a) और b) से सहमत हूं, लेकिन c) केवल आंशिक रूप से। आप एक उपयुक्त एन्कोडिंग को परिभाषित कर सकते हैं जो "मानक एन्कोडिंग" के रूप में कार्य करता है, इसका उपयोग तब तक किया जाता है जब तक कि तथ्य का स्पष्ट उल्लेख नहीं किया जाता है। संख्याओं के मामले में, ऐसा मानक एन्कोडिंग मौजूद है - बाइनरी एन्कोडिंग।
युवल फिल्मस

ठीक है, लेकिन यह वास्तव में एक सामान्य परिभाषा के रूप में नहीं बनता है, यह सिर्फ लोगों के समय को बचाता है क्योंकि उन्हें खोज करने की ज़रूरत नहीं है "इस मॉडल में" , हम बाइनरी एन्कोडिंग का उपयोग करते हैं "क्योंकि यह निहित है यदि वे इसे नहीं लिखते हैं। वे अभी भी अपने मॉडल के लिए एक और एन्कोडिंग चुन सकते हैं। मेरा मतलब" सामान्य परिभाषा "से है जो गुणों का एक सेट है जिसे प्रत्येक एन्कोडिंग को पूरा करने की अनुमति होनी चाहिए। एन्कोडिंग के रूप में।
स्टीफन लुत्ज़

4

सबसे पहले, आप बाइनरी स्ट्रिंग्स या किसी अन्य एन्कोडिंग होने के लिए "उपयुक्त एन्कोडिंग" को ठीक नहीं कर सकते। ऐसा इसलिए है क्योंकि आप गणना के कई मॉडल ढीले कर देंगे, क्योंकि गणना के विभिन्न मॉडलों में इनपुट और आउटपुट के बहुत अलग मॉडल हो सकते हैं। दूसरे शब्दों में, वे तार "बोल" नहीं सकते हैं।

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

आप "उपयुक्त एन्कोडिंग" को औपचारिक रूप दे सकते हैं यदि आप ट्यूरिंग मशीनों को गणना के अपने संदर्भ मॉडल के रूप में ठीक करते हैं, और फिर आवश्यकता है कि एन्कोडिंग और डिकोडिंग से और बाइनरी स्ट्रिंग्स को एक ट्यूरिंग मशीन द्वारा किया जाना चाहिए जो हमेशा रुकता है। उदाहरण के लिए, एक ट्यूरिंग मशीन एक प्राकृतिक संख्या को बाइनरी स्ट्रिंग के रूप में लैम्बडा शब्द में अनुवाद करने में सक्षम होगी जो इस संख्या को व्यक्त करती है, लैम्ब्डा कैलकुलस में कमी का अनुकरण करती है, और परिणाम को वापस बाइनरी स्ट्रिंग में अनुवाद करती है।

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


क्या यह संभव है कि आपके पास चीजें पिछले पैराग्राफ में बदल गई हैं? आप लिखते हैं कि एन्कोडिंग सरल मॉडल द्वारा किया जाता है, संदर्भ मॉडल नहीं - पिछले पैराग्राफ में आप संदर्भ मॉडल द्वारा किया गया एन्कोडिंग करना चाहते हैं, अन्य मॉडल (लैम्ब्डा कैलकुलस) नहीं।
स्टीफन लुत्ज़

यदि आप गणना के कमजोर मॉडल का अध्ययन कर रहे हैं तो आप कहीं भी ट्यूरिंग मशीनों का उपयोग नहीं करना चाहते हैं, यहां तक ​​कि एन्कोडिंग / डिकोडिंग चरण में भी नहीं। तब आप सिर्फ एन्कोडिंग चरण में सभी संगणनाएँ कर सकते थे और गणना के किसी भी मॉडल के बारे में ट्यूरिंग पूरा हो जाएगा। इसलिए आपको एन्कोडिंग / डिकोडिंग के लिए सरल संदर्भ मॉडल का उपयोग करने की आवश्यकता है।
होपजे

1
तब मैं यह नहीं देखता कि अगर हम ट्यूरिंग मशीनों को ठीक करते हैं तो हम चर्च के अंकों के साथ लैंबडा कैलकुलस की ट्यूरिंग-पूर्णता कैसे साबित कर सकते हैं। हमें यह मानना ​​होगा कि एलसी टीएम से कमजोर है, इसलिए "कमजोर" मॉडल लैंबडा कैल्क के कुछ उदाहरणों को एक नंबर दिया गया हैnएन इसकी एन्कोडिंग का उपयोग करना सीयूआरसी:एनएलटीआर जैसा सीयूआरसी(n), तब इसके कार्य की गणना करता है टीबीमैंnआरy:एलटीआरएलटीआर जो बाइनरी स्ट्रिंग का उत्पादन करता है wΣ*? कोडोम मेल नहीं खाते। यहां तक ​​कि अगर मैं लैम्बडाटर्म को स्ट्रिंग्स के रूप में व्याख्या करने की अनुमति देता हूं, तो अन्य मॉडल भी हैं जो "स्ट्रिंग्स" नहीं बोलते हैं, जैसा कि आपने कहा।
स्टीफन लुत्ज़
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.