ट्यूरिंग मशीन के इनपुट वर्णमाला का रिक्त प्रतीक क्यों नहीं माना जाता है?


12

ट्यूरिंग मशीनों की परिभाषा हमेशा खाली प्रतीक के बारे में स्पष्ट होती है जो इनपुट वर्णमाला का हिस्सा नहीं होती है।

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

यह समझने के लिए कि अंतिम वाक्य में 'लगता है', निम्नलिखित पर विचार करें।

डिफ़ॉल्ट सेटअप में, इनपुट के दाईं ओर अनंत प्रतीक दिखाई देते हैं। जब टेप सिर पहले खाली प्रतीक पर चलता है, तो गणना केवल जारी रह सकती है, क्योंकि इसे स्वीकार या अस्वीकार करने की आवश्यकता नहीं है।

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

इस परिदृश्य पर विचार करना वास्तव में संभव है, आप इनपुट वर्णमाला के रिक्त प्रतीक भाग पर विचार क्यों नहीं करेंगे और आप इसे 'प्रारंभिक' इनपुट के भाग के रूप में शामिल करने की अनुमति क्यों नहीं देंगे?

शायद यह इनपुट को परिभाषित करने का एक तरीका है जैसे कि यह हमेशा अनंत नहीं है?


जब मैं कक्षा में था तो मैंने ट्यूरिंग मशीनों को डिज़ाइन किया था जो क्षेत्र के विभाजक के रूप में अपने इनपुट में the (स्थानीय रिक्त प्रतीक) की अनुमति देने का उपयोग करती थी।
जोशुआ

जवाबों:


23

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

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


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

1
{00}0,{1 1}1,{10,01}

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

3
@ योनातन नं। यह "सरल" है लेकिन एक खाली प्रतीक सरल है।
डेविड रिचेर्बी

3
@RosieF रिक्त टेप वर्णमाला का हिस्सा है; इनपुट वर्णमाला उसी का एक सबसेट है। और, निश्चित रूप से, आप यह निर्धारित कर सकते हैं कि इनपुट में कुछ परिस्थितियों में रिक्त स्थान कैसे हो सकते हैं (जैसा कि आपने किया) लेकिन यह सिर्फ परिभाषाओं को अधिक जटिल बनाता है। अधिक जटिल परिभाषाओं का अर्थ है कि ट्यूरिंग मशीनों के बारे में चीजों को साबित करना कठिन है। और, चूंकि ट्यूरिंग मशीनें वास्तव में केवल चीजों को साबित करने के लिए उपयोग की जाती हैं (यदि आप एक वास्तविक कंप्यूटर डिजाइन करना चाहते हैं, तो यह टीएम नहीं होगा) यह एक अच्छा व्यापार नहीं है।
डेविड रिचेर्बी

6

आप वर्णमाला का हिस्सा होने के लिए रिक्त प्रतीक को परिभाषित कर सकते हैं। इसके साथ समस्या यह है कि अगर इनपुट ट्यूरिंग मशीन के साथ b010010b (जहाँ b खाली है ) कभी भी दूसरी b को नहीं पढ़ता है, तो मशीन b010010b से शुरू होने वाले सभी इनपुट पर ठीक उसी तरह व्यवहार करेगी।

इन ट्यूरिंग मशीनों को उपसर्ग ट्यूरिंग मशीन कहा जाता है , और वे कोलमोगोरोव जटिलता के बारे में कुछ प्रमेयों को साबित करने के लिए बहुत उपयोगी हैं।


5

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

यह अंतर महत्वपूर्ण है, जैसा कि अन्य लोगों ने कहा है, ताकि मशीन बता सके कि उसका इनपुट कहां समाप्त होता है। यह वही कारण है जो आप (उपयोगी रूप से) C में एक स्ट्रिंग के बीच में एक शून्य-वर्ण नहीं डाल सकते हैं: शून्य-वर्ण का मतलब "गैर-शून्य चरित्र है, इससे पहले कि यह डेटा का अंत है, इसलिए जब आप यह देखते हैं, तो आप कर रहे हैं "। यदि आपको स्ट्रिंग के बीच में शून्य-वर्णों की अपेक्षा करने की आवश्यकता है, तो लेखन strlenपूरी तरह से कठिन हो जाता है।

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