ट्यूरिंग पूर्ण क्या है?


486

"ट्यूरिंग कम्प्लीट" का अर्थ क्या है?

क्या आप बहुत सारे सैद्धांतिक विवरणों को जाने बिना, एक सरल व्याख्या दे सकते हैं?


2
इस SO प्रश्न पर कुछ बहुत अच्छे लिंक ।
लेज़र

जवाबों:


323

यहाँ संक्षिप्त विवरण है:

ट्यूरिंग कम्प्लीट सिस्टम का मतलब एक ऐसी प्रणाली है जिसमें एक प्रोग्राम लिखा जा सकता है जो एक उत्तर देगा (हालांकि रनटाइम या मेमोरी के बारे में कोई गारंटी नहीं है)।

इसलिए, अगर कोई कहता है कि "मेरी नई चीज़ ट्यूरिंग कम्प्लीट है" जिसका अर्थ सिद्धांत में है (हालांकि अक्सर व्यवहार में नहीं है) इसका उपयोग किसी भी संगणना समस्या को हल करने के लिए किया जा सकता है।

शायद ही कभी यह एक मजाक है ... एक आदमी ने vi में एक ट्यूरिंग मशीन सिम्युलेटर लिखा था, इसलिए यह कहना संभव है कि vi दुनिया में कभी भी आवश्यक एकमात्र कम्प्यूटेशनल इंजन है।


18
आगे पढ़ने के लिए, एनोटेट ट्यूरिंग देखें। बहुत मंजूर। amazon.com/Annotated-Turing-Through-Historic-Computability/dp/…
i_am_jorf

43
"अक्सर व्यवहार में नहीं" गलत है। कोई भी प्रणाली व्यवहार में कभी ट्यूरिंग-पूर्ण नहीं होती है, क्योंकि किसी भी वास्तविक प्रणाली में एक अनंत टेप नहीं होता है। हमारा वास्तव में मतलब यह है कि कुछ प्रणालियों में ट्यूरिंग-पूर्णता को अनुमानित करने की क्षमता होती है, जो उनकी उपलब्ध स्मृति की सीमा तक होती है।
शेल्बी मूर III

22
लेकिन Vi दुनिया में अभी तक का एकमात्र कम्प्यूटेशनल इंजन है ... ;-)
जोएगर

4
क्या Emacs एक टर्निंग मशीन भी है? XD
anlem0lars

6
किसी ने हाल ही में दिखाया कि PowerPoint ट्यूरिंग कम्प्लीट भी है।
12

192

यहाँ सबसे सरल व्याख्या है

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

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

उदाहरण के लिए: मान लीजिए कि एक प्रोग्राम है जो 10 नंबर लेता है और उन्हें जोड़ता है। ट्यूरिंग मशीन इस प्रोग्राम को आसानी से चला सकती है। लेकिन अब कल्पना करें कि किसी कारण से आपकी प्रोग्रामिंग भाषा समान जोड़ नहीं दे सकती है। यह इसे "ट्यूरिंग अपूर्ण" (बोलने के लिए) बना देगा। दूसरी ओर, अगर यह किसी भी प्रोग्राम को चला सकता है जो यूनिवर्सल ट्यूरिंग मशीन चला सकता है, तो यह ट्यूरिंग पूरा हो गया है।

अधिकांश आधुनिक प्रोग्रामिंग लैंग्वेज (जैसे जावा, जावास्क्रिप्ट, पर्ल, आदि) पूरी तरह से ट्यूरिंग हैं क्योंकि वे प्रत्येक प्रोग्राम को चलाने के लिए आवश्यक सभी सुविधाओं को लागू करते हैं जैसे कि जोड़, गुणा, अगर-और शर्त, रिटर्न स्टेटमेंट, स्टोर करने / पुनः प्राप्त करने / मिटाने के तरीके डेटा और इतने पर।

अपडेट: आप मेरे ब्लॉग पोस्ट पर अधिक जान सकते हैं: "जावास्क्रिप्ट इज ट्यूरिंग कम्प्लीट" - समझाया गया


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

कैसे जावास्क्रिप्ट पूरा हो सकता है? इसमें फ़ाइल सिस्टम, उचित मल्टीथ्रेडिंग एपीआई का अभाव है। इसकी टन सीमाएँ हैं, मुख्य रूप से इसके ब्राउज़र सुरक्षा सैंडबॉक्स प्रकृति के कारण। इसे शायद ही 'प्रोग्रामिंग लैंग्वेज' कहा जा सकता है। देखें कि एब्सट्रैक्शन की स्क्रिप्टिंग के कितने वेरिएंट मौजूद हैं (प्रतिक्रिया, टाइपस्क्रिप्ट .. आप इसे नाम दें), वह सब जो जेएस के पास नहीं है उसकी भरपाई करने के लिए। (asm.js यहाँ उल्लेख किया जाना चाहिए)। जावा, पायथन या C ++ सत्य 'ट्यूरिंग कम्प्लीट' उदाहरण हैं। लेकिन जे.एस. मुझे ऐसा नहीं लगता।
माइकल IV

2
@MichaelIV टूरिंग मशीन में फ़ाइल सिस्टम / थ्रेड्स नहीं थे। JS पूरी तरह से पूर्ण भ्रमण कर रही है।
बक्स

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

86

से विकिपीडिया :

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

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

मुझे नहीं पता कि आप इससे ज्यादा गैर-तकनीकी कैसे हो सकते हैं, सिवाय इसके कि "ट्यूरिंग का मतलब पूरा करने में सक्षम 'पर्याप्त समय और स्थान दिए गए कम्प्यूटेशनल समस्या का जवाब देने में सक्षम है"।


4
इस संदर्भ में, "कंप्यूटिंग डिवाइस" क्या है?
डोपाट्रमण

30
अधिकांश विकिपीडिया लेखों के साथ, हालांकि यह उद्धरण तकनीकी रूप से सही है, यह उस व्यक्ति को कोई मूल्य नहीं देता है जिसे इस विषय पर कोई ज्ञान नहीं है और इसे समझने की कोशिश कर रहा है। चीजों को ठीक से समझाने में सक्षम होना खुद का एक विज्ञान है :)
लाचो टॉमोव

76

अनौपचारिक परिभाषा

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

ऐसी चीजें जो किसी भाषा को पूरा नहीं कर सकती हैं

एक ट्यूरिंग मशीन क्या यह स्मृति में देखता है के आधार पर निर्णय कर सकते हैं - 'भाषा' है कि केवल समर्थन करता है +, -, *, और /पूर्णांकों पर ट्यूरिंग पूरा नहीं कर रहा है क्योंकि यह अपनी इनपुट के आधार पर एक विकल्प नहीं कर सकता है, लेकिन एक ट्यूरिंग मशीन कर सकते हैं।

ट्यूरिंग मशीन हमेशा के लिए चल सकती है - अगर हमने जावा, जावास्क्रिप्ट, या पायथन लिया और किसी भी प्रकार के लूप, गोटो या फंक्शन कॉल को करने की क्षमता को हटा दिया, तो यह ट्यूरिंग पूर्ण नहीं होगा क्योंकि यह एक मनमाना संगणना नहीं कर सकता है कभी खत्म नहीं होता। Coq एक प्रमेय कहावत है कि ऐसे कार्यक्रमों को व्यक्त नहीं किया जा सकता है जो समाप्त नहीं करते हैं, इसलिए यह ट्यूरिंग पूर्ण नहीं है।

ट्यूरिंग मशीन अनंत मेमोरी का उपयोग कर सकती है - एक भाषा जो बिल्कुल जावा की तरह थी, लेकिन एक बार समाप्त हो जाने पर यह 4 गीगाबाइट्स से अधिक मेमोरी का उपयोग करती है, ट्यूरिंग पूर्ण नहीं होगी, क्योंकि ट्यूरिंग मशीन अनंत मेमोरी का उपयोग कर सकती है। यही कारण है कि हम वास्तव में एक ट्यूरिंग मशीन का निर्माण नहीं कर सकते हैं , लेकिन जावा अभी भी एक ट्यूरिंग पूरी भाषा है क्योंकि जावा भाषा में इसे अनंत स्मृति का उपयोग करने से रोकने वाला कोई प्रतिबंध नहीं है। यह एक कारण है कि नियमित अभिव्यक्तियाँ ट्यूरिंग पूर्ण नहीं हैं।

ट्यूरिंग मशीन में रैंडम एक्सेस मेमोरी होती है - एक ऐसी भाषा जो आपको मेमोरी के साथ काम करने देती है pushऔर popएक स्टैक के संचालन के साथ ट्यूरिंग पूर्ण नहीं होगी। अगर मेरे पास एक 'भाषा' है, जो एक बार एक स्ट्रिंग पढ़ती है और केवल स्टैक से पुश और पॉपिंग करके मेमोरी का उपयोग कर सकती है, तो यह मुझे बता सकता है कि क्या (स्ट्रिंग में प्रत्येक का )बाद में धक्का होता है जब यह देखता है (और जब यह देखता है तो पॉपिंग करता है )। हालाँकि, यह मुझे नहीं बता सकता है कि प्रत्येक (का अपना )बाद में है और प्रत्येक [का अपना ]बाद में है (ध्यान दें कि ([)]यह मानदंड पूरा ([]]करता है, लेकिन नहीं)। एक ट्यूरिंग मशीन ट्रैक करने के लिए रैंडम एक्सेस मेमोरी का उपयोग कर सकते ()है और[]अलग से है, लेकिन केवल एक ढेर के साथ इस भाषा नहीं कर सकते।

ट्यूरिंग मशीन किसी अन्य ट्यूरिंग मशीन का अनुकरण कर सकती है - एक ट्यूरिंग मशीन, जब एक उपयुक्त 'प्रोग्राम' दिया जाता है, तो ट्यूरिंग मशीन के 'प्रोग्राम' को ले सकता है और मनमाने इनपुट पर अनुकरण कर सकता है। यदि आपके पास एक ऐसी भाषा है जिसे पायथन इंटरप्रेटर लागू करने से मना किया गया था, तो यह ट्यूरिंग पूरा नहीं होगा।

ट्यूरिंग की पूरी भाषा के उदाहरण हैं

यदि आपकी भाषा में अनंत रैंडम एक्सेस मेमोरी, सशर्त निष्पादन और बार-बार निष्पादन के कुछ रूप हैं, तो यह संभवतः ट्यूरिंग पूर्ण है। वहाँ अधिक विदेशी प्रणाली है कि अभी भी सब कुछ एक ट्यूरिंग मशीन प्राप्त कर सकते हैं, जो उन्हें ट्यूरिंग भी पूरा करता है:

  • अनपम लमबा पथरी
  • कॉनवे का जीवन का खेल
  • C ++ टेम्प्लेट
  • Prolog

11
SQL निश्चित रूप से ट्यूरिंग-पूर्ण है। इसमें स्क्रिप्टिंग क्षमताएं हैं जो किसी भी गणना के लिए अनुमति देती हैं।
नजीफनाब

53
नहीं, आप SQL को T-SQL / PL-SQL जैसे एक्सटेंशन के साथ भ्रमित कर रहे हैं। ANSI SQL ट्यूरिंग-पूर्ण नहीं है। लेकिन TSQL / PLSQL - है।
अग्निस वसीलियास्कस

15
जाहिरा तौर पर एसक्यूएल ट्यूरिंग-पूर्ण है: stackoverflow.com/questions/900055/…
न्यूटैंग

2
ट्यूरिंग पूर्णता के अनुसार - सिस्टम ट्यूरिंग पूर्ण है यदि इसका उपयोग किसी एकल-टैपिंग ट्यूरिंग मशीन का अनुकरण करने के लिए किया जा सकता है। लेकिन ऊपर के उदाहरण में, जैसा कि मैंने समझा कि देवों ने विशेष रूप से निर्माण किया था cyclic tag systemऔर नहीं universal cyclic tag system। इसलिए - लेख एसक्यूएल ट्यूरिंग पूर्णता साबित नहीं करता है। (या मुझे कुछ गलत समझा)
अग्निस वसीलियास्कस

2
ट्यूरिंग-पूर्ण भाषा का कोई वास्तविक कार्यान्वयन नहीं है, क्योंकि कोई अनंत टेप नहीं हैं। हमारा वास्तव में मतलब यह है कि कुछ भाषाओं में ट्यूरिंग-पूर्णता को अनुमानित करने की क्षमता होती है, जो होस्ट मशीन की उपलब्ध मेमोरी की सीमा तक होती है।
शेल्बी मूर III

17

मौलिक रूप से, ट्यूरिंग-पूर्णता एक संक्षिप्त आवश्यकता है, अबाधित पुनरावृत्ति।

स्मृति से भी बंधे नहीं।

मैंने इसके बारे में स्वतंत्र रूप से सोचा था, लेकिन यहाँ मुखरता की कुछ चर्चा है। एलएसपी की मेरी परिभाषा अधिक संदर्भ प्रदान करती है।

यहाँ अन्य उत्तर ट्यूरिंग-पूर्णता के मूल सार को सीधे परिभाषित नहीं करते हैं।


परिमित राज्य ऑटोमेटा को अप्रतिबंधित पुनरावृत्ति की अनुमति है। बिंदु में मामला: a*

3
@ राइमॉइड FSM में सीमित मेमोरी होती है- # परिमित # राज्यों की) -लेकिन बिना पूंछ के अनुकूलन के अबाधित पुनरावृत्ति में असीमित मेमोरी होनी चाहिए। मैंने अपनी परिभाषा को केवल पूंछ अनुकूलन के साथ अनबिके पुनरावृत्ति के सबसेट तक सीमित नहीं किया। कृपया अपने पतन को दूर करें।
शेल्बी मूर तृतीय

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

@ राइमोइड एन्यूमरेशन सटीक का प्रतिसाद है, उदाहरण के लिए एक इंच के अंशों की अधिकतम सटीक गणना करना। असंबद्ध पुनरावृत्ति का अर्थ है हर संभव पुनरावृत्ति, जो एक अनंत टेप के बिना असंभव है। पूरी तरह से सामान्यीकृत पुनरावर्तन (केवल मॉडल के भीतर सामान्य नहीं) हमेशा ट्यूरिंग-पूर्ण होता है। मैं सामान्यीकृत पुनरावृत्ति और किसी भी संभावित संगणना को निष्पादित करने की क्षमता के बीच सामंजस्य स्थापित कर रहा हूं। यह नोट करने के लिए एक महत्वपूर्ण तुल्यता है।
शेल्बी मूर III

"अनबॉर्स्ड रिकर्सन का अर्थ है रिकर्सन का हर संभव रूप" जो आपका रीडिंग है। ज्यादातर SO यूजर्स के लिए 'अनबाउंड रिकर्सन' का मतलब है while (p) { /* ... */ }। "मैं सामान्यीकृत पुनरावृत्ति और किसी भी संभावित संगणना को निष्पादित करने की क्षमता के बीच समानता का उल्लेख कर रहा हूं।" चर्च की थीसिस एक बहुत अलग मामला है और वास्तव में अलग से चर्चा की जानी चाहिए ।

13

ट्यूरिंग कम्प्लीट का मतलब है कि यह ट्यूरिंग मशीन की तरह कम से कम शक्तिशाली है । इसका मतलब यह है कि ट्यूरिंग मशीन द्वारा गणना की जा सकने वाली किसी चीज की गणना ट्यूरिंग कंप्लीट सिस्टम द्वारा की जा सकती है।

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


3
ध्यान दें कि यह सब दीवार के समय की अवहेलना करता है। यह सिर्फ कहता है "यह किया जा सकता है"।
थोरबजोरन रावन एंडरसन

@ ThorbjørnRavnAndersen वास्तव में, यह पूरी तरह से शारीरिक कम्प्यूटेबिलिटी की अवहेलना करता है। यह न केवल ब्रह्मांड की उम्र से अधिक समय ले सकता है, बल्कि यह ब्रह्मांड में सभी fermions और bosons के साथ निर्माण की तुलना में अधिक मेमोरी का उपयोग भी कर सकता है।
वेलोन फ्लिन

ब्रह्मांड में बोसोन और फरमान की मात्रा की कोई सीमा नहीं है। हम नहीं जानते, और शायद कभी पता नहीं चलेगा, यह आकार है। हर बार जब आप 'ब्रह्मांड' में एक्स की संख्या के बारे में पढ़ते हैं, तो लोग वास्तव में अवलोकन योग्य ब्रह्मांड के बारे में बात कर रहे हैं । हालांकि दिलचस्प है, यह वास्तविक भौतिक सीमा नहीं है।
स्टिजन डे विट

9

सरलतम शब्दों में, ट्यूरिंग-पूर्ण प्रणाली किसी भी संभावित कम्प्यूटेशनल समस्या को हल कर सकती है।

प्रमुख आवश्यकताओं में से एक यह है कि स्क्रैडपैड का आकार अनबाउंड हो और स्क्रैडपैड से पूर्व लिखता हुआ एक्सेस करने के लिए रिवाइंड करना संभव है।

इस प्रकार व्यवहार में कोई भी प्रणाली ट्यूरिंग-पूर्ण नहीं है।

बल्कि कुछ सिस्टम ट्यूरिंग-कम्प्लीटनेस को अनबाउंड मेमोरी मॉडलिंग करके और किसी भी संभावित संगणना को अंजाम देते हैं जो सिस्टम की मेमोरी के भीतर फिट हो सकते हैं।


2

मुझे लगता है कि अवधारणा का महत्व "ट्यूरिंग कम्प्लीट" एक कंप्यूटिंग मशीन की पहचान करने की क्षमता में है (जरूरी नहीं कि एक मैकेनिकल / इलेक्ट्रिकल "कंप्यूटर") जो इसकी प्रक्रियाओं को "सरल" निर्देशों में समाहित कर सकता है, जो सरल और सरल से बना है। निर्देश, कि एक सार्वभौमिक मशीन व्याख्या कर सकती है और फिर निष्पादित कर सकती है।

मैं एनोटेट ट्यूरिंग की अत्यधिक अनुशंसा करता हूं

@ मर्क मुझे लगता है कि आप जो समझा रहे हैं वह यूनिवर्सल ट्यूरिंग मशीन और ट्यूरिंग कम्प्लीट के वर्णन के बीच का मिश्रण है।

कुछ ऐसा जो ट्यूरिंग कम्प्लीट है, एक व्यावहारिक अर्थ में, एक मशीन / प्रक्रिया / संगणना होगी जिसे एक प्रोग्राम के रूप में लिखा और प्रस्तुत किया जा सकता है, जिसे एक यूनिवर्सल मशीन (एक डेस्कटॉप कंप्यूटर) द्वारा निष्पादित किया जा सकता है। हालांकि यह समय या भंडारण के लिए विचार नहीं करता है, जैसा कि दूसरों द्वारा उल्लेख किया गया है।


2

मैं सरल शब्दों में क्या समझता हूँ:

ट्यूरिंग कम्प्लीट: एक प्रोग्रामिंग लैंग्वेज / प्रोग्राम जो कंपटीशन कर सकता है, ट्यूरिंग कम्प्लीट।

उदाहरण के लिए :

  1. क्या आप जस्ट HTML का उपयोग करके दो नंबर जोड़ सकते हैं । (उत्तर av नहीं ’है, आपको इसके अलावा प्रदर्शन करने के लिए जावास्क्रिप्ट का उपयोग करना होगा।), इसलिए HTML ट्यूरिंग कम्प्लीट नहीं है।

  2. Java, C ++, Python, Javascript, Solidity for Ethereum आदि जैसी भाषाएँ ट्यूरिंग कम्प्लीट हैं क्योंकि आप इस भाषा का उपयोग करके दो संख्याओं को जोड़ना जैसे कम्प्यूटेशन कर सकते हैं।

उम्मीद है की यह मदद करेगा।


0

इसका पूरा अगर यह परीक्षण और शाखा कर सकता है (एक 'अगर' है)


1
इस तरह के एक पुराने प्रश्न के लिए, यह देखना सार्थक होगा कि क्या दूसरों ने पहले से ही समान या अधिक महत्वपूर्ण योगदान दिया है
एलन ओलाघन

उत्तर की शुद्धता के बारे में निश्चित नहीं है। लेकिन यह वास्तव में सरल व्याख्या है जो मैंने पहले कभी नहीं देखी थी। मजेदार बात: बहुत समय पहले (मैंने अपना पहला कोड लिखने के बाद) मैंने उसी स्पष्टीकरण का उपयोग सबसे सरल प्रोसेसर को परिभाषित करने के लिए भी किया था।
विक्टर यारमा

यह एक उत्कृष्ट, संक्षिप्त और सटीक परिचालन परिभाषा पर एक उत्कृष्ट पहला प्रयास है। हालाँकि, शाखा को लूपिंग की अनुमति देनी होती है और क्या यह ऐसा नहीं है कि मशीन को सबरूटीन कॉल (यानी: पुनरावृत्ति) की भी अनुमति देनी चाहिए? क्या पुनरावृत्ति के साथ हर कार्यक्रम के लिए नेस्टेड छोरों का एक चपटा कार्यक्रम है?
user3673

0

ट्यूरिंग मशीन के लिए आवश्यक है कि कोई भी कार्यक्रम हालत परीक्षण कर सके। वह मौलिक है।

एक खिलाड़ी पियानो रोल पर विचार करें। खिलाड़ी पियानो संगीत का एक अत्यधिक जटिल टुकड़ा खेल सकता है, लेकिन संगीत में कोई भी सशर्त तर्क नहीं है। यह ट्यूरिंग कम्प्लीट है।

सशर्त तर्क शक्ति और मशीन का खतरा है जो ट्यूरिंग कम्प्लीट है।

पियानो रोल हर बार रुकने की गारंटी है। टीएम के लिए ऐसी कोई गारंटी नहीं है। इसे "रुकने की समस्या" कहा जाता है।


-1

जैसा कि वायलॉन फ्लिन ने कहा :

ट्यूरिंग कम्प्लीट का मतलब है कि यह ट्यूरिंग मशीन की तरह कम से कम शक्तिशाली है।

मेरा मानना ​​है कि यह गलत है, एक प्रणाली ट्यूरिंग पूर्ण है यदि यह बिल्कुल ट्यूरिंग मशीन के समान शक्तिशाली है, अर्थात मशीन द्वारा किया जाने वाला प्रत्येक गणना सिस्टम द्वारा किया जा सकता है, लेकिन सिस्टम द्वारा किया गया प्रत्येक गणना ट्यूरिंग मशीन द्वारा भी किया जा सकता है। ।


1
मुझे लगता है कि आप मान रहे हैं कि चर्च-ट्यूरिंग थीसिस इस निष्कर्ष पर पहुंचने के लिए सही है। यह साबित होना बाकी है। जिस संपत्ति का आप वर्णन कर रहे हैं, उसे 'ट्यूरिंग इक्विलेंट' कहा जाता है।
वायलोन फ्लिन

1
@WaylonFlinn नहीं, वह सही है। "संपूर्णता" का अर्थ है कि यह कम से कम एक चीज़ के रूप में मजबूत है, लेकिन यह भी मजबूत नहीं है। "एनपी-कम्प्लीट" से तुलना करें।
डेविन जीनपिएरे

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

@Waylon स्रोत? कुछ भी नहीं मैं इससे सहमत हूँ (जैसे en.wikipedia.org/wiki/Turing_completeness )
डेविन जीनपिएरे

4
@DevinJeanpierre आप इसे जिस विकिपीडिया लेख से लिंक करते हैं, वहीं इसे कहते हैं। औपचारिक परिभाषा खंड का हवाला देते हुए: "एक कम्प्यूटेशनल प्रणाली जो प्रत्येक ट्यूरिंग-कम्प्यूटेबल फ़ंक्शन की गणना कर सकती है, जिसे ट्यूरिंग कंप्लीट कहा जाता है", "एक ट्यूरिंग-पूर्ण सिस्टम को ट्यूरिंग समतुल्य कहा जाता है यदि प्रत्येक फ़ंक्शन जो गणना कर सकता है वह कम्प्यूटिंग कंप्यूरेबल भी है"
वेलोन फ्लिन

-2

अधिकांश प्रोग्रामर से परिचित व्यावहारिक भाषा के शब्दों में, ट्यूरिंग पूर्णता का पता लगाने का सामान्य तरीका यह है कि यदि भाषा बयान करते समय (या ऊपरी ऊपरी सीमा के साथ, बयानों के लिए पास्कल-शैली के विपरीत) नेस्टेड अनबाउंड के अनुकरण की अनुमति देती है।


1
एक सिंगल अनबाउंड जबकि लूप एक ट्यूरिंग मशीन का अनुकरण करने के लिए पर्याप्त है।
मास्टरएक्सिलो

-8

एक संबंधपरक डेटाबेस इनपुट अक्षांश और स्थानों और सड़कों के अनुदैर्ध्य, और उनके बीच सबसे छोटे मार्ग की गणना कर सकते हैं - नहीं। यह एक समस्या है जो दिखाता है कि SQL ट्यूरिंग पूरा नहीं है।

लेकिन C ++ इसे कर सकता है, और कोई भी समस्या कर सकता है। इस प्रकार यह है।


10
अंकों के बीच सबसे छोटे पथ की गणना करने में सक्षम होने के नाते ट्यूरिंग पूर्ण की परिभाषा नहीं है। सिर्फ एक उदाहरण की तुलना में इसमें बहुत कुछ है।
ईवा

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