मैं गैर-पहचानने योग्य भाषाओं के अस्तित्व को समझने की कोशिश कर रहा हूं। इसे प्राप्त करने के लिए, मुझे यह जानना होगा कि ट्यूरिंग मशीन केवल एक भाषा को क्यों पहचानती है, एकाधिक को नहीं। ऐसा क्यों है?
मैं गैर-पहचानने योग्य भाषाओं के अस्तित्व को समझने की कोशिश कर रहा हूं। इसे प्राप्त करने के लिए, मुझे यह जानना होगा कि ट्यूरिंग मशीन केवल एक भाषा को क्यों पहचानती है, एकाधिक को नहीं। ऐसा क्यों है?
जवाबों:
ट्यूरिंग मशीन द्वारा मान्यता प्राप्त भाषा, परिभाषा के अनुसार, यह तार के सेट को स्वीकार करती है। जब एक इनपुट मशीन को दिया जाता है, तो इसे स्वीकार किया जाता है या नहीं। उस मशीन का कोई विशेष इनपुट या तो हमेशा स्वीकार किया जाता है (भाषा में) या हमेशा स्वीकार नहीं किया जाता (भाषा में नहीं)। इसलिए ऐसा कोई तंत्र नहीं है जिसके द्वारा एक एकल ट्यूरिंग मशीन भी एक से अधिक लैंग्वेज स्वीकार कर सके।
इसे इस तरह से सोचें: एक टीएम एक लोड किए गए सॉफ़्टवेयर के साथ एक कंप्यूटर की तरह है। प्रत्येक सॉफ्टवेयर एक काम करता है, है ना? उदाहरण के लिए, अपने कंप्यूटर के बारे में सोचें और मान लें कि इसमें केवल 1 प्रोग्राम लोड है। तब पीसी + "फोटोशॉप" केवल फोटोशॉप करता है, जबकि पीसी + "मेरा स्वीपर" केवल खानों को स्वीप करता है।
तो एक ट्यूरिंग मशीन एक बहुत ही सरल प्राणी, कि प्रत्येक रन पर एक ही इनपुट और आउटपुट या तो एक हो जाता है है हाँ या नहीं । किस इनपुट पर यह हां कहता है, और जिस पर यह नहीं कहता है - यह टीएम के "प्रोग्राम" द्वारा निर्धारित है जैसा कि इसके राज्यों और संक्रमण फ़ंक्शन द्वारा निर्धारित किया गया है। एक बार ये तय हो जाने के बाद, "प्रोग्राम" तय हो जाता है, और किसी भी इनपुट के लिए केवल एक ही उत्तर होता है: हां या नहीं (स्वीकार / अस्वीकार)। यह बिल्कुल एकल भाषा को परिभाषित करता है = सभी इनपुट जो टीएम को दिए जाने पर एक हाँ उत्पन्न करते हैं।
दूसरी ओर, सेट के सभी टीएमएस सभी संभव कार्यक्रमों के साथ कंप्यूटर + "सॉफ्टवेयर" के सेट के बराबर है। अब अधिक भाषाओं का फैसला किया जा सकता है - लेकिन फिर भी, प्रत्येक विशिष्ट टीएम केवल एक भाषा का फैसला करता है (या पहचानता है)।
ट्यूरिंग मशीन काम करती है क्योंकि वे ऐसा करते हैं क्योंकि हम उन्हें परिभाषित करते हैं। हमारे पास और अधिक परिष्कृत परिभाषाएँ हो सकती हैं, लेकिन सवाल यह है कि क्या यह एक उद्देश्य की पूर्ति करेगा, क्या यह हमें और चीजें करने की अनुमति देगा। और, जहां तक हम जानते हैं, उत्तर नहीं है।
दो भाषाओं को पहचानने वाली ट्यूरिंग मशीनों के मॉडल बनाना बहुत आसान है। और एल 2 भाषाओं को देखते हुए , हम एक टीएम को 2 प्रकार के राज्य को स्वीकार कर सकते हैं: एल 1 के लिए और एल 2 के लिए एक । एक टीएम को L i को स्वीकार करने के लिए कहा जाएगा यदि वह किसी बिंदु पर इसी स्थिति को स्वीकार करता है। लेकिन यह देखने के लिए गणना शुरू होगी कि क्या यह दूसरे प्रकार के स्वीकार करने वाले राज्य में भी प्रवेश कर सकता है। और हमें इसकी आवश्यकता हो सकती है कि यह बाद में रुक जाए, या संभवतः नहीं। फिर आप ऐसी मशीनों पर संपूर्ण सिद्धांत बना सकते हैं। यह काम करता है और आम तौर पर हम जो करते हैं उससे बहुत अधिक जटिल होता है।
मुद्दा यह है कि सिद्धांत को करने के लिए सभी प्रकार के वेरिएंट का उपयोग किया जा सकता है। इसके अलावा बहुत भिन्न दृष्टिकोणों की गणना करने की कोशिश की गई है कि संगणना क्या है, जैसे कि लैम्ब्डा-कैलकुलस, संकलक तर्क, पुनरावर्ती कार्य सिद्धांत, और बहुत कुछ।
यह हमेशा दिखाया गया है कि उनमें से कोई भी ऐसा कुछ भी नहीं करता है जो हमारे सरल मॉडल द्वारा नहीं किया जा सकता है जहां टीएम केवल एक भाषा को पहचानता है। इस हद तक कि यह अनुमान लगाया गया है कि यह कुछ भी करता है जो किया जा सकता है। इसे चर्च-ट्यूरिंग थीसिस कहा जाता है । यह कम्प्यूटेबिलिटी सिद्धांत की आधारशिला है, जहां तक हम जानते हैं, यह निर्धारित करता है कि कौन सी भाषाएं पहचानने योग्य हैं, या नहीं।
इसलिए हम एक सरल मॉडल का उपयोग कर सकते हैं, क्योंकि एक जटिल हमारे जीवन को कठिन बना देगा, बिना किसी वास्तविक लाभ के।
बेशक, हम कभी-कभी अन्य मॉडलों का उपयोग करते हैं क्योंकि वे हमें कुछ मुद्दों को बेहतर ढंग से समझने की अनुमति देते हैं।
मैं रिचार्बी के उत्तर में एक बिंदु पर विस्तार करना चाहता हूं:
जब एक इनपुट मशीन को दिया जाता है, तो इसे स्वीकार किया जाता है या नहीं।
इसका कारण यह है कि ट्यूरिंग मशीन नियतात्मक है: एक ही इनपुट और शुरुआती स्थिति को देखते हुए, यह हमेशा हर बार आपके द्वारा चलाए जाने पर एक ही काम करेगा (या तो एक ही स्वीकार किए गए राज्य में या एक ही अस्वीकार स्थिति में समाप्त होता है, या लूप हमेशा के लिए। )।
इसके अतिरिक्त, हम आसानी से यह साबित कर सकते हैं कि प्रत्येक ट्यूरिंग मशीन बिल्कुल एक भाषा को पहचानती है:
मान लीजिए, विरोधाभास से, कि एक ट्यूरिंग मशीन एम दो अलग-अलग भाषाओं एल 1 और एल 2 को पहचानती है। चूंकि L1 और L2 अलग-अलग हैं, इसलिए एक स्ट्रिंग S मौजूद होना चाहिए जो L1 में है, लेकिन L2 में नहीं है (बिना सामान्यता के नुकसान के - यह चारों ओर का दूसरा तरीका हो सकता है, लेकिन L1 और L2 के साथ यहां से प्रूफ उसी तरह आगे बढ़ेगा )। अब M को S पर चलाएं। यदि यह स्वीकार करता है, तो एक विरोधाभास पहुंच जाता है क्योंकि तब S L2 में होगा। यदि यह स्वीकार नहीं करता है (अस्वीकार या लूप), तो एक विरोधाभास पहुंच जाता है क्योंकि एस एल 1 में नहीं होगा।
ट्यूरिंग मशीन एक भाषा को पहचानती है क्योंकि यह शब्द की परिभाषा को पहचानती है : ट्यूरिंग मशीन जिस भाषा को पहचानती है वह सभी स्ट्रिंग्स / इनपुट का सेट है जिसके लिए ट्यूरिंग मशीन स्वीकार करती है।
इसका उत्तर इस बात पर निर्भर करता है कि आप "ट्यूरिंग मशीन" का अर्थ क्या समझते हैं। किसी भी कम्प्यूटेशनल मॉडल के तीन घटक होते हैं (यहां पर डिक्रड्स / एक्सेसर को सीमित करना):
ट्यूरिंग मशीनों के लिए, सिंटैक्स राज्य सेट, वर्णमाला, संक्रमण फ़ंक्शन और इसी तरह का टपल होगा। अर्थ विज्ञान एक की परिभाषा हैं अभिकलन , कि वर्णन करने के लिए कैसे क्रम कुछ कदम के बाद टेप की सामग्री प्राप्त करने के लिए में संक्रमण समारोह लागू है। स्वीकृति कसौटी कहा, "जब ऐसा होता है, हम बंद करो और नतीजा यह है कि है" है।
अब, ट्यूरिंग मशीन केवल सिंटैक्स और सिमेंटिक्स आपके लिए हैं, या क्या आप स्वीकृति मानदंड भी शामिल करते हैं? यदि आप पूर्व करते हैं, तो कोई भी TM अलग-अलग स्वीकृति मानदंड का उपयोग करके कई भाषाओं को स्वीकार कर सकता है; आप स्वीकृति क्रिटेरा को भी स्वीकार कर सकते हैं जो कई स्वीकृत भाषाओं के लिए अनुमति देते हैं (उदाहरण के लिए दो-पैरामीटर टीएम के बारे में सोचें)। यदि आप उत्तरार्द्ध करते हैं, हालांकि, कोई विग्ल रूम नहीं है और सामान्य स्वीकृति मानदंड वास्तव में प्रति टीएम (इस प्रकार का) एक भाषा के लिए अनुमति देता है।
टीसीएस में शब्द की सामान्य परिभाषा और उपयोग में सभी तीन घटक शामिल हैं। यह समझ में आता है क्योंकि, विशेष रूप से, स्वीकृति मानदंड को बदलने से वस्तुओं का वर्ग बदल सकता है, जो ऑटोमेटन बहुत अधिक प्रतिनिधित्व करता है , इसलिए हमें यह जानने के लिए कि हम क्या बात करते हैं, कसौटी को ठीक करने की आवश्यकता है।
एक उदाहरण के रूप में, परिमित ऑटोमेटा और बुची ऑटोमेटा की तुलना करें । सिंटेक्स और शब्दार्थ बिल्कुल एक जैसे हैं, लेकिन एक परिमित शब्दों को स्वीकार करता है, जबकि दूसरा अनंत शब्दों को स्वीकार करता है!
यह पता लगाने की कोशिश करें कि क्या होता है यदि आप बुची ऑटोमेटा की स्वीकृति मानदंड को टीएम परिभाषा में रखते हैं।
अब, सामान्य स्वीकृति मानदंड एक सार्थक क्यों है? जब तक आप अपने आप को परिमित स्ट्रिंग्स की भाषा तक सीमित रखते हैं, तब तक प्रति टीएम पर कई भाषाओं में परिवर्तन नहीं होगा, वैचारिक स्तर पर: हम अभी भी भाषाओं के एक ही सेट को स्वीकार कर पाएंगे। तो हम सरल मॉडल से चिपके रहते हैं। हालांकि, यह कहना नहीं है कि अधिक शामिल मॉडल अनुप्रयोगों में मॉडलिंग के लिए उपयोगी नहीं हो सकता है - लेकिन यह टीसीएस के दायरे से बाहर है (जो कि प्राधिकार का अधिकार है)।
एक भाषा तार का एक सेट है। क्या दो भाषाओं का संघ L1 नहीं है, और L2 तार का एक सेट है (इसे L3 कहते हैं), और इसलिए एक और भाषा होगी? फिर, यदि ट्यूरिंग मशीन दोनों भाषाओं को पहचानती है, तो यह L3, एकल भाषा को पहचानती है।
कोई अन्य उत्तर यूनिवर्सल ट्यूरिंग मशीन (ओं) के अस्तित्व को इंगित नहीं करता है, जैसा कि ट्यूरिंग ने अपने पड़ाव प्रमाण में पहले वर्णित / खोजा था। हां, TM एक एकल पुनरावृत्ति करने योग्य भाषा को स्वीकार करता है, लेकिन यदि वह इनपुट स्ट्रिंग के साथ इनपुट पर एनकोडेड है तो UTM किसी भी पुनरावर्ती भाषा को पहचान सकता है। तो सवाल कुछ zenlike गुणवत्ता है। टीएम दोनों केवल एक ही भाषा और सभी संभव सांकेतिक भाषाओं को स्वीकार करते हैं।