हम हॉल्टिंग समस्या के प्रतिबंधित संस्करणों के बारे में क्या जानते हैं


16

( अद्यतन : बेहतर प्रश्न का उत्तर यहां दिया गया है क्योंकि नीचे दिए गए उत्तर के लिए टिप्पणियों से पता चलता है कि यह प्रश्न अच्छी तरह से परिभाषित नहीं है)


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

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

प्रश्न हैं:

यदि हम सभी संभव ट्यूरिंग मशीनों के एक उपसमूह पर विचार करते हैं, जो स्व-संदर्भ नहीं हैं (यानी उन्हें इनपुट के रूप में खुद को नहीं लेता है), तो हम इस उपसमुच्चय के लिए समस्या को हल करने के बारे में क्या जानते हैं?

अपडेट करें

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

पृष्ठभूमि: एक विरोधाभास की ओर मानते हुए कि एक ट्यूरिंग मशीन है जो इनपुट पर निर्णय ले सकती है जो कि ट्यूरिंग मशीन और लिए एन्कोडिंग है , चाहे हाल्ट हो या नहीं । फिर एक ट्यूरिंग मशीन पर विचार करें जो और लेता है और का उपयोग करता है ताकि यह निर्णय लिया जा सके कि हाल्ट करता है या नहीं, और फिर विपरीत करता है, रोक देता है यदि रुकता नहीं है, और यदि रुकता नहीं है तो हाल्ट। तब K ( K ) K के रूप में एक विरोधाभास प्रदर्शित करता हैQX M ( X ) K M X Q M ( X ) K M ( X ) M ( X )MXM(X)KMXQM(X)KM(X)M(X)K(K)K अगर यह रुकना नहीं है, तो रुकना चाहिए और जब यह रुकता है तो रुकना नहीं चाहिए।

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

अपडेट करें

नीचे दी गई टिप्पणियों के आधार पर मैं गैर-आत्म-संदर्भित ट्यूरिंग मशीनों के अर्थ को स्पष्ट करता हूं।

लक्ष्य इसे उस सेट के रूप में परिभाषित करना है जो सबूत में उत्पन्न विरोधाभास की ओर नहीं ले जाता है (सीएफ "उपरोक्त" पृष्ठभूमि)। इसे निम्नानुसार परिभाषित किया जा सकता है:

मान लिया जाये कि एक ट्यूरिंग मशीन है कि वहाँ कि ट्यूरिंग मशीन का एक सेट के लिए हॉल्टिंग समस्या का फैसला करता है एस , तो एस गैर स्वयं को संदर्भित के संबंध में है क्यू अगर यह सभी मशीनों कि invokes शामिल नहीं क्यू पर एस (प्रत्यक्ष या परोक्ष)। (स्पष्ट रूप से इसका मतलब है कि Q , S का सदस्य नहीं हो सकता है ।)QSSQQSQS

अप्रत्यक्ष रूप से S पर को लागू करने का क्या अर्थ है, इसके बारे में स्पष्ट करने के लिए :QS

एस पर इनवॉइसिंग को ट्यूरिंग मशीन क्यू द्वारा राज्यों के एक सेट और टेप पर एक निश्चित संभावित प्रारंभिक इनपुट के साथ दर्शाया गया है ( एस के किसी भी सदस्य के अनुरूप ), उस इनपुट की शुरुआत में सिर के साथ। एक मशीन W, Q को S "अप्रत्यक्ष रूप से" पर आक्रमण करता है, यदि चरणों का एक (परिमित) अनुक्रम है जो W , Q ( S ) के प्रारंभिक कॉन्फ़िगरेशन के लिए "कॉन्फ़िगरेशन" होमोमोर्फिक बनाने के लिए ले जाएगा ।QSQSWQSWQ(S)

अद्यतन २

नीचे दिए गए उत्तर से, यह तर्क देते हुए कि एक ही कार्य को करने वाली अनंत रूप से कई ट्यूरिंग मशीनें हैं, और इसलिए अद्वितीय नहीं है, हम ऊपर की परिभाषा यह कहते हुए बदलते हैं कि क्यू एक एकल ट्यूरिंग मशीन नहीं है, लेकिन सभी मशीनों की गणना का (अनंत) सेट है एक ही फ़ंक्शन (HALT), जहां HALT वह फ़ंक्शन होता है जो एक विशेष इनपुट पर एक ट्यूरिंग मशीन को रोकने के लिए व्हायर को तय करता है।Qक्यू

अद्यतन 3

ट्यूरिंग मशीन समरूपता की परिभाषा:

यदि TM का लेबल Nodes और किनारों के साथ रेखांकन के ग्राफोमोर्फिम्स के मानक अर्थ में है, तो TM TM, B के TM होमोमोर्फिक है। एक TM का संक्रमण ग्राफ (V, E) ऐसा है जो V = राज्यों, E = संक्रमण राज्यों के बीच उत्पन्न होता है। प्रत्येक चाप को (एस, डब्ल्यू, डी), एस = प्रतीक को टेप से पढ़ा जाता है और डब्ल्यू = प्रतीक को उस पर लिखा जाना चाहिए, और डी = वह दिशा जिस पर हेड शो चलता है।


5
"गैर-आत्म-संदर्भित का शेष सेट" इससे पहले कि मैं समझदारी से इस सेट पर चर्चा कर सकूं, मुझे "आत्म-संदर्भ" की एक परिभाषा चाहिए। हालाँकि, मुझे लगता है कि परिभाषित करने के लिए एक मुश्किल बात होगी?
सैम नेड

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

1
@म। Alaggan। अब मैं की "का आह्वान एक परिभाषा चाहते हैं पर एस परोक्ष रूप से," जो मैं मुश्किल के रूप में होने के लिए संदेह मूल "आत्म संदर्भ" :) के रूप में परिभाषित करने के लिएQS
रोब सीमन्स

2
यह एक दिलचस्प सवाल उठाता है: क्या कैंटर की विकर्ण विधि के कारण सभी अप्रभावीता (अपरिहार्यता) प्रमाण हैं? क्या कोई ऐसी अविवेकपूर्ण प्रमाण है जो तिरछे तरीके पर प्रत्यक्ष या अप्रत्यक्ष रूप से भरोसा नहीं करता है?
मोहम्मद अल-तुर्कस्टनी 16

जवाबों:


9

मुझे लगता है कि "अच्छी तरह से परिभाषित" सवाल पर पहुंचने के लिए थोड़ा और काम करना होगा। विशेष रूप से, यह समस्याग्रस्त है:

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

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

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


QH

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

1) एक अविश्वसनीय एचएएलटी का मतलब अनिर्वायता नहीं होगा? मैं मान रहा था कि इस तरह के एक गणना योग्य HALT मौजूद है, विरोधाभास की उम्मीद कर रहा है। 2) मैं इस अवधारणा से परिचित नहीं हूं कि सभी कम्प्यूटेशनल कार्य एक दूसरे के बराबर हैं, मैं आपको उद्धृत कर रहा था, और इसका अर्थ है कि यह एक फ़ंक्शन है जो एचएएलटी समस्या को हल करता है। जाहिरा तौर पर λx.1 कम्प्यूटेशनल है, लेकिन यह HALT तय नहीं करता है। अगर मैं गलत हूं तो कृपया मुझे सुधारें। अर्ध-संगणनीय समस्याओं के बारे में, एचएएलटी अनंत संख्या में कदम उठा सकता है, जो अभी भी मूल प्रमाण में विरोधाभास पैदा नहीं करेगा कि एचएएलटी निर्णायक नहीं है।
एम। अलागन

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

कुछ और जो थोड़ा भ्रमित है, उनके द्वारा गणना की गई निर्णय समस्या के साथ टीएम का संगम है। टीएम के बारे में बात करना सामान्य नहीं है, जो कम्प्यूटेशनल रूप से एक दूसरे के बराबर है। बल्कि, उनके द्वारा गणना किए गए कार्य समतुल्य (या बराबर) हो सकते हैं। समस्या यह है कि एक टीएम कहने की कोशिश नहीं करता है एक और टीएम को सामान्य रूप से परिभाषित करना मुश्किल है, उनके बिना गणना किए गए कार्यों को अलग करने के लिए कुछ ठोस देने के बिना। उदाहरण के लिए, एक लॉग-स्पेस TM एक EXP- स्पेस समस्या को हल करने वाले TM का अनुकरण नहीं कर सकता है।
मार्क रीटब्लेट

9

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

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

एक विकल्प के पास एक कंपाइलर होता है जो इनपुट प्रोग्राम के रूप में लेता है प्रोग और प्रूफ़ समाप्त हो जाता है (प्रोग) और आउटपुट संकलित (प्रोग) और टर्मिनेट (संकलित (प्रोग)) - उत्तरार्द्ध एक प्रमाण है जिसे तब स्वतंत्र रूप से डबल-चेक किया जा सकता है संकलक। इस पर क्लासिक पेपर नेचुला और ली का सर्टिफाइंग कंपाइलर का डिजाइन और कार्यान्वयन है , मेरा मानना ​​है।

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

(PS मुझे उम्मीद है कि यह उत्तर उपयोगी है - मैं मानता हूं कि यह आपके द्वारा पूछे गए प्रश्न से थोड़ा भिन्न है, इसलिए मुझे बताएं कि क्या मैं ऑफ-बेस हूं और / या कुछ आप जो पहले से जानते हैं उसे दोहरा रहा हूं।)


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