हॉल्टिंग समस्या: Difference between revisions

From Vigyanwiki
(Created page with "{{short description|Problem of determining whether a given program will finish running or continue forever}} {{Use shortened footnotes|date=March 2022}} {{more footnotes|date=...")
 
No edit summary
 
(27 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{short description|Problem of determining whether a given program will finish running or continue forever}}
{{short description|Problem of determining whether a given program will finish running or continue forever}}
{{Use shortened footnotes|date=March 2022}}
{{more footnotes|date=September 2018}}
[[ संगणनीयता सिद्धांत (कंप्यूटर विज्ञान) ]] में, रुकावट की समस्या एक मनमाना [[कंप्यूटर प्रोग्राम]] और एक इनपुट के विवरण से निर्धारित करने की समस्या है, चाहे प्रोग्राम चलना समाप्त हो जाएगा, या हमेशा के लिए चलना जारी रहेगा। हॉल्टिंग समस्या ''अनिर्णायक समस्या'' है, जिसका अर्थ है कि कोई सामान्य [[कलन विधि]] मौजूद नहीं है जो सभी संभावित प्रोग्राम-इनपुट जोड़े के लिए हॉल्टिंग समस्या को हल करता है।


समस्या के औपचारिक विवरण का एक महत्वपूर्ण हिस्सा कंप्यूटर और प्रोग्राम की गणितीय परिभाषा है, आमतौर पर [[ट्यूरिंग मशीन]] के माध्यम से। प्रमाण तब किसी भी कार्यक्रम के लिए दिखाता है {{var|f}} जो यह निर्धारित कर सकता है कि प्रोग्राम रुके हैं या नहीं, यह एक पैथोलॉजिकल प्रोग्राम है {{var|g}}, जिसे कुछ इनपुट के साथ कहा जाता है, अपने स्वयं के स्रोत और इसके इनपुट को f पास कर सकता है और फिर विशेष रूप से इसके विपरीत करता है जो f भविष्यवाणी करता है कि g करेगा। कोई f मौजूद नहीं हो सकता है जो इस मामले को संभालता है, इस प्रकार अनिर्णीतता दिखाता है। यह प्रमाण व्यावहारिक कंप्यूटिंग प्रयासों के लिए महत्वपूर्ण है, जो अनुप्रयोगों की एक श्रेणी को परिभाषित करता है, जो कोई प्रोग्रामिंग आविष्कार संभवतः पूरी तरह से प्रदर्शन नहीं कर सकता।


== पृष्ठभूमि ==


हॉल्टिंग समस्या संगणना के एक निश्चित [[ट्यूरिंग-पूर्ण]] मॉडल पर कंप्यूटर प्रोग्राम के गुणों के बारे में एक निर्णय समस्या है, अर्थात, सभी प्रोग्राम जो किसी दी गई [[प्रोग्रामिंग भाषा]] में लिखे जा सकते हैं जो सामान्य रूप से ट्यूरिंग मशीन के बराबर होने के लिए पर्याप्त है। समस्या यह निर्धारित करने के लिए है, एक प्रोग्राम और प्रोग्राम के लिए एक इनपुट दिया गया है, क्या उस इनपुट के साथ चलने पर प्रोग्राम अंततः रुक जाएगा। इस अमूर्त ढांचे में, कार्यक्रम के निष्पादन के लिए आवश्यक स्मृति या समय पर कोई संसाधन सीमाएँ नहीं हैं; यह मनमाने ढंग से लंबा समय ले सकता है और रुकने से पहले मनमाने ढंग से भंडारण स्थान का उपयोग कर सकता है। सवाल बस इतना है कि क्या दिया गया प्रोग्राम कभी किसी विशेष इनपुट पर रुकेगा।
[[ संगणनीयता सिद्धांत (कंप्यूटर विज्ञान) |संगणनीयता सिद्धांत (कंप्यूटर विज्ञान)]] में, हॉल्टिंग की समस्या [[कंप्यूटर प्रोग्राम]] और इनपुट के विवरण से निर्धारित करने की समस्या है, जिसमे प्रोग्राम चलना समाप्त हो जाएगा, या सदैव के लिए चलना प्रारंभ रहेगा। हॉल्टिंग समस्या अनिर्णायक समस्या है, जिसका अर्थ है कि कोई भी सामान्य [[कलन विधि]] उपस्तिथ नहीं है जो सभी संभावित प्रोग्राम-इनपुट जोड़े के लिए हॉल्टिंग समस्या का समाधान करता है।
 
समस्या के औपचारिक विवरण का महत्वपूर्ण भाग कंप्यूटर और प्रोग्राम की गणितीय परिभाषा है, सामान्यतः [[ट्यूरिंग मशीन]] के माध्यम से प्रमाण तब दिखाता है, किसी भी प्रोग्राम {{var|f}} के लिए जो यह निर्धारित कर सकता है कि क्या प्रोग्राम रुके हैं या नहीं, यह पैथोलॉजिकल प्रोग्राम {{var|g}} है, जिसे कुछ इनपुट के साथ कहा जाता है, अपने स्वयं के स्रोत और इसके इनपुट को f पास कर सकता है और फिर विशेष रूप से इसके विपरीत करता है जो f भविष्यवाणी करता है। कोई f उपस्तिथ नहीं हो सकता है जो इस स्थिति को संभालता है, इस प्रकार अनिर्णीतता दिखाता है। यह प्रमाण व्यावहारिक कंप्यूटिंग प्रयासों के लिए महत्वपूर्ण है, जो अनुप्रयोगों की श्रेणी को परिभाषित करता है, कि प्रोग्रामिंग आविष्कार संभवतः पूर्ण रूप से प्रदर्शन नहीं कर सकता।
 
== बैकग्राउंड ==
 
हॉल्टिंग समस्या संगणना के निश्चित [[ट्यूरिंग-पूर्ण]] मॉडल पर कंप्यूटर प्रोग्राम के गुणों के बारे में निर्णय समस्या है, अर्थात, सभी प्रोग्राम जो किसी दी गई [[प्रोग्रामिंग भाषा]] में लिखे जा सकते हैं जो सामान्य रूप से ट्यूरिंग मशीन के समान होने के लिए पर्याप्त है। समस्या यह निर्धारित करने के लिए है, प्रोग्राम और प्रोग्राम के लिए इनपुट दिया गया है, क्या उस इनपुट के साथ चलने पर प्रोग्राम अंततः रुक जाएगा। इस अमूर्त रूप में, प्रोग्राम के निष्पादन के लिए आवश्यक मेमोरी या समय पर कोई संसाधन सीमाएँ नहीं हैं; यह लंबा समय ले सकता है और रुकने से पूर्व भंडारण स्थान का उपयोग कर सकता है। प्रश्न बस इतना है कि क्या दिया गया प्रोग्राम कभी किसी विशेष इनपुट पर रुकेगा।


उदाहरण के लिए, [[स्यूडोकोड]] में, प्रोग्राम
उदाहरण के लिए, [[स्यूडोकोड]] में, प्रोग्राम


:<code>while (true) continue</code>
:<code>while (true) continue</code>
रुकता नहीं है; बल्कि, यह [[अनंत लूप]] में हमेशा के लिए चला जाता है। दूसरी ओर, कार्यक्रम
रुकता नहीं है; अन्यथा, यह [[अनंत लूप]] में सदैव के लिए चला जाता है। दूसरी ओर, प्रोग्राम


:<code>[["Hello, World!" program|print "Hello, world!"]]</code>
:<code>[["Hello, World!" program|print "Hello, world!"]]</code>
रुकता है।
रुकता है।


यह तय करते समय कि क्या इन कार्यक्रमों को रोकना सरल है, अधिक जटिल कार्यक्रम समस्याग्रस्त साबित होते हैं। समस्या का एक तरीका यह हो सकता है कि प्रोग्राम को कुछ चरणों के लिए चलाया जाए और जाँच की जाए कि क्या यह रुकता है। हालाँकि, जब तक कार्यक्रम चल रहा है, यह अज्ञात है कि यह अंततः रुक जाएगा या हमेशा के लिए चलेगा। ट्यूरिंग ने साबित किया कि कोई एल्गोरिदम मौजूद नहीं है जो हमेशा सही ढंग से तय करता है कि किसी दिए गए मनमाना प्रोग्राम और इनपुट के लिए, उस इनपुट के साथ चलने पर प्रोग्राम रुक जाता है या नहीं। ट्यूरिंग के प्रमाण का सार यह है कि ऐसा कोई भी एल्गोरिदम विरोधाभासी आउटपुट उत्पन्न करने के लिए बनाया जा सकता है और इसलिए सही नहीं हो सकता है।
यह तय करते समय कि क्या इन प्रोग्रामों को रोकना सरल है, अधिक जटिल प्रोग्राम समस्याग्रस्त सिद्ध होते हैं। समस्या की विधि यह हो सकती है कि प्रोग्राम को कुछ चरणों के लिए चलाया जाए और परीक्षण किया जाए कि क्या यह रुकता है। चूँकि, जब तक प्रोग्राम चल रहा है, यह अज्ञात है कि यह अंततः रुक जाएगा या सदैव के लिए चलेगा। ट्यूरिंग ने सिद्ध किया कि कोई एल्गोरिदम उपस्तिथ नहीं है जो सदैव उत्तम रूप से तय करता है कि किसी दिए गए प्रोग्राम और इनपुट के लिए, उस इनपुट के साथ चलने पर प्रोग्राम रुक जाता है या नहीं। ट्यूरिंग के प्रमाण का सार यह है कि ऐसा कोई भी एल्गोरिदम विरोधाभासी आउटपुट उत्पन्न करने के लिए बनाया जा सकता है और इसलिए सही नहीं हो सकता है।


=== प्रोग्रामिंग परिणाम{{anchor|Avoiding the halting problem}} ===
=== प्रोग्रामिंग परिणाम ===


कुछ अनंत लूप काफी उपयोगी हो सकते हैं। उदाहरण के लिए, [[ घटना पाश ]] को आमतौर पर अनंत लूप के रूप में कोडित किया जाता है।<ref>{{cite book |title=कोड पूर्ण|first=Steve |last=McConnell |edition=2nd |publisher=Pearson Education |year=2004 |isbn=9780735636972 |page=374 |url=https://books.google.com/books?id=LpVCAwAAQBAJ&pg=PA374}}</ref> हालाँकि, अधिकांश सबरूटीन्स को समाप्त करने का इरादा है।<ref>{{cite book |first=Han-Way |last=Huang |url={{GBurl|5atwJG7D_HMC}} |title=The HCS12 / 9S12: An Introduction to Software and Hardware Interfacing |page=197 |quote="... यदि प्रोग्राम एक निश्चित पाश में फंस जाता है, ... पता लगाएँ कि क्या गलत है।"|date=2009}}</ref> विशेष रूप से, हार्ड [[ रीयल-टाइम कंप्यूटिंग ]] में, प्रोग्रामर सबरूटीन्स लिखने का प्रयास करते हैं जो न केवल समाप्त होने की गारंटी होती है, बल्कि दी गई समय सीमा से पहले समाप्त होने की गारंटी भी होती है।<ref>{{cite book |first=David E. |last=Simon |url={{GBurl|xG2ZD55_BJAC}} |title=एक एंबेडेड सॉफ्टवेयर प्राइमर|date=1999 |page=253 |quote="For hard real-time systems, therefore, it is important to write subroutines that always execute in the same amount of time or that have a clearly identifiable worst case."}}</ref>
कुछ अनंत लूप अधिक उपयोगी हो सकते हैं। उदाहरण के लिए, [[ घटना पाश |इवेंट लूप्स]] को सामान्यतः अनंत लूप के रूप में कोडित किया जाता है।<ref>{{cite book |title=कोड पूर्ण|first=Steve |last=McConnell |edition=2nd |publisher=Pearson Education |year=2004 |isbn=9780735636972 |page=374 |url=https://books.google.com/books?id=LpVCAwAAQBAJ&pg=PA374}}</ref> चूँकि, अधिकांश सबरूटीन्स को समाप्त करने का उद्देश्य है।<ref>{{cite book |first=Han-Way |last=Huang |url={{GBurl|5atwJG7D_HMC}} |title=The HCS12 / 9S12: An Introduction to Software and Hardware Interfacing |page=197 |quote="... यदि प्रोग्राम एक निश्चित पाश में फंस जाता है, ... पता लगाएँ कि क्या गलत है।"|date=2009}}</ref> विशेष रूप से, हार्ड [[ रीयल-टाइम कंप्यूटिंग |रीयल-टाइम कंप्यूटिंग]] में, प्रोग्रामर सबरूटीन्स लिखने का प्रयास करते हैं जो न केवल समाप्त होने का आश्वासन होता है, अन्यथा दी गई समय सीमा से पूर्व समाप्त होने का आश्वासन भी होता है।<ref>{{cite book |first=David E. |last=Simon |url={{GBurl|xG2ZD55_BJAC}} |title=एक एंबेडेड सॉफ्टवेयर प्राइमर|date=1999 |page=253 |quote="For hard real-time systems, therefore, it is important to write subroutines that always execute in the same amount of time or that have a clearly identifiable worst case."}}</ref>
कभी-कभी ये प्रोग्रामर कुछ सामान्य-उद्देश्य (ट्यूरिंग-पूर्ण[[स्पार्क (प्रोग्रामिंग भाषा)]] का उपयोग करते हैं,
लेकिन एक प्रतिबंधित शैली में लिखने का प्रयास - जैसे कि [[MISRA C]] या SPARK (प्रोग्रामिंग लैंग्वेज) - जिससे यह साबित करना आसान हो जाता है कि परिणामी सबरूटीन्स दी गई समय सीमा से पहले समाप्त हो जाती हैं।{{cn|date=May 2017}}


दूसरी बार ये प्रोग्रामर कम से कम शक्ति के नियम को लागू करते हैं - वे जानबूझकर एक कंप्यूटर भाषा का उपयोग करते हैं जो पूरी तरह से ट्यूरिंग-पूर्ण नहीं है। अक्सर, ये ऐसी भाषाएँ होती हैं जो सभी सबरूटीन्स के खत्म होने की गारंटी देती हैं, जैसे [[Coq]]{{cn|date=May 2017}}
कभी-कभी ये प्रोग्रामर कुछ सामान्य-उद्देश्य (ट्यूरिंग-पूर्ण [[स्पार्क (प्रोग्रामिंग भाषा)]] का उपयोग करते हैं, किंतु प्रतिबंधित शैली में लिखने का प्रयास करते हैं- जैसे कि [[MISRA C|मिश्रा सी]] या स्पार्क (प्रोग्रामिंग भाषा) जिससे यह सिद्ध करना सरल हो जाता है कि परिणामी सबरूटीन्स दी गई समय सीमा से पूर्व समाप्त हो जाती हैं।{{cn|date=May 2017}}


=== सामान्य नुकसान ===
दूसरी बार ये प्रोग्रामर कम से कम शक्ति के नियम को प्रारम्भ करते हैं- वे निश्चयपूर्वक कंप्यूटर भाषा का उपयोग करते हैं जो पूर्ण रूप से ट्यूरिंग-पूर्ण नहीं है। प्रायः, ये ऐसी भाषाएँ होती हैं जो सभी सबरूटीन्स के समाप्त होने का आश्वासन देती हैं, जैसे [[Coq|कोक]] इत्यादि।{{cn|date=May 2017}}


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


ऐसे प्रोग्राम ([[दुभाषिया (कंप्यूटिंग)]]) हैं जो उन्हें दिए गए किसी भी स्रोत कोड के निष्पादन का अनुकरण करते हैं। इस तरह के कार्यक्रम प्रदर्शित कर सकते हैं कि यदि ऐसा है तो एक कार्यक्रम रुक जाता है: दुभाषिया अंततः अपने अनुकरण को रोक देगा, जो दर्शाता है कि मूल कार्यक्रम रुका हुआ है। हालाँकि, एक दुभाषिया बंद नहीं होगा यदि उसका इनपुट प्रोग्राम रुकता नहीं है, इसलिए यह दृष्टिकोण रुकने की समस्या को हल नहीं कर सकता जैसा कि कहा गया है; यह उन कार्यक्रमों के लिए सफलतापूर्वक उत्तर नहीं देता है जो रुकते नहीं हैं।
हॉल्टिंग समस्या में कठिनाई इस आवश्यकता में निहित है कि निर्णय प्रक्रिया को सभी प्रोग्रामों और इनपुट के लिए कार्य करना चाहिए। विशेष प्रोग्राम या तो किसी दिए गए इनपुट पर रुकता है या रुकता नहीं है। एल्गोरिथ्म पर विचार करें जो सदैव "हॉल्टिंग" का उत्तर देता है और दूसरा जो सदैव "नहीं रोकता" का उत्तर देता है। किसी भी विशिष्ट प्रोग्राम और इनपुट के लिए, इन दो एल्गोरिदम में से सही उत्तर देता है, भले ही किसी को पता न हो कि कौन सा है। फिर भी न तो एल्गोरिदम सामान्यतः हॉल्टिंग समस्या को समाधान करता है।


हॉल्टिंग समस्या सैद्धांतिक रूप से [[रैखिक परिबद्ध automaton]] (LBAs) या परिमित मेमोरी वाली नियतात्मक मशीनों के लिए निर्णायक है। परिमित मेमोरी वाली एक मशीन में विन्यास की एक सीमित संख्या होती है, और इस प्रकार उस पर किसी भी नियतात्मक कार्यक्रम को अंततः पिछले कॉन्फ़िगरेशन को रोकना या दोहराना चाहिए:<ref>{{harvnb|Minsky|1967|p=24}}. italics in original</ref>
ऐसे प्रोग्राम ([[दुभाषिया (कंप्यूटिंग)]]) हैं जो उन्हें दिए गए किसी भी स्रोत कोड के निष्पादन का अनुकरण करते हैं। इस प्रकार के प्रोग्राम प्रदर्शित कर सकते हैं कि यदि ऐसा है तो प्रोग्राम रुक जाता है: दुभाषिया अंततः अपने अनुकरण को रोक देगा, जो दर्शाता है कि मूल प्रोग्राम रुका हुआ है। चूँकि, दुभाषिया बंद नहीं होगा यदि उसका इनपुट प्रोग्राम रुकता नहीं है, इसलिए यह दृष्टिकोण हॉल्टिंग की समस्या को समाधान नहीं कर सकता जैसा कि कहा गया है; यह उन प्रोग्रामों के लिए सफलतापूर्वक उत्तर नहीं देता है जो रुकते नहीं हैं।


{{quote|...''any finite-state machine, if left completely to itself, will fall eventually into a perfectly periodic repetitive pattern''. The duration of this repeating pattern cannot exceed the number of internal states of the machine...}}
हॉल्टिंग समस्या सैद्धांतिक रूप से [[रैखिक परिबद्ध automaton|रैखिक परिबद्ध ऑटोमेटा]] (LBAs) या परिमित मेमोरी वाली नियतात्मक मशीनों के लिए निर्णायक है। परिमित मेमोरी वाली मशीन में विन्यास की सीमित संख्या होती है, और इस प्रकार उस पर किसी भी नियतात्मक प्रोग्राम को अंततः पूर्व कॉन्फ़िगरेशन को रोकना या दोहराना चाहिए:<ref>{{harvnb|Minsky|1967|p=24}}. italics in original</ref>


हालाँकि, एक कंप्यूटर जिसमें एक लाख छोटे हिस्से होते हैं, जिनमें से प्रत्येक में दो राज्य होते हैं, कम से कम 2 होते हैं<sup>1,000,000</sup> संभावित अवस्थाएँ:{{sfn|Minsky|1967|p=25}}
{{quote|''किसी भी परिमित-स्थिति मशीन, यदि पूर्ण रूप से स्वयं पर त्याग दिया जाता है, अंततः पूर्ण रूप से आवधिक दोहराव वाले पैटर्न में गिर जाएगी''। इस दोहराए जाने वाले पैटर्न की अवधि मशीन के आंतरिक स्तिथियों की संख्या से अधिक नहीं हो सकती }}


{{quote|This is a 1 followed by about three hundred thousand zeroes ... Even if such a machine were to operate at the frequencies of cosmic rays, the aeons of galactic evolution would be as nothing compared to the time of a journey through such a cycle:}}
चूँकि, दस लाख छोटे भागों वाले कंप्यूटर, प्रत्येक में दो अवस्थाएं, कम से कम 21,000,000 संभावित अवस्थाएं होंगी:{{sfn|Minsky|1967|p=25}}


हालांकि एक मशीन परिमित हो सकती है, और परिमित ऑटोमेटा की कई सैद्धांतिक सीमाएँ हैं:{{sfn|Minsky|1967|p=25}}
{{quote|यह 1 है जिसके पश्चात लगभग तीन लाख शून्य हैं भले ही ऐसी मशीन ब्रह्मांडीय किरणों की आवृत्तियों पर कार्य करती हो, गांगेय विकास के कल्प इस प्रकार के चक्र के माध्यम से यात्रा के समय की तुलना में कुछ भी नहीं होंगे:}}


{{quote|...the magnitudes involved should lead one to suspect that theorems and arguments based chiefly on the mere finiteness [of] the state diagram may not carry a great deal of significance.}}
चूँकि मशीन परिमित हो सकती है, और परिमित ऑटोमेटा की कई सैद्धांतिक सीमाएँ हैं:{{sfn|Minsky|1967|p=25}}


यह स्वचालित रूप से तय किया जा सकता है कि प्रत्येक संभावित निर्णय के बाद राज्यों की गणना करके, परिमित स्मृति वाली एक गैर-नियतात्मक मशीन किसी भी, कुछ, या गैर-नियतात्मक निर्णयों के सभी संभावित अनुक्रमों पर रुकती है या नहीं।
{{quote|इसमें सम्मिलित परिमाणों से किसी को यह संदेह होना चाहिए कि मुख्य रूप से केवल परिमितता [के] स्थिति आरेख पर आधारित प्रमेय और तर्क अधिक महत्व नहीं रख सकते हैं।
}}
 
यह स्वचालित रूप से तय किया जा सकता है कि प्रत्येक संभावित निर्णय के पश्चात स्थिति की गणना करके, परिमित मेमोरी वाली गैर-नियतात्मक मशीन किसी भी या गैर-नियतात्मक निर्णयों के सभी संभावित अनुक्रमों पर रुकती है या नहीं।


== इतिहास ==
== इतिहास ==
{{further|Algorithm#History: Development of the notion of "algorithm"}}
{{further|एल्गोरिथम#इतिहास: "एल्गोरिदम" की धारणा का विकास}}
अप्रैल 1936 में, [[अलोंजो चर्च]] ने [[लैम्ब्डा कैलकुलस]] में एक समस्या की अनिर्णयता का अपना प्रमाण प्रकाशित किया। ट्यूरिंग का प्रमाण बाद में जनवरी 1937 में प्रकाशित किया गया था। तब से, कई अन्य अनिर्णीत समस्याओं का वर्णन किया गया है, जिसमें 1950 के दशक में उभरी हॉल्टिंग समस्या भी शामिल है।
अप्रैल 1936 में, [[अलोंजो चर्च]] ने [[लैम्ब्डा कैलकुलस]] में समस्या की अनिर्णयता का अपना प्रमाण प्रकाशित किया। ट्यूरिंग का प्रमाण पश्चात में जनवरी 1937 में प्रकाशित किया गया था। तब से, कई अन्य अनिर्णीत समस्याओं का वर्णन किया गया है, जिसमें हॉल्टिंग समस्या भी सम्मिलित है, जो 1950 के दशक में सामने आई थी।


=== समयरेखा ===
=== समयरेखा ===
* {{Timeline-event |date={{Start date|1900}}|event=[[David Hilbert]] poses his "23 questions" (now known as [[Hilbert's problems]]) at the Second [[International Congress of Mathematicians]] in Paris. "Of these, the second was that of proving the consistency of the '[[Peano axioms]]' on which, as he had shown, the rigour of mathematics depended".}}<ref>{{harvnb|Hodges|1983|p=83}}; Davis' commentary in {{harvnb|Davis|1965|p=108}}</ref>
* {{Timeline-event |date={{आरंभ करने की तिथि|1900}}|event=[[डेविड हिल्बर्ट]] पेरिस में दूसरे [[गणितज्ञों की अंतर्राष्ट्रीय कांग्रेस]] में अपने "23 प्रश्न" (अब [[हिल्बर्ट की समस्याओं]] के रूप में जाने जाते हैं) प्रस्तुत करते हैं। "इनमें से, दूसरा '[[पियानो एक्सिओम्स]]' की निरंतरता को साबित करने का था, जिस पर, जैसा कि उन्होंने दिखाया था, गणित की कठोरता निर्भर थी"}}<ref>{{harvnb|Hodges|1983|p=83}}; Davis' commentary in {{harvnb|Davis|1965|p=108}}</ref>
* {{Timeline-event |date={{Start date|1920}}|end_date={{End date|1921}}|event=[[Emil Post]] explores the halting problem for [[tag system]]s, regarding it as a candidate for unsolvability.<ref>''Absolutely unsolvable problems and relatively undecidable propositions&nbsp;– account of an anticipation'', reprinted in {{harvnb|Davis|1965|pp=340–433}}</ref> Its unsolvability was not established until much later, by [[Marvin Minsky]].{{sfn|Minsky|1967}}}}
* {{Timeline-event |date={{आरंभ करने की तिथि|1920}}|end_date={{अंतिम तिथि|1921}}|event=[[एमिल पोस्ट]] [[टैग सिस्टम]] के लिए हॉल्टिंग समस्या की परीक्षण करता है, इसे समाधान न होने के लिए उम्मीदवार के रूप में देखता है।<ref>''पूरी तरह से न सुलझाई जा सकने वाली समस्याएं और अपेक्षाकृत अनिर्णीत प्रस्ताव&nbsp;- एक प्रत्याशा का लेखा-जोखा'', में पुनर्मुद्रित
* {{Timeline-event |date={{Start date|1928}}|event=Hilbert recasts his 'Second Problem' at the Bologna International Congress.{{sfn|Reid|1996|pp=188–189}} He posed three questions: i.e. #1: Was mathematics ''complete''? #2: Was mathematics ''consistent''? #3: Was mathematics ''decidable''?{{sfn|Hodges|1983|p=91}} The third question is known as the ''[[Entscheidungsproblem]]'' (Decision Problem).{{sfnm|1a1=Hodges|1y=1983|1p=91|2a1=Penrose|2y=1989|2p=34}}}}
{{harvnb|Davis|1965|pp=340–433}}</ref>इसकी अघुलनशीलता [[मार्विन मिन्स्की द्वारा अधिक पश्चात तक स्थापित नहीं किया गया था
* {{Timeline-event |date={{Start date|1930}}|event=[[Kurt Gödel]] announces a proof as an answer to the first two of Hilbert's 1928 questions.{{sfn|Reid|1996|p=198}} "At first he [Hilbert] was only angry and frustrated, but then he began to try to deal constructively with the problem... Gödel himself felt—and expressed the thought in his paper—that his work did not contradict Hilbert's formalistic point of view"}}{{sfn|Reid|1996|p=199}}
]].{{sfn|Minsky|1967}}}}
* {{Timeline-event |date={{Start date|1931}}|event=Gödel publishes "On Formally Undecidable Propositions of Principia Mathematica and Related Systems I"}}<ref>reprinted in {{harvnb|Davis|1965|p=5ff}}</ref>
* {{Timeline-event |date={{आरंभ करने की तिथि|1928}}|event=बोलोग्ना इंटरनेशनल कांग्रेस में हिल्बर्ट ने अपनी 'दूसरी समस्या' का पुनर्पाठ किया।{{sfn|Reid|1996|pp=188–189}} उन्होंने तीन प्रश्न किए: अर्थात 1: क्या गणित ''पूर्ण'' था? 2: क्या गणित ''संगत'' था? 3: क्या गणित ''निर्णायक'' था{{sfn|Hodges|1983|p=91}} तीसरे प्रश्न को ''[[एन्त्शेइडुंग्स समस्या]]'' (निर्णय समस्या) के रूप में जाना जाता है।{{sfnm|1a1=Hodges|1y=1983|1p=91|2a1=Penrose|2y=1989|2p=34}}}}
* {{Timeline-event |date={{Start date|1935|04|19|df=y}}|event=[[Alonzo Church]] publishes "An Unsolvable Problem of Elementary Number Theory", which proposes that the intuitive notion of an ''effectively calculable'' function can be formalized by the [[general recursive function|general recursive functions]] or equivalently by the [[lambda calculus|lambda-definable functions]]. He proves that the halting problem for lambda calculus (i.e., whether a given lambda-expression has a [[beta normal form|normal form]]) is not effectively calculable.}}{{sfn|Church|1936}}
* {{Timeline-event |date={{आरंभ करने की तिथि|1930}}|event=[[कर्ट गोडेल]] हिल्बर्ट के 1928 के पहले दो प्रश्नों के उत्तर के रूप में प्रमाण की घोषणा करता है।
* {{Timeline-event |date={{Start date|1936}}|event=Church publishes the first proof that the ''Entscheidungsproblem'' is unsolvable, using a notion of calculation by [[Computable function|recursive functions]].}}<ref>''A Note on the Entscheidungsproblem'', reprinted in {{harvnb|Davis|1965|p=110}}</ref>
{{sfn|Reid|1996|p=198}}"सबसे पहले वह [हिल्बर्ट] केवल क्रोधित और निराश था, किन्तु फिर उसने समस्या से रचनात्मक रूप से निवारण का प्रयत्न प्रारंभ कर दिया, गोडेल ने स्वयं अनुभूत किया- और अपने पेपर में विचार व्यक्त किया- कि उनका कार्य हिल्बर्ट के औपचारिक बिंदु के विपरीत नहीं देखना था"}}{{sfn|Reid|1996|p=199}}
* {{Timeline-event |date={{Start date|1936|10|7|df=y}}|event=[[Emil Post]]'s paper "Finite Combinatory Processes. Formulation I" is received. Post adds to his "process" an instruction "(C) Stop". He called such a process "type 1 ... if the process it determines terminates for each specific problem."}}{{sfn|Davis|1965|p=289ff}}
* {{Timeline-event |date={{आरंभ करने की तिथि|1931}}|event=गोडेल ने "प्रिंसिपिया मैथेमेटिका और संबंधित प्रणाली के औपचारिक रूप से अनिर्णायक प्रस्तावों पर" प्रकाशित किया}}<ref>reprinted in {{harvnb|Davis|1965|p=5ff}}</ref>
* {{Timeline-event |date={{Start date|1936|05}}|end_date={{End date|1937|01}}|event=[[Alan Turing]]'s paper ''On Computable Numbers With an Application to the Entscheidungsproblem'' goes to press in May 1936 and reaches print in January 1937.<ref>reprinted in {{harvnb|Davis|1965|p=115}}</ref> Turing proves three problems undecidable: the "satisfaction" problem, the "printing" problem, and the ''Entscheidungsproblem''.{{sfn|Lucas|2021}} Turing's proof differs from Church's by introducing the notion of computation by machine. This is one of the "first examples of decision problems proved unsolvable".{{sfn|Kleene|1952}}{{page needed|date=March 2022}}}}
* {{Timeline-event |date={{Start date|1935|04|19|df=y}}|event=[[अलोंजो चर्च]] "प्राथमिक संख्या सिद्धांत की अघुलनशील समस्या" प्रकाशित करता है, जो प्रस्तावित करता है कि ''प्रभावी रूप से गणना योग्य'' फ़ंक्शन की सहज धारणा को [[सामान्य पुनरावर्ती कार्य|सामान्य पुनरावर्ती कार्यों]] या समकक्ष रूप से औपचारिक रूप दिया जा सकता है। [[लैम्ब्डा-निश्चित कार्यों]] द्वारा वह सिद्ध करता है कि लैम्ब्डा कैलकुलस के लिए हॉल्टिंग समस्या (अर्थात, क्या किसी दिए गए लैम्ब्डा-एक्सप्रेशन का [[बीटा सामान्य रूप]] है) प्रभावी रूप से गणना योग्य नहीं है।}}{{sfn|Church|1936}}
* {{Timeline-event |date={{Start date|1939}}|event=[[J. Barkley Rosser]] observes the essential equivalence of "effective method" defined by Gödel, Church, and Turing}}<ref>Rosser, "Informal Exposition of Proofs of Gödel's Theorem and Church's Theorem", reprinted in {{harvnb|Davis|1965|p=223}}</ref>
* {{Timeline-event |date={{Start date|1936}}|event=[[कम्प्यूटेबल फंक्शन]] द्वारा गणना की धारणा का उपयोग करते हुए, चर्च प्रथम प्रमाण प्रकाशित करता है कि ''एन्त्शेइडुंग्स समस्या'' अघुलनशील है।}}<ref>''A Note on the Entscheidungsproblem'', reprinted in {{harvnb|Davis|1965|p=110}}</ref>
* {{Timeline-event |date={{Start date|1943}}|event=In a paper, [[Stephen Kleene]] states that "In setting up a complete algorithmic theory, what we do is describe a procedure ... which procedure necessarily terminates and in such manner that from the outcome we can read a definite answer, 'Yes' or 'No,' to the question, 'Is the predicate value true?'."}}
* {{Timeline-event |date={{Start date|1936|10|7|df=y}}|event=[[एमिल पोस्ट]] का पेपर "फिनिट कॉम्बिनेटरी प्रोसेसेस फॉर्म्युलेशन I" प्राप्त हुआ है। पोस्ट उनकी "प्रक्रिया" में निर्देश "(सी) स्टॉप" जोड़ता है। उन्होंने इस प्रकार की प्रक्रिया को "टाइप 1 यदि यह प्रक्रिया निर्धारित करती है तो प्रत्येक विशिष्ट समस्या के लिए समाप्त हो जाती है।"}}{{sfn|Davis|1965|p=289ff}}
* {{Timeline-event |date={{Start date|1952}}|event=Kleene includes a discussion of the unsolvability of the halting problem for Turing machines and reformulates it in terms of machines that "eventually stop", i.e. halt: "... there is no algorithm for deciding whether any given machine, when started from any given situation, ''eventually stops''."}}{{sfn|Kleene|1952|p=382}}
* {{Timeline-event |date={{Start date|1936|05}}|end_date={{End date|1937|01}}|event=[[एलन ट्यूरिंग]] का पेपर ''ऑन कम्प्यूटेबल नंबर्स विथ ए एप्लीकेशन टू द एंट्सचेइडुंग्सप्रोब्लेम'' मई 1936 में प्रेस में गया और जनवरी 1937 में प्रिंट तक पहुंचा।<ref>में पुनर्मुद्रित
* {{Timeline-event |date={{Start date|1952}}|event=[[Martin Davis (mathematician)|Martin Davis]] uses the term 'halting problem' in a series of lectures at the Control Systems Laboratory at the University of Illinois in 1952. It is likely that this is the first such use of the term.}}<ref name=DavisLetter>letter from Davis to Copeland, 12 December 2001, Footnote 61 in {{harvnb|Copeland|2004|p=40}}</ref>
{{harvnb|Davis|1965|p=115}}</ref> ट्यूरिंग तीन समस्याओं को अनिर्णीत सिद्ध करता है: "संतुष्टि" समस्या, "प्रिंटिंग" समस्या, और 'एंट्सचिडंग स्प्रोब्लेम'
.{{sfn|Lucas|2021}} ट्यूरिंग का प्रमाण मशीन द्वारा संगणना की धारणा को प्रस्तुत करके चर्च के प्रमाण से भिन्न है। यह "निर्णय समस्याओं के पहले उदाहरणों में से सिद्ध नहीं हुआ"
{{sfn|Kleene|1952}}{{page needed|date=March 2022}}}}
* {{Timeline-event |date={{Start date|1939}}|event=[[जे। बार्कले रोसेर]] गोडेल, चर्च और ट्यूरिंग द्वारा परिभाषित "प्रभावी विधि" की आवश्यक समानता को देखता है}}<ref>Rosser, "Informal Exposition of Proofs of Gödel's Theorem and Church's Theorem", reprinted in {{harvnb|Davis|1965|p=223}}</ref>
* {{Timeline-event |date={{Start date|1943}}|event=एक पेपर में, [[स्टीफन क्लेन]] ने कहा है कि "पूर्ण एल्गोरिथम सिद्धांत की स्थापना में, प्रक्रिया का वर्णन करते हैं जो प्रक्रिया आवश्यक रूप से समाप्त हो जाती है और इस प्रकार से कि परिणाम से हम निश्चित उत्तर पढ़ सकते हैं, प्रश्न के लिए 'हाँ' या 'नहीं', 'क्या विधेय मान सत्य है?'}}
* {{Timeline-event |date={{Start date|1952}}|event=क्लेन में ट्यूरिंग मशीनों के लिए हॉल्टिंग समस्या की असम्भाव्यता की चर्चा सम्मिलित है और मशीनों के संदर्भ में इसे फिर से तैयार करता है जो "अंततः रुक जाती है" यह तय करने के लिए कोई एल्गोरिदम नहीं है कि क्या किसी दिए गए मशीन से प्रारंभ किया गया है या नहीं स्थिति, ''अंततः रुक जाती है''."}}{{sfn|Kleene|1952|p=382}}
* {{Timeline-event |date={{Start date|1952}}|event=[[मार्टिन डेविस (गणितज्ञ)|मार्टिन डेविस]] ने 1952 में इलिनोइस विश्वविद्यालय में नियंत्रण प्रणाली प्रयोगशाला में व्याख्यान की श्रृंखला में 'हॉल्टिंग प्रॉब्लम' शब्द का प्रयोग किया। यह संभावना है कि इस शब्द का यह प्रथम प्रयोग है।}}<ref name=DavisLetter>letter from Davis to Copeland, 12 December 2001, Footnote 61 in {{harvnb|Copeland|2004|p=40}}</ref>




=== रुकने की समस्या की उत्पत्ति ===
=== हॉल्टिंग की समस्या की उत्पत्ति ===


कई कागजात और पाठ्यपुस्तकों ने ट्यूरिंग के 1936 के पेपर में हॉल्टिंग समस्या की अनिर्णयता की परिभाषा और प्रमाण का उल्लेख किया है। हालाँकि, यह सही नहीं है।{{sfn|Lucas|2021}}{{sfn|Copeland|2004|p=40}} ट्यूरिंग ने अपने 1936 के पेपर सहित अपनी किसी भी प्रकाशित रचना में हॉल्ट या हॉल्टिंग शब्दों का प्रयोग नहीं किया।<ref>Textual search of Turing's collected works: {{harvtxt|Good|1992}}, {{harvtxt|Gandy|Yates|2001}}, {{harvtxt|Ince|1992}}, {{harvtxt|Saunders|1992}}. Similarly {{harvtxt|Hodges|1983}} does not have the word "halting" or words "halting problem" in his index.</ref> 1936 से 1958 तक अकादमिक साहित्य की खोज से पता चला कि "हॉल्टिंग प्रॉब्लम" शब्द का उपयोग करने वाली पहली प्रकाशित सामग्री थी {{harvtxt|Rogers|1957}}. हालांकि, रोजर्स का कहना है कि उनके पास {{harvtxt|Davis|1958}} उसके पास उपलब्ध है,{{sfn|Lucas|2021}} और मार्टिन डेविस प्रस्तावना में कहते हैं कि विशेषज्ञ शायद विषयों की व्यवस्था और उपचार में कुछ नवीनता पाएंगे,{{sfn|Davis|1958|pp=vii-viii}} इसलिए शब्दावली का श्रेय डेविस को दिया जाना चाहिए।{{sfn|Lucas|2021}}{{sfn|Copeland|2004|p=40}} डेविस ने एक पत्र में कहा कि वह 1952 से हॉल्टिंग समस्या की बात कर रहे थे।<ref name=DavisLetter/>डेविस की किताब में उपयोग इस प्रकार है:{{sfn|Davis|1958|pp=70–71}}
कई प्रलेख और पाठ्यपुस्तकों ने ट्यूरिंग के 1936 के पेपर में हॉल्टिंग समस्या की अनिर्णयता की परिभाषा और प्रमाण का उल्लेख किया है। चूँकि, यह सही नहीं है।{{sfn|Lucas|2021}}{{sfn|Copeland|2004|p=40}} ट्यूरिंग ने अपने 1936 के पेपर सहित अपनी किसी भी प्रकाशित रचना में हॉल्ट या हॉल्टिंग शब्दों का प्रयोग नहीं किया।<ref>Textual search of Turing's collected works: {{harvtxt|Good|1992}}, {{harvtxt|Gandy|Yates|2001}}, {{harvtxt|Ince|1992}}, {{harvtxt|Saunders|1992}}. Similarly {{harvtxt|Hodges|1983}} does not have the word "halting" or words "halting problem" in his index.</ref> 1936 से 1958 तक अकादमिक साहित्य की के आविष्कार से ज्ञात से हुआ कि "हॉल्टिंग प्रॉब्लम" शब्द का उपयोग करने वाली प्रथम प्रकाशित सामग्री थी {{harvtxt|रोजर्स|1957}} थी। चूँकि, रोजर्स का कहना है कि उनके पास {{harvtxt|डेविस|1958}} उसके पास उपलब्ध है,{{sfn|Lucas|2021}} और मार्टिन डेविस प्रस्तावना में कहते हैं कि विशेषज्ञ संभवतः विषयों की व्यवस्था और प्रणाली में कुछ नवीनता पाएंगे,{{sfn|Davis|1958|pp=vii-viii}} इसलिए शब्दावली का श्रेय डेविस को दिया जाना चाहिए।{{sfn|Lucas|2021}}{{sfn|Copeland|2004|p=40}} डेविस ने पत्र में कहा कि वह 1952 से हॉल्टिंग समस्या की बात कर रहे थे।<ref name=DavisLetter/>डेविस की किताब में उपयोग इस प्रकार है:{{sfn|Davis|1958|pp=70–71}}


{{quote|"[...] we wish to determine whether or not [a Turing machine] Z, if placed in a given initial state, will eventually halt. We call this problem the halting problem for Z. [...]<br/>  
{{quote|"[...] हम यह निर्धारित करना चाहते हैं कि [ट्यूरिंग मशीन] Z, यदि किसी प्रारंभिक अवस्था में रखा गया है, तो अंततः रुक जाएगा। हम इस समस्या को Z के लिए रुकने की समस्या कहते हैं। [...]
Theorem 2.2 ''There exists a Turing machine whose halting problem is recursively unsolvable''.<br/>
<br/>  
A related problem is the ''printing problem'' for a simple Turing machine Z with respect to a symbol S<sub>i</sub>".}}
प्रमेय 2.2 ''एक ट्यूरिंग मशीन उपस्तिथ है जिसकी हॉल्टिंग समस्या पुनरावर्ती रूप से अघुलनशील है''<br/>
प्रतीक के संबंध में एक साधारण ट्यूरिंग मशीन Z के लिए एक संबंधित समस्या 'प्रिंटिंग समस्या' है
S<sub>i</sub>".}}


डेविस के सूत्रीकरण का एक संभावित अग्रदूत क्लेन का 1952 का बयान है, जो केवल शब्दों में भिन्न है:{{sfn|Lucas|2021}} {{sfn|Kleene|1952|p=382}}
डेविस के सूत्रीकरण का संभावित अग्रदूत क्लेन का 1952 का व्याख्यान है, जो केवल शब्दों में भिन्न है:{{sfn|Lucas|2021}} {{sfn|Kleene|1952|p=382}}
{{quote|there is no algorithm for deciding whether any given machine, when started from any given situation, eventually stops.}}
{{quote|यह तय करने के लिए कोई एल्गोरिद्म नहीं है कि क्या कोई दी गई मशीन, जब किसी दी गई स्थिति से प्रारंभ की जाती है, अंततः बंद हो जाती है।}}


रुकने की समस्या दोनों डेविस की प्रिंटिंग समस्या के लिए [[ट्यूरिंग कमी]] है (क्या किसी दिए गए राज्य से शुरू होने वाली ट्यूरिंग मशीन कभी किसी दिए गए प्रतीक को प्रिंट करती है?) और ट्यूरिंग के 1936 के पेपर में मानी जाने वाली प्रिंटिंग समस्या के लिए (क्या एक खाली टेप से शुरू होने वाली ट्यूरिंग मशीन कभी प्रिंट करती है) एक दिया गया प्रतीक?) हालांकि, ट्यूरिंग तुल्यता बल्कि ढीली है और इसका मतलब यह नहीं है कि दो समस्याएं समान हैं। ऐसी मशीनें हैं जो प्रिंट करती हैं लेकिन रुकती नहीं हैं और रुकती हैं लेकिन प्रिंट नहीं करती हैं। छपाई और रुकने की समस्याएँ विभिन्न मुद्दों को संबोधित करती हैं और महत्वपूर्ण वैचारिक और तकनीकी अंतर प्रदर्शित करती हैं। इस प्रकार, डेविस केवल विनम्र थे जब उन्होंने कहा:{{sfn|Lucas|2021}}
हॉल्टिंग की समस्या दोनों डेविस की प्रिंटिंग समस्या [[ट्यूरिंग कमी|समान]] है (क्या किसी दिए गए स्थिति से प्रारंभ होने वाली ट्यूरिंग मशीन कभी किसी दिए गए प्रतीक को प्रिंट करती है?) और ट्यूरिंग के 1936 के पेपर में विचार की गई प्रिंटिंग समस्या ("क्या ट्यूरिंग मशीन एक रिक्त से प्रारंभ होती है?" टेप कभी दिए गए प्रतीक को प्रिंट करता है?")। चूँकि, ट्यूरिंग तुल्यता अन्यथा ढीली है और इसका अर्थ यह नहीं है कि दो समस्याएं समान हैं। ऐसी मशीनें हैं जो प्रिंट करती हैं किंतु रुकती नहीं हैं और रुकती हैं किंतु प्रिंट नहीं करती हैं। छपाई और हॉल्टिंग की समस्याएँ विभिन्न उद्देश्य को संबोधित करती हैं और महत्वपूर्ण वैचारिक और तकनीकी अंतर प्रदर्शित करती हैं। इस प्रकार, डेविस केवल विनम्र थे जब उन्होंने कहा:{{sfn|Lucas|2021}}


{{quote|It might also be mentioned that the unsolvability of essentially these problems was first obtained by Turing.}}
{{quote|यह भी उल्लेख किया जा सकता है कि अनिवार्य रूप से इन समस्याओं की अघुलनशीलता को सबसे पहले ट्यूरिंग द्वारा प्राप्त किया गया था।}}


== औपचारिकता ==
== औपचारिकता ==


अपने मूल प्रमाण में ट्यूरिंग ने [[ट्यूरिंग मशीन]]ों को पेश करके एल्गोरिथम की अवधारणा को औपचारिक रूप दिया। हालाँकि, परिणाम किसी भी तरह से उनके लिए विशिष्ट नहीं है; यह सं[[गणना]] के किसी भी अन्य मॉडल पर समान रूप से लागू होता है जो ट्यूरिंग मशीनों के लिए इसकी कम्प्यूटेशनल शक्ति के बराबर है, जैसे [[मार्कोव एल्गोरिथम]], लैम्ब्डा कैलकुलस, [[पोस्ट सिस्टम]], [[रजिस्टर मशीन]] या टैग सिस्टम # 2-टैग हॉल्टिंग समस्या।
अपने मूल प्रमाण में ट्यूरिंग ने [[ट्यूरिंग मशीन|ट्यूरिंग मशीनों]] को प्रस्तुत करके एल्गोरिथम की अवधारणा को औपचारिक रूप दिया। चूँकि, परिणाम किसी भी रूप से उनके लिए विशिष्ट नहीं है; यह सं[[गणना]] के किसी भी अन्य मॉडल पर समान रूप से प्रारम्भ होता है जो ट्यूरिंग मशीनों के लिए इसकी कम्प्यूटेशनल शक्ति के समान है, जैसे [[मार्कोव एल्गोरिथम]], लैम्ब्डा कैलकुलस, [[पोस्ट सिस्टम|पोस्ट प्रणाली]], [[रजिस्टर मशीन]] या टैग प्रणाली 2-टैग हॉल्टिंग समस्या इत्यादि।


जो महत्वपूर्ण है वह यह है कि औपचारिकता कुछ [[डेटा प्रकार]]ों के लिए एल्गोरिदम की सीधी मैपिंग की अनुमति देती है जिस पर एल्गोरिदम काम कर सकता है। उदाहरण के लिए, यदि औपचारिकतावाद (गणित) एल्गोरिदम को स्ट्रिंग्स (जैसे ट्यूरिंग मशीन) पर फ़ंक्शन को परिभाषित करने देता है, तो स्ट्रिंग्स के लिए इन एल्गोरिदम की मैपिंग होनी चाहिए, और यदि औपचारिकता एल्गोरिदम को प्राकृतिक संख्याओं (जैसे [[गणना योग्य समारोह]]) पर फ़ंक्शन परिभाषित करने देती है। फिर प्राकृतिक संख्याओं के लिए एल्गोरिदम की मैपिंग होनी चाहिए। स्ट्रिंग्स की मैपिंग आमतौर पर सबसे सीधी होती है, लेकिन एन [[ चरित्र (कंप्यूटिंग) ]] के साथ एक [[वर्णमाला]] पर स्ट्रिंग्स को एन-आरी [[अंक प्रणाली]] में संख्याओं के रूप में व्याख्या करके संख्याओं में मैप किया जा सकता है।
जो महत्वपूर्ण है वह यह है कि औपचारिकता कुछ [[डेटा प्रकार|डेटा प्रकारों]] के लिए एल्गोरिदम की सीधी मैपिंग की अनुमति देती है जिस पर एल्गोरिदम कार्य कर सकता है। उदाहरण के लिए, यदि औपचारिकता (गणित) एल्गोरिदम को स्ट्रिंग्स (जैसे ट्यूरिंग मशीन) पर फलन को परिभाषित करने देता है, तो स्ट्रिंग्स के लिए इन एल्गोरिदम की मैपिंग होनी चाहिए, और यदि औपचारिकता एल्गोरिदम को प्राकृतिक संख्याओं (जैसे [[गणना योग्य समारोह|गणना योग्य फलन]]) पर फलन परिभाषित करने देती है। फिर प्राकृतिक संख्याओं के लिए एल्गोरिदम की मैपिंग होनी चाहिए। स्ट्रिंग्स की मैपिंग सामान्यतः सबसे सीधी होती है, किंतु n[[ चरित्र (कंप्यूटिंग) | वर्णों (कंप्यूटिंग)]] के साथ [[वर्णमाला]] पर स्ट्रिंग्स को n-आरी [[अंक प्रणाली]] में संख्याओं के रूप में व्याख्या करके संख्याओं में मैप किया जा सकता है।


=== एक सेट === के रूप में प्रतिनिधित्व
== सेट के रूप में प्रतिनिधित्व ==
{{main|Decision problem}}
{{main|निर्णय समस्या}}


निर्णय समस्याओं का पारंपरिक प्रतिनिधित्व उन वस्तुओं का समूह है जिनके पास संपत्ति है। पड़ाव सेट
निर्णय समस्याओं का पारंपरिक प्रतिनिधित्व उन वस्तुओं का समूह है जिनके पास संपत्ति है। हॉल्टिंग सेट
: के = {(i, x) | इनपुट एक्स पर चलाए जाने पर कार्यक्रम मैं रुक जाता हूं}
: ''K'' = {(i, x) इनपुट x पर चलाए जाने पर प्रोग्राम i हाल्ट हो जाता है}
रुकने की समस्या का प्रतिनिधित्व करता है।
हॉल्टिंग की समस्या का प्रतिनिधित्व करता है।


यह सेट पुनरावर्ती रूप से गणना योग्य है, जिसका अर्थ है कि एक गणना योग्य फ़ंक्शन है जो इसमें शामिल सभी जोड़े (i, x) को सूचीबद्ध करता है। हालाँकि, इस सेट का पूरक पुनरावर्ती गणना योग्य नहीं है।{{sfn|Moore|Mertens|2011|pp=236–237}}
यह सेट पुनरावर्ती रूप से गणना योग्य है, जिसका अर्थ है कि संगणनीय कार्य है जो इसमें सम्मिलित सभी जोड़े (i, x) को सूचीबद्ध करता है। चूँकि, इस सेट का पूरक पुनरावर्ती गणना योग्य नहीं है।{{sfn|Moore|Mertens|2011|pp=236–237}}


हॉल्टिंग प्रॉब्लम के कई समतुल्य फॉर्मूलेशन हैं; कोई भी सेट जिसकी [[ट्यूरिंग डिग्री]] रुकने की समस्या के बराबर होती है, ऐसा सूत्रीकरण है। ऐसे सेट के उदाहरणों में शामिल हैं:
हॉल्टिंग समस्या के कई समतुल्य सूत्रीकरण हैं; कोई भी सेट जिसकी [[ट्यूरिंग डिग्री]] हॉल्टिंग की समस्या के समान होती है, ऐसा सूत्रीकरण है। ऐसे सेट के उदाहरणों में सम्मिलित हैं:
*{मैं | प्रोग्राम I अंतत: रुक जाता है जब इनपुट के साथ चलाया जाता है 0}
*{i| प्रोग्राम I अंतत: तक रुक जाता है जब इनपुट 0 के साथ चलाया जाता है}
*{मैं | एक इनपुट x है जैसे कि इनपुट x के साथ चलने पर प्रोग्राम i अंततः रुक जाता है}।
*{i| इनपुट x है जैसे कि इनपुट x के साथ चलने पर प्रोग्राम i अंततः रुक जाता है}।


=== सबूत अवधारणा ===
=== प्रमाण अवधारणा ===


[[क्रिस्टोफर स्ट्रेची]] ने विरोधाभास द्वारा एक प्रमाण को रेखांकित किया कि हॉल्टिंग समस्या हल करने योग्य नहीं है।<ref>{{cite journal |last1=Strachey |first1=C. |title=एक असंभव कार्यक्रम|journal=The Computer Journal |date=1 January 1965 |volume=7 |issue=4 |pages=313 |doi=10.1093/comjnl/7.4.313 |url=https://academic.oup.com/comjnl/article/7/4/313/354243|doi-access=free }}</ref><ref>{{cite journal |last1=Daylight |first1=Edgar G. |title=The halting problem and security's language-theoretic approach: Praise and criticism from a technical historian |journal=Computability |date=16 April 2021 |volume=10 |issue=2 |pages=141–158 |doi=10.3233/COM-180217 |s2cid=233329507 |url=https://dijkstrascry.com/sites/default/files/papers/DaylightStracheySummer2020.pdf |access-date=26 August 2021}}</ref> प्रमाण निम्नानुसार आगे बढ़ता है: मान लीजिए कि एक कुल फ़ंक्शन कंप्यूटेबल फ़ंक्शन हाल्ट (f) मौजूद है, जो सही है यदि सबरूटीन f रुकता है (जब बिना किसी इनपुट के चलता है) और अन्यथा गलत रिटर्न देता है। अब निम्नलिखित सबरूटीन पर विचार करें:
[[क्रिस्टोफर स्ट्रेची]] ने विरोधाभास द्वारा प्रमाण को रेखांकित किया कि हॉल्टिंग समस्या समाधान करने योग्य नहीं है।<ref>{{cite journal |last1=Strachey |first1=C. |title=एक असंभव कार्यक्रम|journal=The Computer Journal |date=1 January 1965 |volume=7 |issue=4 |pages=313 |doi=10.1093/comjnl/7.4.313 |url=https://academic.oup.com/comjnl/article/7/4/313/354243|doi-access=free }}</ref><ref>{{cite journal |last1=Daylight |first1=Edgar G. |title=The halting problem and security's language-theoretic approach: Praise and criticism from a technical historian |journal=Computability |date=16 April 2021 |volume=10 |issue=2 |pages=141–158 |doi=10.3233/COM-180217 |s2cid=233329507 |url=https://dijkstrascry.com/sites/default/files/papers/DaylightStracheySummer2020.pdf |access-date=26 August 2021}}</ref> प्रमाण निम्नानुसार अग्रसर होता है: मान लीजिए कि कुल संगणनीय फ़ंक्शन हाल्ट (f) उपस्तिथ है, जो सबरूटीन f हाल्ट पर उचित रिटर्न देता है (जब बिना इनपुट के रन करवाया जाता है) और अन्यथा त्रुटिपूर्ण रिटर्न देता है। अब निम्नलिखित सबरूटीन पर विचार करें:


<syntaxhighlight lang="python">
<syntaxhighlight lang="python">
Line 111: Line 121:
         loop_forever()
         loop_forever()
</syntaxhighlight>
</syntaxhighlight>
हाल्ट (जी) को या तो सही या गलत वापस आना चाहिए, क्योंकि हॉल्ट को कुल कार्य माना जाता था। यदि हाल्ट(जी) सही रिटर्न देता है, तो जी लूप_फॉरएवर को कॉल करेगा और कभी नहीं रुकेगा, जो एक विरोधाभास है। यदि हाल्ट (जी) गलत रिटर्न देता है, तो जी रुक जाएगा, क्योंकि यह लूप_फॉरएवर को कॉल नहीं करेगा; यह भी एक विरोधाभास है। कुल मिलाकर, g जो रोकता है उसके विपरीत करता है जो कहता है कि g को करना चाहिए, इसलिए हाल्ट (g) एक सत्य मान नहीं लौटा सकता है जो g के रुकने के अनुरूप हो। इसलिए, प्रारंभिक धारणा है कि रुकता है कुल संगणनीय कार्य गलत होना चाहिए।
हाल्ट (g) का या तो उचित या अनुचित रिटर्न आना चाहिए, क्योंकि हॉल्ट को कुल फंक्शन माना जाता था। यदि हाल्ट (g) उचित रिटर्न देता है, तो g लूप_फॉरएवर को कॉल करेगा और कभी नहीं रुकेगा, जो विरोधाभास है। यदि हाल्ट (g) अनुचित रिटर्न देता है, तो g रुक जाएगा, क्योंकि यह लूप_फॉरएवर को कॉल नहीं करेगा; यह भी विरोधाभास है। पूर्ण रूप से, g इसके विपरीत करता है जो हाल्ट्स कहता है कि g को करना चाहिए, इसलिए हाल्ट (g) सत्य मान रिटर्न नहीं करता है जो g के हाल्ट के अनुरूप होता है। इसलिए, प्रारंभिक धारणा है कि हॉल्ट कुल संगणनीय फंक्शन अनुचित होना चाहिए।


=== कठोर प्रमाण का रेखाचित्र ===
=== कठोर प्रमाण का रेखाचित्र ===


ऊपर दी गई अवधारणा प्रमाण की सामान्य विधि को दर्शाती है, लेकिन संगणनीय कार्य रुक जाता है सीधे तर्क के रूप में एक उपनेमका नहीं लेता है; इसके बजाय यह एक प्रोग्राम का सोर्स कोड लेता है। इसके अलावा, जी की परिभाषा स्व-संदर्भित है। एक कठोर सबूत इन मुद्दों को संबोधित करता है। समग्र लक्ष्य यह दिखाना है कि कोई कुल फ़ंक्शन कंप्यूटेबल फ़ंक्शन नहीं है जो यह तय करता है कि क्या एक मनमाना प्रोग्राम i मनमाना इनपुट x पर रुकता है; अर्थात्, निम्न फ़ंक्शन h (हॉल्ट्स के लिए) संगणनीय नहीं है:{{sfn|Penrose|1989|pp=57-63}}
उपरोक्त अवधारणा प्रमाण की सामान्य विधि को दर्शाती है, किंतु संगणनीय फंक्शन हाल्ट आर्गुमेंट के रूप में सबरूटीन नहीं लेता है; इसके अतिरिक्त यह प्रोग्राम का सोर्स कोड लेता है। इसके अतिरिक्त, g की परिभाषा स्व-संदर्भित है। कठोर प्रमाण इन उद्देश्यों को संबोधित करता है। समग्र लक्ष्य यह दर्शाना है कि कोई कुल संगणनीय फंक्शन नहीं है जो यह निश्चित करता है कि क्या आर्बिट्ररी प्रोग्राम i आर्बिट्ररी इनपुट x पर रुकता है; अर्थात्, निम्न फंक्शन h (हॉल्ट्स के लिए) संगणनीय नहीं है:{{sfn|Penrose|1989|pp=57-63}}


:<math>h(i,x) =
:<math>h(i,x) =
Line 122: Line 132:
   0 & \text{otherwise.}
   0 & \text{otherwise.}
\end{cases}</math>
\end{cases}</math>
यहाँ कार्यक्रम i का तात्पर्य [[गणना]] के एक निश्चित ट्यूरिंग-पूर्ण मॉडल के सभी कार्यक्रमों की गणना में i वें कार्यक्रम से है।
यहाँ प्रोग्राम i का तात्पर्य [[गणना]] के निश्चित ट्यूरिंग-पूर्ण मॉडल के सभी प्रोग्रामों की गणना में i वें प्रोग्राम से है।


<div स्टाइल = फ्लोट: राइट; पैडिंग-लेफ्ट: 2em; चौड़ाई:2.7in; पृष्ठभूमि: सफेद; >
<div स्टाइल = फ्लोट: राइट; पैडिंग-लेफ्ट: 2em; चौड़ाई:2.7in; पृष्ठभूमि: सफेद; >
Line 212: Line 222:
| style="background:#99ff8b;"| U
| style="background:#99ff8b;"| U
| style="background:#99ff8b;"| 0
| style="background:#99ff8b;"| 0
|}
|}<div स्टाइल="फ्लोट:" राइट; पैडिंग-लेफ्ट: 2em; चौड़ाई:2.7in; पृष्ठभूमि: सफेद;>
<small>Possible values for a total computable function ''f'' arranged in a 2D array. The orange cells are the diagonal. The values of ''f''(''i'',''i'') and ''g''(''i'') are shown at the bottom; ''U'' indicates that the function ''g'' is undefined for a particular input value.</small>
<small>2डी ऐरे में व्यवस्थित कुल संगणनीय फ़ंक्शन f के लिए संभावित मान हैं। नारंगी सेल विकर्ण हैं। ''f''(''i'',''i'') और ''g''(''i'') के मान नीचे दर्शाये गए हैं; U दर्शाता है कि फ़ंक्शन g किसी विशेष इनपुट मान के लिए अपरिभाषित है।</small>
</div>
</div>प्रमाण यह स्थापित करके अग्रसर होता है कि दो तर्कों के साथ कुल संगणनीय फ़ंक्शन आवश्यक फ़ंक्शन h नहीं हो सकता है। जैसा कि अवधारणा के रेखाचित्र में है कि कुल संगणनीय बाइनरी फ़ंक्शन f दिया गया है, निम्न आंशिक फ़ंक्शन g भी कुछ प्रोग्राम e द्वारा संगणनीय है:
 
सबूत सीधे स्थापित करके आगे बढ़ता है कि दो तर्कों के साथ कुल गणना योग्य फ़ंक्शन आवश्यक फ़ंक्शन एच नहीं हो सकता है। जैसा कि अवधारणा के स्केच में, किसी भी कुल संगणनीय बाइनरी फ़ंक्शन f दिया गया है, निम्न आंशिक फ़ंक्शन g भी कुछ प्रोग्राम द्वारा गणना योग्य है:
:<math>g(i) =
:<math>g(i) =
\begin{cases}
\begin{cases}
Line 222: Line 230:
   \text{undefined} & \text{otherwise.}
   \text{undefined} & \text{otherwise.}
\end{cases}</math>
\end{cases}</math>
यह सत्यापन कि g संगणनीय है निम्नलिखित निर्माणों (या उनके समतुल्य) पर निर्भर करता है:
g संगणनीय है, यह सत्यापन निम्नलिखित निर्माणों (या उनके समतुल्य) पर निर्भर करता है:
* कंप्यूटेबल सबप्रोग्राम (वह प्रोग्राम जो f की गणना करता है, प्रोग्राम में एक सबप्रोग्राम है),
* कंप्यूटेबल सबप्रोग्राम (वह प्रोग्राम जो f की गणना करता है, प्रोग्राम e में सबप्रोग्राम है),
* मूल्यों का दोहराव (प्रोग्राम ई इनपुट i, i के लिए इनपुट i से g के लिए इनपुट की गणना करता है),
* मानों का दोहराव (प्रोग्राम e, g के लिए इनपुट i से f के लिए इनपुट i की गणना करता है),
* सशर्त ब्रांचिंग (प्रोग्राम दो परिणामों के बीच चयन करता है जो कि एफ (i, i) के लिए गणना किए गए मान पर निर्भर करता है),
* कंडीशनल ब्रांचिंग (प्रोग्राम e दो परिणामों के मध्य चयन करता है जो कि ''f''(''i'',''i'') के लिए गणना किए गए मान के आधार पर होता है),
* परिभाषित परिणाम नहीं दे रहा है (उदाहरण के लिए, हमेशा के लिए लूप करके),
* परिभाषित परिणाम नहीं देता है (उदाहरण के लिए, फॉरएवर लूपिंग),
* 0 का मान लौटाना।
* 0 रिटर्न करता है।
 
e के लिए निम्नलिखित स्यूडोकोड g की गणना करने की सरल विधि दर्शाता है:
के लिए निम्नलिखित स्यूडोकोड जी की गणना करने का एक सीधा तरीका दिखाता है:
</div>


<div शैली = चौड़ाई: 50%; >
<div शैली = चौड़ाई: 50%; >
<!-- the following code is not Pascal, but that option makes the highlighting work correctly -->
<syntaxhighlight lang="pascal">
<syntaxhighlight lang="pascal">
procedure e(i):
procedure e(i):
Line 242: Line 249:
</div>
</div>


चूंकि जी आंशिक गणना योग्य है, इसलिए एक प्रोग्राम होना चाहिए जो जी की गणना करता है, इस धारणा से कि गणना का मॉडल ट्यूरिंग-पूर्ण है। यह प्रोग्राम उन सभी प्रोग्रामों में से एक है जिन पर हॉल्टिंग फंक्शन h परिभाषित किया गया है। उपपत्ति का अगला चरण दर्शाता है कि h(e,e) का मान f(e,e) के समान नहीं होगा।
चूँकि g आंशिक संगणनीय है इसलिए प्रोग्राम e होना चाहिए जो g की गणना इस धारणा से करता है कि संगणना का मॉडल ट्यूरिंग-पूर्ण है। यह प्रोग्राम उन सभी प्रोग्रामों में से है जिन पर हॉल्टिंग फंक्शन h परिभाषित किया गया है। प्रमाण का अग्र चरण दर्शाता है कि h(e,e) का मान f(e,e) के समान नहीं होगा।


यह जी की परिभाषा से अनुसरण करता है कि वास्तव में निम्नलिखित दो मामलों में से एक होना चाहिए:
यह g की परिभाषा से अनुसरण करता है कि वास्तव में निम्नलिखित दो स्तिथियों में से एक होनी चाहिए:
* एफ (, ) = 0 और इसलिए जी () = 0। इस मामले में इनपुट पर रुकता है, इसलिए एच (, ) = 1।
* ''f''(''e'',''e'') = 0 और so ''g''(''e'') = 0 है। इस स्तिथि में e, इनपुट e पर रुकता है, इसलिए ''h''(''e'',''e'') = 0 है।
* f(e,e) ≠ 0 और इसलिए g(e) अपरिभाषित है। इस मामले में प्रोग्राम इनपुट पर नहीं रुकता है, इसलिए एच (, ) = 0।
* f(e,e) ≠ 0 और इसलिए g(e) अपरिभाषित है। इस स्तिथि में प्रोग्राम e, इनपुट e पर नहीं रुकता है, इसलिए ''h''(''e'',''e'') = 0 है।
किसी भी स्थिति में, f, h के समान कार्य नहीं हो सकता। क्योंकि f दो तर्कों के साथ एक मनमाना कुल संगणनीय कार्य था, ऐसे सभी कार्यों को h से भिन्न होना चाहिए।
किसी भी स्थिति में, f, h के समान फंक्शन नहीं हो सकता है। क्योंकि f दो तर्कों के साथ आर्बिट्ररी कुल संगणनीय फंक्शन था, ऐसे सभी फंक्शन्स को h से भिन्न होना चाहिए।


यह प्रमाण कैंटर के विकर्ण तर्क के अनुरूप है। जैसा कि ऊपर दी गई तालिका में दर्शाया गया है, प्रत्येक प्राकृतिक संख्या के लिए एक स्तंभ और एक पंक्ति के साथ द्वि-आयामी सरणी की कल्पना की जा सकती है। f(i,j) का मान कॉलम i, पंक्ति j पर रखा गया है। क्योंकि f को कुल संगणनीय कार्य माना जाता है, सरणी के किसी भी तत्व की गणना f का उपयोग करके की जा सकती है। इस सरणी के मुख्य विकर्ण का उपयोग करके फ़ंक्शन g के निर्माण की कल्पना की जा सकती है। यदि सरणी की स्थिति (i,i) पर 0 है, तो g(i) 0 है। अन्यथा, g(i) अपरिभाषित है। विरोधाभास इस तथ्य से आता है कि जी के अनुरूप सरणी का कुछ स्तंभ है। अब मान लें कि f हॉल्टिंग फंक्शन h था, अगर g(e) परिभाषित है (इस मामले में g(e) = 0), g(e) रुकता है तो f(e,e) = 1. लेकिन g(e) = 0 केवल जब f(e,e) = 0, f(e,e) = 1 के विपरीत। ) = 0 जी के निर्माण के तहत। यह g(e) परिभाषित नहीं होने की धारणा के विपरीत है। दोनों ही स्थितियों में विरोधाभास उत्पन्न होता है। इसलिए कोई भी मनमाना संगणनीय फलन f हॉल्टिंग फलन h नहीं हो सकता।
यह प्रमाण कैंटर के विकर्ण तर्क के अनुरूप है। जिस प्रकार उपरोक्त तालिका में दर्शाया गया है, प्रत्येक प्राकृतिक संख्या के लिए स्तंभ और पंक्ति के साथ द्वि-आयामी ऐरे की कल्पना की जा सकती है। f(i,j) का मान स्तंभ i, पंक्ति j पर रखा गया है। क्योंकि f को कुल संगणनीय फंक्शन माना जाता है, ऐरे के किसी भी तत्व की गणना f का उपयोग करके की जा सकती है। इस ऐरे के मुख्य विकर्ण का उपयोग करके फंक्शन g के निर्माण की कल्पना की जा सकती है। यदि ऐरे की स्थिति (i,i) पर 0 है, तो g(i), 0 है। अन्यथा, g(i) अपरिभाषित है। विरोधाभास इस तथ्य से प्राप्त होता है कि g के अनुरूप ऐरे के कुछ स्तंभ e है। अब मान लें कि f हॉल्टिंग फंक्शन h था, यदि g(e) परिभाषित है (इस स्तिथि में g(e) = 0), g(e) हाल्ट है तब f(e,e) = 1 होगा। किंतु g(e) = 0 है, जब f(e,e) = 0, f(e,e) = 1 का विरोध करता है। इसी प्रकार, यदि g(e) परिभाषित नहीं है, तो हॉल्टिंग फंक्शन f(e,e) = 0, जो g की रचना के अंतर्गत g(e) = 0 की ओर ले जाता है। यह g(e) परिभाषित नहीं होने की धारणा के विपरीत है। दोनों ही स्थितियों में विरोधाभास उत्पन्न होता है। इसलिए कोई भी आर्बिट्ररी संगणनीय फंक्शन f हॉल्टिंग फंक्शन h नहीं हो सकता है।


== कम्प्यूटेबिलिटी सिद्धांत ==
== संगणनीयता सिद्धांत ==
{{main|Computability theory}}
{{main|संगणनीयता सिद्धांत}}


किसी समस्या को अनिर्णीत साबित करने का एक विशिष्ट तरीका यह है कि इसे हल करने की समस्या में [[कमी (जटिलता)]] करना है।
किसी समस्या P को अनिर्णीत सिद्ध करने की विशिष्ट विधि हॉल्टिंग समस्या को P तक [[कमी (जटिलता)|कम (जटिलता)]] करना है।
उदाहरण के लिए, कोई सामान्य एल्गोरिथम नहीं हो सकता है जो यह तय करे कि [[प्राकृतिक संख्या]]ओं के बारे में दिया गया कथन सत्य है या असत्य। इसका कारण यह है कि यह [[प्रस्ताव]] कि एक निश्चित इनपुट दिए जाने पर एक निश्चित कार्यक्रम रुक जाएगा, प्राकृतिक संख्याओं के बारे में एक समान कथन में परिवर्तित किया जा सकता है। यदि एक एल्गोरिथ्म प्राकृतिक संख्याओं के बारे में प्रत्येक कथन का सत्य मान पा सकता है, तो वह निश्चित रूप से इसका सत्य मान खोज सकता है; लेकिन यह निर्धारित करेगा कि मूल कार्यक्रम रुकता है या नहीं।


राइस की प्रमेय इस प्रमेय का सामान्यीकरण करती है कि रुकने की समस्या का समाधान नहीं किया जा सकता है। यह बताता है कि किसी भी गैर-तुच्छ संपत्ति के लिए, कोई सामान्य निर्णय प्रक्रिया नहीं है, जो सभी कार्यक्रमों के लिए, यह तय करती है कि इनपुट प्रोग्राम द्वारा कार्यान्वित आंशिक कार्य में वह संपत्ति है या नहीं। (एक आंशिक कार्य एक ऐसा कार्य है जो हमेशा एक परिणाम नहीं दे सकता है, और इसलिए इसका उपयोग मॉडल प्रोग्राम के लिए किया जाता है, जो या तो परिणाम उत्पन्न कर सकता है या रुकने में विफल हो सकता है।) उदाहरण के लिए, इनपुट 0 के लिए संपत्ति पड़ाव अनिर्णीत है। यहाँ, गैर-तुच्छ का अर्थ है कि संपत्ति को संतुष्ट करने वाले आंशिक कार्यों का सेट न तो खाली सेट है और न ही सभी आंशिक कार्यों का सेट। उदाहरण के लिए, इनपुट 0 पर रुकने या रुकने में विफल सभी आंशिक कार्यों के लिए स्पष्ट रूप से सही है, इसलिए यह एक तुच्छ संपत्ति है, और एक एल्गोरिथ्म द्वारा तय किया जा सकता है जो केवल सच की रिपोर्ट करता है। साथ ही, यह प्रमेय केवल कार्यक्रम द्वारा कार्यान्वित आंशिक कार्य के गुणों के लिए है; चावल की प्रमेय कार्यक्रम के गुणों पर ही लागू नहीं होती है। उदाहरण के लिए, 100 चरणों के भीतर इनपुट 0 पर रुकना प्रोग्राम द्वारा लागू किए गए आंशिक फ़ंक्शन की संपत्ति नहीं है - यह आंशिक फ़ंक्शन को लागू करने वाले प्रोग्राम की एक संपत्ति है और यह बहुत ही निर्णायक है।
उदाहरण के लिए, कोई सामान्य एल्गोरिथम नहीं हो सकता है जो यह निश्चित करे कि [[प्राकृतिक संख्या|प्राकृतिक संख्याओं]] के संबंध में दिया गया कथन सत्य है या असत्य है। इसका कारण यह है कि यह [[प्रस्ताव]] निश्चित इनपुट दिए जाने पर निश्चित प्रोग्राम रुक जाएगा, जिसे प्राकृतिक संख्याओं के संबंध में समान कथन में परिवर्तित किया जा सकता है। यदि एल्गोरिथ्म प्राकृतिक संख्याओं के संबंध में प्रत्येक कथन का सत्य मान प्राप्त कर सकता है, तो वह निश्चित रूप से इसका सत्य मान अन्वेषित कर सकता है; किंतु यह निर्धारित करेगा कि मूल प्रोग्राम रुकता है या नहीं।


[[ग्रेगरी चैतिन]] ने एक रुकने की [[संभावना]] को परिभाषित किया है, जिसे चैटिन के स्थिरांक | Ω प्रतीक द्वारा दर्शाया गया है, एक प्रकार की वास्तविक संख्या जो अनौपचारिक रूप से संभावना का प्रतिनिधित्व करने के लिए कहा जाता है कि एक बेतरतीब ढंग से उत्पादित कार्यक्रम रोकता है। इन नंबरों में हॉल्टिंग समस्या के समान ट्यूरिंग डिग्री है। यह एक [[सामान्य संख्या]] और अनुवांशिक संख्या है जो [[निश्चित संख्या]] हो सकती है लेकिन पूरी तरह से [[गणना योग्य संख्या]] नहीं हो सकती है। इसका मतलब यह है कि कोई यह साबित कर सकता है कि कोई एल्गोरिदम नहीं है जो Ω के अंकों का उत्पादन करता है, हालांकि इसके पहले कुछ अंकों को साधारण मामलों में गणना की जा सकती है।
राइस की प्रमेय इसका सामान्यीकरण करती है कि हाल्टिंग की समस्या का समाधान नहीं किया जा सकता है। यह बताता है कि किसी भी गैर-तुच्छ गुण के लिए, कोई सामान्य निर्णय प्रक्रिया नहीं है, जो सभी प्रोग्रामों के लिए, यह निश्चित करती है कि इनपुट प्रोग्राम द्वारा कार्यान्वित आंशिक फंक्शन में वह गुण है या नहीं है। (आंशिक फंक्शन सदैव परिणाम नहीं दे सकता है, और इसलिए इसका उपयोग मॉडल प्रोग्राम के लिए किया जाता है, जो या तो परिणाम उत्पन्न कर सकता है या हॉल्ट में विफल हो सकता है।) उदाहरण के लिए, इनपुट 0 के लिए गुण हॉल्ट अनिर्णीत है। यहाँ, गैर-तुच्छ का अर्थ है कि गुण को संतुष्ट करने वाले आंशिक फंक्शन्स का सेट न तो रिक्त सेट है और न ही सभी आंशिक फंक्शन्स का सेट है। उदाहरण के लिए, इनपुट 0 पर हॉल्ट सभी आंशिक फंक्शन्स के लिए स्पष्ट रूप से उचित है, इसलिए यह तुच्छ गुण है, जिसे एल्गोरिथ्म द्वारा निश्चित किया जा सकता है जो केवल सत्य की रिपोर्ट करता है। यह प्रमेय केवल प्रोग्राम द्वारा कार्यान्वित आंशिक फंक्शन के गुणों के लिए है; राइस की प्रमेय प्रोग्राम के गुणों पर ही प्रयुक्त नहीं होती है। उदाहरण के लिए, 100 चरणों के भीतर इनपुट 0 पर हॉल्ट प्रोग्राम द्वारा प्रारम्भ किए गए आंशिक फ़ंक्शन का गुण नहीं है - यह आंशिक फ़ंक्शन को प्रारम्भ करने वाले प्रोग्राम का गुण है और यह अधिक निर्णायक है।


चूंकि हॉल्टिंग समस्या के नकारात्मक उत्तर से पता चलता है कि ऐसी समस्याएं हैं जिन्हें ट्यूरिंग मशीन द्वारा हल नहीं किया जा सकता है, चर्च-ट्यूरिंग थीसिस किसी भी मशीन द्वारा पूरा किया जा सकता है जो प्रभावी तरीकों को लागू करता है। हालांकि, मानव कल्पना के लिए कल्पनीय सभी मशीनें चर्च-ट्यूरिंग थीसिस (जैसे [[ओरेकल मशीन]]) के अधीन नहीं हैं। यह एक खुला प्रश्न है कि क्या वास्तविक निर्धारक भौतिक प्रक्रियाएं हो सकती हैं, जो लंबे समय में, ट्यूरिंग मशीन द्वारा सिमुलेशन से बच निकलती हैं, और विशेष रूप से क्या ऐसी कोई काल्पनिक प्रक्रिया उपयोगी रूप से गणना मशीन (एक [[ hypercomputer ]]) के रूप में उपयोग की जा सकती है। जो अन्य चीजों के साथ ट्यूरिंग मशीन के लिए हॉल्टिंग की समस्या को हल कर सकता है। यह भी एक खुला प्रश्न है कि क्या ऐसी कोई अज्ञात भौतिक प्रक्रियाएँ [[मानव मस्तिष्क]] के कार्य में शामिल हैं, और क्या मनुष्य रुकने की समस्या का समाधान कर सकते हैं।{{sfn|Copeland|2004|p=15}}
[[ग्रेगरी चैतिन]] ने प्रतीक Ω द्वारा दर्शाई गई हॉल्टिंग की [[संभावना]] को परिभाषित किया है, वास्तविक संख्या के प्रकार को अनौपचारिक रूप से संभावना का प्रतिनिधित्व करने के लिए कहा जाता है कि निरुद्देश्यता से उत्पादित प्रोग्राम हॉल्ट है। इन संख्याओं में हॉल्टिंग समस्या के समान ट्यूरिंग डिग्री होती है। यह [[सामान्य संख्या]] और प्रागनुभविक संख्या है जो [[निश्चित संख्या]] हो सकती है किंतु पूर्ण रूप से [[गणना योग्य संख्या]] नहीं हो सकती है। इसका अर्थ यह है कि कोई यह प्रमाणित कर सकता है कि कोई एल्गोरिदम नहीं है जो Ω के अंकों का उत्पादन करता है, चूँकि इससे पूर्व कुछ अंकों की साधारण स्थितियों में गणना की जा सकती है।
 
चूंकि हॉल्टिंग समस्या के नकारात्मक उत्तर से यह ज्ञात होता है कि ऐसी समस्याएं हैं जिनका समाधान ट्यूरिंग मशीन द्वारा नहीं किया जा सकता है, चर्च-ट्यूरिंग थीसिस किसी भी मशीन द्वारा पूर्ण की जा सकती है जो प्रभावी विधियों को प्रारम्भ करती है। चूँकि, मानव कल्पना के लिए कल्पनीय सभी मशीनें चर्च-ट्यूरिंग थीसिस (जैसे [[ओरेकल मशीन]]) के अधीन नहीं हैं। यह विवृत प्रश्न है कि क्या वास्तविक निर्धारक भौतिक प्रक्रियाएं हो सकती हैं, जो लंबे समय में, ट्यूरिंग मशीन द्वारा सिमुलेशन से बच निकलती हैं, और विशेष रूप से क्या ऐसी कोई काल्पनिक प्रक्रिया उपयोगी रूप से गणना मशीन ([[ hypercomputer | हाइपरकंप्यूटर]] ) के रूप में उपयोग की जा सकती है। जो अन्य वस्तुओं के साथ ट्यूरिंग मशीन के लिए हॉल्टिंग की समस्या को समाधान कर सकता है। यह भी विवृत प्रश्न है कि क्या ऐसी कोई अज्ञात भौतिक प्रक्रियाएँ [[मानव मस्तिष्क]] के कार्य में सम्मिलित हैं, और क्या मनुष्य हॉल्टिंग की समस्या का समाधान कर सकते हैं।{{sfn|Copeland|2004|p=15}}


=== सन्निकटन ===
=== सन्निकटन ===


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


हॉल्टिंग प्रॉब्लम ह्यूरिस्टिक्स के सैद्धांतिक प्रदर्शन पर कुछ परिणाम स्थापित किए गए हैं, विशेष रूप से किसी दिए गए आकार के कार्यक्रमों के अंश जिन्हें पुनरावर्ती एल्गोरिथम द्वारा सही ढंग से वर्गीकृत किया जा सकता है। ये परिणाम सटीक संख्या नहीं देते हैं क्योंकि अंश अगणनीय हैं और आकार निर्धारित करने के लिए उपयोग किए जाने वाले प्रोग्राम एन्कोडिंग की पसंद पर अत्यधिक निर्भर हैं। उदाहरण के लिए, कार्यक्रमों को उनके राज्यों की संख्या के आधार पर वर्गीकृत करने पर विचार करें और गणना के एक विशिष्ट ट्यूरिंग सेमी-अनंत टेप मॉडल का उपयोग करें कि यदि प्रोग्राम टेप के बाईं ओर चलता है तो त्रुटियां (बिना रुके)। तब <math>\lim_{n\to\infty} P(x\,\text{halts is decidable} \mid x\,\text{has}\,n\,\text{states}) = 1</math>, कार्यक्रमों पर <math>x</math> राज्यों की संख्या द्वारा समान रूप से चुना गया। लेकिन यह परिणाम कुछ अर्थों में तुच्छ है क्योंकि ये निर्णायक कार्यक्रम केवल वही हैं जो टेप से गिर जाते हैं, और अनुमानी केवल त्रुटि के कारण रुकने की भविष्यवाणी करने के लिए है। इस प्रकार एक प्रतीत होता है अप्रासंगिक विवरण, अर्थात् त्रुटियों वाले कार्यक्रमों का उपचार, कार्यक्रमों के अंश को निर्धारित करने में निर्णायक कारक बन सकता है।<ref>{{cite journal |last1=Hamkins |first1=Joel David |last2=Miasnikov |first2=Alexei |title=हॉल्टिंग प्रॉब्लम एसिम्प्टोटिक प्रोबेबिलिटी वन के सेट पर निर्णायक है|journal=Notre Dame Journal of Formal Logic |date=1 October 2006 |volume=47 |issue=4 |doi=10.1305/ndjfl/1168352664 |s2cid=15005164 |url=https://projecteuclid.org/journals/notre-dame-journal-of-formal-logic/volume-47/issue-4/The-Halting-Problem-Is-Decidable-on-a-Set-of-Asymptotic/10.1305/ndjfl/1168352664.pdf |access-date=5 November 2022}}</ref>
हॉल्टिंग समस्या ह्यूरिस्टिक्स के सैद्धांतिक प्रदर्शन पर कुछ परिणाम स्थापित किए गए हैं, विशेष रूप से किसी दिए गए आकार के प्रोग्रामों के अंश जिन्हें रिकर्सिव एल्गोरिथम द्वारा उचित रूप से वर्गीकृत किया जा सकता है। ये परिणाम त्रुटिहीन संख्या नहीं देते हैं क्योंकि अंश अगणनीय हैं और आकार निर्धारित करने के लिए उपयोग किए जाने वाले प्रोग्राम एन्कोडिंग के चयन पर अत्यधिक निर्भर हैं। उदाहरण के लिए, प्रोग्रामों को उनकी स्थितियों की संख्या के आधार पर वर्गीकृत करने पर विचार करें और गणना के विशिष्ट ट्यूरिंग सेमी-अनंत टेप मॉडल का उपयोग करें कि यदि प्रोग्राम टेप के बाईं ओर रन करता है तो त्रुटियाँ होती हैं। तब <math>\lim_{n\to\infty} P(x\,\text{halts is decidable} \mid x\,\text{has}\,n\,\text{states}) = 1</math>, प्रोग्रामों पर <math>x</math> स्थितियों की संख्या द्वारा समान रूप से चयनित किया गया। किंतु यह परिणाम कुछ अर्थों में तुच्छ है क्योंकि ये निर्णायक प्रोग्राम केवल वही हैं जो टेप से गिर जाते हैं, और अनुमानी केवल त्रुटि के कारण हॉल्टिंग की भविष्यवाणी करने के लिए है। इस प्रकार प्रतीत होता है अप्रासंगिक विवरण, अर्थात् त्रुटियों वाले प्रोग्रामों का उपचार, प्रोग्रामों के अंश को निर्धारित करने में निर्णायक कारक बन सकता है।<ref>{{cite journal |last1=Hamkins |first1=Joel David |last2=Miasnikov |first2=Alexei |title=हॉल्टिंग प्रॉब्लम एसिम्प्टोटिक प्रोबेबिलिटी वन के सेट पर निर्णायक है|journal=Notre Dame Journal of Formal Logic |date=1 October 2006 |volume=47 |issue=4 |doi=10.1305/ndjfl/1168352664 |s2cid=15005164 |url=https://projecteuclid.org/journals/notre-dame-journal-of-formal-logic/volume-47/issue-4/The-Halting-Problem-Is-Decidable-on-a-Set-of-Asymptotic/10.1305/ndjfl/1168352664.pdf |access-date=5 November 2022}}</ref>
इन मुद्दों से बचने के लिए, एक कार्यक्रम के आकार की कई प्रतिबंधित धारणाएँ विकसित की गई हैं। एक सघन गोडेल क्रमांकन कार्यक्रमों को संख्याएँ प्रदान करता है जैसे कि प्रत्येक संगणनीय फलन 1 से n तक के सूचकांकों के प्रत्येक अनुक्रम में एक धनात्मक अंश होता है, अर्थात सभी के लिए एक गोडेलाइज़ेशन φ सघन होता है। <math>i</math>, वहाँ मौजूद है <math>c > 0</math> ऐसा है कि <math>\liminf_{n\to\infty} \#\{j \in \N : 0 \leq j < n, \phi_i = \phi_j\}/n\geq c</math>. उदाहरण के लिए, एक क्रमांकन जो अनुक्रमित करता है <math>2^n</math> गैर-तुच्छ कार्यक्रमों और अन्य सभी सूचकांकों के लिए त्रुटि स्थिति सघन नहीं है, लेकिन सिंटैक्टिक रूप से सही [[ब्रेनफक]] कार्यक्रमों की सघन गोडेल संख्या मौजूद है।<ref name=RealWorldApprox>{{cite journal |last1=Köhler |first1=Sven |last2=Schindelhauer |first2=Christian |last3=Ziegler |first3=Martin |title=रियल-वर्ल्ड हॉल्टिंग प्रॉब्लम का अनुमान लगाने पर|journal=Fundamentals of Computation Theory |series=Lecture Notes in Computer Science |date=2005 |volume=3623 |pages=454–466 |doi=10.1007/11537311_40 |isbn=978-3-540-28193-1 |url=https://www.researchgate.net/publication/221150369}}</ref> किसी भी अन्य गोडेल नंबरिंग के लिए एक सघन गोडेल नंबरिंग को इष्टतम कहा जाता है <math>\alpha</math>, 1-1 कुल पुनरावर्ती कार्य है <math>f</math> और एक स्थिर <math>c</math> ऐसा कि सभी के लिए <math>i</math>, <math>\alpha_i=\phi_{f(i)}</math> और <math>f(i) \leq c i</math>. यह स्थिति सुनिश्चित करती है कि सभी कार्यक्रमों के सूचकांक किसी भी अन्य गोडेल नंबरिंग में उनके सूचकांकों की तुलना में बहुत बड़े नहीं हैं। [[यूनिवर्सल ट्यूरिंग मशीन]] के इनपुट को नंबर देकर इष्टतम गोडेल नंबरिंग का निर्माण किया जाता है।<ref>{{cite journal |last1=Lynch |first1=Nancy |title=रुकने की समस्या के अनुमान|journal=Journal of Computer and System Sciences |date=October 1974 |volume=9 |issue=2 |pages=143–150 |doi=10.1016/S0022-0000(74)80003-6 |url=https://core.ac.uk/download/pdf/82630072.pdf}}</ref> आकार की एक तीसरी धारणा बाइनरी स्ट्रिंग्स पर चलने वाली सार्वभौमिक मशीनों का उपयोग करती है और इनपुट प्रोग्राम का वर्णन करने के लिए आवश्यक स्ट्रिंग की लंबाई को मापती है। एक सार्वभौमिक मशीन यू एक ऐसी मशीन है जिसके लिए हर दूसरी मशीन वी में कुल गणना योग्य कार्य एच मौजूद है <math>V (x) = U (h(x))</math>. एक इष्टतम मशीन एक सार्वभौमिक मशीन है जो कोल्मोगोरोव जटिलता को प्राप्त करती है#अपरिवर्तनीय प्रमेय, यानी प्रत्येक मशीन वी के लिए, सी मौजूद है जैसे कि सभी आउटपुट एक्स के लिए, यदि लंबाई एन आउटपुट एक्स का वी-प्रोग्राम है, तो यू-प्रोग्राम मौजूद है अधिकतम लंबाई का <math>n+c</math> आउटपुट एक्स।<ref name=OptimalMachines>{{cite journal |last1=Bienvenu |first1=Laurent |last2=Desfontaines |first2=Damien |last3=Shen |first3=Alexander |title=समस्या को रोकने के लिए सामान्य एल्गोरिदम और इष्टतम मशीनों पर दोबारा गौर किया गया|journal=Logical Methods in Computer Science |date=5 April 2016 |volume=12 |issue=2 |pages=1 |doi=10.2168/LMCS-12(2:1)2016|arxiv=1505.00731|s2cid=14763862 }}</ref>
 
हम आंशिक संगणनीय कार्यों (एल्गोरिदम) पर विचार करते हैं <math>A</math>. प्रत्येक के लिए <math>n</math> हम अंश पर विचार करते हैं <math>\epsilon_n(A)</math> अधिकतम आकार मीट्रिक के सभी कार्यक्रमों में त्रुटियों की संख्या <math>n</math>, प्रत्येक कार्यक्रम की गिनती <math>x</math> जिसके लिए <math>A</math> समाप्त करने में विफल रहता है, एक अज्ञात उत्तर उत्पन्न करता है, या एक गलत उत्तर उत्पन्न करता है, अर्थात <math>x</math> रुकता है और <math>A(x)</math> आउटपुट <code>DOES_NOT_HALT</code>, या <math>x</math> रुकता नहीं है और <math>A(x)</math> आउटपुट <code>HALTS</code>. सघन गोडेलाइजेशन और इष्टतम मशीनों के लिए व्यवहार को निम्नानुसार वर्णित किया जा सकता है:<ref name=RealWorldApprox/><ref name=OptimalMachines/>
इन उद्देश्य से बचने के लिए, प्रोग्राम के आकार की कई प्रतिबंधित धारणाएँ विकसित की गई हैं। सघन गोडेल क्रमांकन प्रोग्रामों को संख्याएँ प्रदान करता है जैसे कि प्रत्येक संगणनीय फलन 1 से n तक के सूचकांकों के प्रत्येक अनुक्रम में धनात्मक अंश होता है, अर्थात सभी <math>i</math> के लिए गोडेलाइज़ेशन φ सघन होता है, जहाँ <math>c > 0</math> उपस्तिथ है जैसे कि <math>\liminf_{n\to\infty} \#\{j \in \N : 0 \leq j < n, \phi_i = \phi_j\}/n\geq c</math>. उदाहरण के लिए, क्रमांकन जो सूचकांक <math>2^n</math> को गैर-तुच्छ प्रोग्रामों और अन्य सभी सूचकांक को त्रुटि स्थिति प्रदान करती है, जो सघन नहीं है, किन्तु सिंटैक्टिकली उचित [[ब्रेनफक]] प्रोग्राम की सघन गोडेल संख्या उपस्तिथ है।<ref name="RealWorldApprox">{{cite journal |last1=Köhler |first1=Sven |last2=Schindelhauer |first2=Christian |last3=Ziegler |first3=Martin |title=रियल-वर्ल्ड हॉल्टिंग प्रॉब्लम का अनुमान लगाने पर|journal=Fundamentals of Computation Theory |series=Lecture Notes in Computer Science |date=2005 |volume=3623 |pages=454–466 |doi=10.1007/11537311_40 |isbn=978-3-540-28193-1 |url=https://www.researchgate.net/publication/221150369}}</ref> सघन गोडेल क्रमांकन को इष्टतम कहा जाता है, यदि किसी अन्य गोडेल क्रमांकन <math>\alpha</math> के लिए, 1-1 कुल रिकर्सिव फ़ंक्शन <math>f</math> और <math>c</math> स्थिर है जैसे कि सभी <math>i</math> के लिए, <math>\alpha_i=\phi_{f(i)}</math> और <math>f(i) \leq c i</math> है। यह स्थिति सुनिश्चित करती है कि सभी प्रोग्रामों के सूचकांक किसी भी अन्य गोडेल क्रमांकन में उनके सूचकांकों की तुलना में अधिक बड़े नहीं हैं। [[यूनिवर्सल ट्यूरिंग मशीन]] के इनपुट को संख्या देकर इष्टतम गोडेल क्रमांकन का निर्माण किया जाता है।<ref>{{cite journal |last1=Lynch |first1=Nancy |title=रुकने की समस्या के अनुमान|journal=Journal of Computer and System Sciences |date=October 1974 |volume=9 |issue=2 |pages=143–150 |doi=10.1016/S0022-0000(74)80003-6 |url=https://core.ac.uk/download/pdf/82630072.pdf}}</ref> आकार की तृतीय धारणा बाइनरी स्ट्रिंग्स पर संचालित होने वाली यूनिवर्सल मशीनों का उपयोग करती है और इनपुट प्रोग्राम का वर्णन करने के लिए आवश्यक स्ट्रिंग की लंबाई को मापती है। यूनिवर्सल मशीन U ऐसी मशीन है जिसके लिए प्रत्येक दूसरी मशीन V में कुल संगणनीय फ़ंक्शन h उपस्तिथ है जैसे कि <math>V (x) = U (h(x))</math>, इष्टतम मशीन यूनिवर्सल मशीन है जो कोल्मोगोरोव जटिलता को प्राप्त करती है, अर्थात प्रत्येक मशीन V के लिए c उपस्थित है जैसे कि सभी आउटपुट x के लिए, यदि लंबाई n आउटपुट x का V-प्रोग्राम है, तो अधिकतम लंबाई <math>n+c</math> आउटपुट x का U-प्रोग्राम उपस्थित है।<ref name="OptimalMachines">{{cite journal |last1=Bienvenu |first1=Laurent |last2=Desfontaines |first2=Damien |last3=Shen |first3=Alexander |title=समस्या को रोकने के लिए सामान्य एल्गोरिदम और इष्टतम मशीनों पर दोबारा गौर किया गया|journal=Logical Methods in Computer Science |date=5 April 2016 |volume=12 |issue=2 |pages=1 |doi=10.2168/LMCS-12(2:1)2016|arxiv=1505.00731|s2cid=14763862 }}</ref>
 
हम आंशिक संगणनीय फ़ंक्शन (एल्गोरिदम) <math>A</math> पर विचार करते हैं। प्रत्येक <math>n</math> के लिए हम आकार मीट्रिक के सभी प्रोग्रामों के मध्य त्रुटियों के अंश <math>\epsilon_n(A)</math> पर विचार करते हैं, प्रत्येक प्रोग्राम x की गणना करते हुए, जिसके लिए A समाप्त करने में विफल रहता है, जो "पता नहीं" उत्तर देता है, या अनुचित उत्तर उत्पन्न करता है, अर्थात <math>x</math> हॉल्ट है और <math>A(x)</math>, <code>DOES_NOT_HALT</code> आउटपुट देता है या <math>x</math> हॉल्ट नहीं है और <math>A(x)</math>, <code>HALTS</code> आउटपुट देता है। सघन गोडेलाइजेशन और इष्टतम मशीनों के लिए व्यवहार को निम्नानुसार वर्णित किया जा सकता है:<ref name="RealWorldApprox" /><ref name="OptimalMachines" />
 
* प्रत्येक एल्गोरिदम <math>A</math> के लिए, <math>\liminf_{n\to\infty} \epsilon_n(A) > 0</math>
* जहाँ <math>\epsilon > 0</math> उपस्तिथ है जैसे कि प्रत्येक एल्गोरिथम <math>A</math> के लिए, <math>\limsup_{n\to\infty} \epsilon_n(A) \geq \epsilon</math>
* <math>\inf_{A} \liminf_{n\to\infty} \epsilon_n(A) = 0</math>, चूँकि, इसमें एल्गोरिदम सम्मिलित हैं जो अनुचित उत्तर उत्पन्न करते हैं।
* यदि हम केवल ऑनेस्ट एल्गोरिदम पर विचार करते हैं जो अपरिभाषित हो सकते हैं किंतु कभी भी अनुचित उत्तर नहीं देते हैं, तो मीट्रिक <math>\inf_{A\,\textrm{honest}} \liminf_{n\to\infty} \epsilon_n(A)</math> के आधार पर 0 हो सकता है या नहीं भी हो सकता है। विशेष रूप से यह कुल यूनिवर्सल मशीनों के लिए 0 है, किंतु प्रभावी रूप से इष्टतम मशीनों के लिए यह 0 से अधिक है।<ref name="OptimalMachines" />
 
इन सीमाओं की जटिल प्रकृति <math>\epsilon_n(A)</math> के दोलनशील व्यवहार के कारण है। आर्बिट्ररी रूप से बड़े ब्लॉकों में आने वाले प्रोग्रामों की नई किस्में और दोहराव का लगातार बढ़ता अंश प्रायः होता है। यदि नई किस्मों के ब्लॉक पूर्ण रूप से सम्मिलित हैं, तो त्रुटि दर कम से कम <math>\epsilon</math> है, किंतु ब्लॉक के मध्य उचित रूप से वर्गीकृत दोहराव का अंश आर्बिट्ररी रूप से अधिक हो सकता है। विशेष रूप से टैली ह्यूरिस्टिक जो केवल प्रथम N इनपुट को याद करता है और उनके समकक्षों को पहचानता है, आर्बिट्ररी रूप से कम त्रुटि दर तक पहुंचने की अनुमति देता है।<ref name="RealWorldApprox" />


* प्रत्येक एल्गोरिदम के लिए <math>A</math>, <math>\liminf_{n\to\infty} \epsilon_n(A) > 0</math>
* वहां मौजूद <math>\epsilon > 0</math> ऐसा है कि हर एल्गोरिदम के लिए <math>A</math>, <math>\limsup_{n\to\infty} \epsilon_n(A) \geq \epsilon</math>
* <math>\inf_{A} \liminf_{n\to\infty} \epsilon_n(A) = 0</math>. हालाँकि, इसमें एल्गोरिदम शामिल हैं जो गलत उत्तर उत्पन्न करते हैं।
* यदि हम केवल ईमानदार एल्गोरिदम पर विचार करते हैं जो अपरिभाषित हो सकते हैं लेकिन कभी भी गलत उत्तर नहीं देते हैं, तो यह मीट्रिक पर निर्भर करता है <math>\inf_{A\,\textrm{honest}} \liminf_{n\to\infty} \epsilon_n(A)</math> 0 हो सकता है या नहीं भी हो सकता है। विशेष रूप से यह बाएं-कुल सार्वभौमिक मशीनों के लिए 0 है, लेकिन प्रभावी रूप से इष्टतम मशीनों के लिए यह 0 से अधिक है।<ref name=OptimalMachines/>


इन सीमाओं की जटिल प्रकृति के दोलनशील व्यवहार के कारण है <math>\epsilon_n(A)</math>. मनमाने ढंग से बड़े ब्लॉकों में आने वाले कार्यक्रमों की नई किस्में और दोहराव का लगातार बढ़ता अंश अक्सर होता है। यदि नई किस्मों के ब्लॉक पूरी तरह से शामिल हैं, तो त्रुटि दर कम से कम है <math>\epsilon</math>, लेकिन ब्लॉक के बीच सही ढंग से वर्गीकृत दोहराव का अंश मनमाने ढंग से अधिक हो सकता है। विशेष रूप से एक टैली ह्यूरिस्टिक जो केवल पहले एन इनपुट को याद करता है और उनके समकक्षों को पहचानता है, मनमाने ढंग से कम त्रुटि दर तक पहुंचने की अनुमति देता है।<ref name=RealWorldApprox/>




Line 284: Line 296:
== सामान्यीकरण ==
== सामान्यीकरण ==


कम्प्यूटेबिलिटी पाठ्यपुस्तकों में हॉल्टिंग समस्या के कई प्रकार पाए जा सकते हैं।<ref>for example, {{harvnb|Sipser|2006}}, {{harvnb|Davis|1958}}, {{harvnb|Minsky|1967}}, {{harvnb|Hopcroft|Ullman|1979}}, {{harvnb|Börger|1989}}</ref> आमतौर पर, ये समस्याएँ RE-पूर्ण होती हैं और जटिलता के सेट का वर्णन करती हैं <math>\Sigma^0_1</math> [[अंकगणितीय पदानुक्रम]] में, मानक हॉल्टिंग समस्या के समान। वेरिएंट इस प्रकार अनिर्णीत हैं, और मानक हॉल्टिंग प्रॉब्लम [[ कमी (पुनरावृत्ति सिद्धांत) ]] प्रत्येक वेरिएंट के लिए और इसके विपरीत। हालाँकि, कुछ प्रकारों में उच्च स्तर की अघुलनशीलता होती है और इसे मानक हॉल्टिंग समस्या में कम नहीं किया जा सकता है। अगले दो उदाहरण आम हैं।
कम्प्यूटेबिलिटी पाठ्यपुस्तकों में हॉल्टिंग समस्या के कई प्रकार प्राप्त हो सकते हैं।<ref>for example, {{harvnb|Sipser|2006}}, {{harvnb|Davis|1958}}, {{harvnb|Minsky|1967}}, {{harvnb|Hopcroft|Ullman|1979}}, {{harvnb|Börger|1989}}</ref> सामान्यतः, ये समस्याएँ RE-पूर्ण होती हैं और [[अंकगणितीय पदानुक्रम]] में <math>\Sigma^0_1</math> जटिलता के सेट का वर्णन करती हैं, जो मानक हॉल्टिंग समस्या के समान है। वेरिएंट इस प्रकार अनिर्णीत हैं, और मानक हॉल्टिंग समस्या प्रत्येक वेरिएंट और इसके विपरीत [[ कमी (पुनरावृत्ति सिद्धांत) |कम (पुनरावृत्ति सिद्धांत)]] हो जाती है। चूँकि, कुछ प्रकारों में उच्च स्तर की अघुलनशीलता होती है और इसे मानक हॉल्टिंग समस्या से कम नहीं किया जा सकता है। इसके उदाहरण साधारण हैं।


=== सभी इनपुट्स पर रोक ===
=== सभी इनपुट्स पर हॉल्टिंग ===


सार्वभौमिक हॉल्टिंग समस्या, जिसे समग्रता के रूप में भी जाना जाता है (पुनरावृत्ति सिद्धांत में), यह निर्धारित करने की समस्या है कि क्या एक दिया गया कंप्यूटर प्रोग्राम हमेशा रुकने वाली मशीन करेगा (संपूर्णता का नाम समतुल्य प्रश्न से आता है कि क्या परिकलित फ़ंक्शन कुल फ़ंक्शन है)।
यूनिवर्सल हॉल्टिंग समस्या, जिसे संपूर्णता के रूप में भी जाना जाता है (पुनरावृत्ति सिद्धांत में), यह निर्धारित करती है कि क्या दिया गया कंप्यूटर प्रोग्राम प्रत्येक इनपुट के लिए हॉल्ट है (संपूर्णता नाम समतुल्य प्रश्न से प्राप्त होता है कि क्या परिकलित फलन कुल फलन है)।
यह समस्या न केवल अनिर्णीत है, जैसा कि हॉल्टिंग समस्या है, बल्कि अत्यधिक अनिर्णनीय है। अंकगणितीय पदानुक्रम के संदर्भ में, यह है <math>\Pi^0_2</math>-पूरा।{{sfn|Börger|1989|p=121}}


इसका मतलब है, विशेष रूप से, यह हल करने की समस्या के लिए ऑरेकल मशीन के साथ भी तय नहीं किया जा सकता है।
यह समस्या न केवल अनिर्णीत है, जिस प्रकार हॉल्टिंग समस्या होती है, अन्यथा अत्यधिक अनिर्णनीय भी है। अंकगणितीय पदानुक्रम के संदर्भ में यह <math>\Pi^0_2</math>-पूर्ण है।{{sfn|Börger|1989|p=121}}


=== आंशिक समाधान को पहचानना ===
इसका विशेष रूप से अर्थ यह है कि इसे हॉल्टिंग समस्या के लिए ऑरेकल मशीन के साथ भी निश्चित नहीं किया जा सकता है।


ऐसे कई प्रोग्राम हैं, जो कुछ इनपुट के लिए हॉल्टिंग समस्या का सही उत्तर देते हैं, जबकि अन्य इनपुट के लिए वे बिल्कुल भी उत्तर नहीं देते हैं।
=== आंशिक समाधानों को पहचानना ===
हालाँकि दी गई समस्या p, क्या यह एक आंशिक हॉल्टिंग सॉल्वर है (वर्णित अर्थ में) कम से कम हॉल्टिंग समस्या जितनी कठिन है।
इसे देखने के लिए, मान लें कि ऐसा करने के लिए एक एल्गोरिथ्म PHSR (आंशिक हॉल्टिंग सॉल्वर पहचानकर्ता) है। तब इसका उपयोग रुकने की समस्या को हल करने के लिए किया जा सकता है,
निम्नलिखित नुसार:
यह जांचने के लिए कि क्या इनपुट प्रोग्राम x y पर रुकता है, एक प्रोग्राम p का निर्माण करें जो इनपुट (x, y) पर सही रिपोर्ट करता है और अन्य सभी इनपुटों पर विचलन करता है।
फिर PHSR के साथ p का परीक्षण करें।


उपरोक्त तर्क PHS मान्यता के लिए हॉल्टिंग समस्या का एक न्यूनीकरण (पुनरावृत्ति सिद्धांत) है, और उसी तरह,
ऐसे कई प्रोग्राम हैं, जो कुछ इनपुट के लिए हॉल्टिंग समस्या का उचित उत्तर देते हैं, जबकि अन्य इनपुट के लिए वे उत्तर नहीं देते हैं।
कठिन समस्याओं जैसे कि सभी इनपुटों पर रोक को भी कम किया जा सकता है, जिसका अर्थ है कि PHS मान्यता न केवल अनिर्णीत है, बल्कि अंकगणितीय पदानुक्रम में उच्चतर है, विशेष रूप से <math>\Pi^0_2</math>-पूरा।


=== हानिपूर्ण संगणना ===
चूँकि दी गई समस्या p, आंशिक हॉल्टिंग सॉल्वर है, (वर्णित अर्थ में) जो कम से कम हॉल्टिंग समस्या जितनी कठिन है।
एक हानिकारक ट्यूरिंग मशीन एक ट्यूरिंग मशीन है जिसमें टेप का हिस्सा गैर-नियतात्मक रूप से गायब हो सकता है। हानिपूर्ण ट्यूरिंग मशीन के लिए रुकने की समस्या निर्णायक है लेकिन गैर-[[आदिम पुनरावर्ती]] है।{{sfn|Abdulla|Jonsson|1996|p=92}}
 
इसे देखने के लिए, मान लें एल्गोरिथ्म PHSR (आंशिक हॉल्टिंग सॉल्वर पहचानकर्ता) है। तब इसका उपयोग हॉल्टिंग की समस्या के समाधान के लिए किया जा सकता है, जो इस प्रकार है-
 
यह अन्वेषण करने के लिए कि क्या इनपुट प्रोग्राम x, y पर रुकता है, प्रोग्राम p का निर्माण करें जो इनपुट (x, y) पर उचित रिपोर्ट करता है और अन्य सभी इनपुटों पर विचलन करता है। तब PHSR के साथ p का परीक्षण करें।
 
उपरोक्त तर्क PHS मान्यता के लिए हॉल्टिंग समस्या का न्यूनीकरण (पुनरावृत्ति सिद्धांत) है, और उसी प्रकार जटिल समस्या जैसे कि सभी इनपुटों पर हॉल्ट को भी कम किया जा सकता है, जिसका अर्थ है कि PHS मान्यता न केवल अनिर्णीत है, अन्यथा अंकगणितीय पदानुक्रम में उच्चतर है, विशेष रूप से <math>\Pi^0_2</math>-पूर्ण है।
 
=== लॉसी संगणना ===
लॉसी ट्यूरिंग मशीन, जिसमें टेप का भाग गैर-नियतात्मक रूप से लुप्त हो सकता है। लॉसी ट्यूरिंग मशीन के लिए हॉल्टिंग की समस्या निर्णायक है किंतु [[आदिम पुनरावर्ती|नॉन-प्रिमिटिव पुनरावर्ती]] है।{{sfn|Abdulla|Jonsson|1996|p=92}}


=== ओरेकल मशीनें ===
=== ओरेकल मशीनें ===
{{See also|Turing jump}}
{{See also|ट्यूरिंग जम्प }}
हॉल्टिंग समस्या के लिए एक ऑरेकल मशीन वाली मशीन यह निर्धारित कर सकती है कि क्या विशेष ट्यूरिंग मशीनें विशेष इनपुट पर रुकेंगी, लेकिन वे सामान्य रूप से यह निर्धारित नहीं कर सकतीं कि क्या उनके समकक्ष मशीनें रुकेंगी।
हॉल्टिंग समस्या के लिए ऑरेकल मशीन यह निर्धारित कर सकती है कि क्या विशेष ट्यूरिंग मशीनें विशेष इनपुट पर रुकेंगी, किंतु वे सामान्य रूप से यह निर्धारित नहीं कर सकतीं कि क्या उनके समकक्ष मशीनें रुकेंगी।


== यह भी देखें ==
== यह भी देखें ==
* [[व्यस्त ऊदबिलाव]]
* [[व्यस्त ऊदबिलाव|बिजी बीवर]]
* गोडेल की अपूर्णता प्रमेय
* गोडेल की अपूर्णता प्रमेय
* ब्रौवर-हिल्बर्ट विवाद
* ब्रौवर-हिल्बर्ट विवाद
* [[कोलमोगोरोव जटिलता]]
* [[कोलमोगोरोव जटिलता]]
* [[पी बनाम एनपी समस्या]]
* [[पी बनाम एनपी समस्या|पी के प्रति एनपी समस्या]]
* समाप्ति विश्लेषण
* समाप्ति विश्लेषण
* [[सबसे खराब स्थिति निष्पादन समय]]
* [[सबसे खराब स्थिति निष्पादन समय|वर्स्ट-केस एक्सेक्यूटिव टाइम]]


== टिप्पणियाँ ==
== टिप्पणियाँ ==
Line 371: Line 384:
{{Mathematical logic}}
{{Mathematical logic}}
{{Authority control}}
{{Authority control}}
[[Category: संगणना का सिद्धांत]] [[Category: संगणनीयता सिद्धांत]] [[Category: गणितीय समस्याएं]] [[Category: अनिर्णीत समस्याएं]] [[Category: 1936 परिचय]]


[[Category: Machine Translated Page]]
[[Category:1936 परिचय]]
[[Category:All articles with unsourced statements]]
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category:Articles with unsourced statements from May 2017]]
[[Category:CS1]]
[[Category:CS1 English-language sources (en)]]
[[Category:Collapse templates]]
[[Category:Created On 15/05/2023]]
[[Category:Created On 15/05/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Mathematics navigational boxes]]
[[Category:Navbox orphans]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages with empty portal template]]
[[Category:Pages with script errors]]
[[Category:Pages with timeline metadata]]
[[Category:Philosophy and thinking navigational boxes]]
[[Category:Portal-inline template with redlinked portals]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Translated in Hindi]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates generating microformats]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Wikipedia articles needing page number citations from March 2022]]
[[Category:Wikipedia metatemplates]]
[[Category:अनिर्णीत समस्याएं]]
[[Category:गणितीय समस्याएं]]
[[Category:संगणना का सिद्धांत]]
[[Category:संगणनीयता सिद्धांत]]

Latest revision as of 19:03, 15 June 2023


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

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

बैकग्राउंड

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

उदाहरण के लिए, स्यूडोकोड में, प्रोग्राम

while (true) continue

रुकता नहीं है; अन्यथा, यह अनंत लूप में सदैव के लिए चला जाता है। दूसरी ओर, प्रोग्राम

print "Hello, world!"

रुकता है।

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

प्रोग्रामिंग परिणाम

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

कभी-कभी ये प्रोग्रामर कुछ सामान्य-उद्देश्य (ट्यूरिंग-पूर्ण स्पार्क (प्रोग्रामिंग भाषा) का उपयोग करते हैं, किंतु प्रतिबंधित शैली में लिखने का प्रयास करते हैं- जैसे कि मिश्रा सी या स्पार्क (प्रोग्रामिंग भाषा) जिससे यह सिद्ध करना सरल हो जाता है कि परिणामी सबरूटीन्स दी गई समय सीमा से पूर्व समाप्त हो जाती हैं।[citation needed]

दूसरी बार ये प्रोग्रामर कम से कम शक्ति के नियम को प्रारम्भ करते हैं- वे निश्चयपूर्वक कंप्यूटर भाषा का उपयोग करते हैं जो पूर्ण रूप से ट्यूरिंग-पूर्ण नहीं है। प्रायः, ये ऐसी भाषाएँ होती हैं जो सभी सबरूटीन्स के समाप्त होने का आश्वासन देती हैं, जैसे कोक इत्यादि।[citation needed]

सामान्य हानि

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

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

हॉल्टिंग समस्या सैद्धांतिक रूप से रैखिक परिबद्ध ऑटोमेटा (LBAs) या परिमित मेमोरी वाली नियतात्मक मशीनों के लिए निर्णायक है। परिमित मेमोरी वाली मशीन में विन्यास की सीमित संख्या होती है, और इस प्रकार उस पर किसी भी नियतात्मक प्रोग्राम को अंततः पूर्व कॉन्फ़िगरेशन को रोकना या दोहराना चाहिए:[4]

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

चूँकि, दस लाख छोटे भागों वाले कंप्यूटर, प्रत्येक में दो अवस्थाएं, कम से कम 21,000,000 संभावित अवस्थाएं होंगी:[5]

यह 1 है जिसके पश्चात लगभग तीन लाख शून्य हैं भले ही ऐसी मशीन ब्रह्मांडीय किरणों की आवृत्तियों पर कार्य करती हो, गांगेय विकास के कल्प इस प्रकार के चक्र के माध्यम से यात्रा के समय की तुलना में कुछ भी नहीं होंगे:

चूँकि मशीन परिमित हो सकती है, और परिमित ऑटोमेटा की कई सैद्धांतिक सीमाएँ हैं:[5]

इसमें सम्मिलित परिमाणों से किसी को यह संदेह होना चाहिए कि मुख्य रूप से केवल परिमितता [के] स्थिति आरेख पर आधारित प्रमेय और तर्क अधिक महत्व नहीं रख सकते हैं।

यह स्वचालित रूप से तय किया जा सकता है कि प्रत्येक संभावित निर्णय के पश्चात स्थिति की गणना करके, परिमित मेमोरी वाली गैर-नियतात्मक मशीन किसी भी या गैर-नियतात्मक निर्णयों के सभी संभावित अनुक्रमों पर रुकती है या नहीं।

इतिहास

अप्रैल 1936 में, अलोंजो चर्च ने लैम्ब्डा कैलकुलस में समस्या की अनिर्णयता का अपना प्रमाण प्रकाशित किया। ट्यूरिंग का प्रमाण पश्चात में जनवरी 1937 में प्रकाशित किया गया था। तब से, कई अन्य अनिर्णीत समस्याओं का वर्णन किया गया है, जिसमें हॉल्टिंग समस्या भी सम्मिलित है, जो 1950 के दशक में सामने आई थी।

समयरेखा

]].[8]

[12]"सबसे पहले वह [हिल्बर्ट] केवल क्रोधित और निराश था, किन्तु फिर उसने समस्या से रचनात्मक रूप से निवारण का प्रयत्न प्रारंभ कर दिया, गोडेल ने स्वयं अनुभूत किया- और अपने पेपर में विचार व्यक्त किया- कि उनका कार्य हिल्बर्ट के औपचारिक बिंदु के विपरीत नहीं देखना था"[13]

  • Template:आरंभ करने की तिथि: गोडेल ने "प्रिंसिपिया मैथेमेटिका और संबंधित प्रणाली के औपचारिक रूप से अनिर्णायक प्रस्तावों पर" प्रकाशित किया[14]
  • 19 April 1935 (1935-04-19): अलोंजो चर्च "प्राथमिक संख्या सिद्धांत की अघुलनशील समस्या" प्रकाशित करता है, जो प्रस्तावित करता है कि प्रभावी रूप से गणना योग्य फ़ंक्शन की सहज धारणा को सामान्य पुनरावर्ती कार्यों या समकक्ष रूप से औपचारिक रूप दिया जा सकता है। लैम्ब्डा-निश्चित कार्यों द्वारा वह सिद्ध करता है कि लैम्ब्डा कैलकुलस के लिए हॉल्टिंग समस्या (अर्थात, क्या किसी दिए गए लैम्ब्डा-एक्सप्रेशन का बीटा सामान्य रूप है) प्रभावी रूप से गणना योग्य नहीं है।[15]
  • 1936 (1936): कम्प्यूटेबल फंक्शन द्वारा गणना की धारणा का उपयोग करते हुए, चर्च प्रथम प्रमाण प्रकाशित करता है कि एन्त्शेइडुंग्स समस्या अघुलनशील है।[16]
  • 7 October 1936 (1936-10-07): एमिल पोस्ट का पेपर "फिनिट कॉम्बिनेटरी प्रोसेसेस फॉर्म्युलेशन I" प्राप्त हुआ है। पोस्ट उनकी "प्रक्रिया" में निर्देश "(सी) स्टॉप" जोड़ता है। उन्होंने इस प्रकार की प्रक्रिया को "टाइप 1 यदि यह प्रक्रिया निर्धारित करती है तो प्रत्येक विशिष्ट समस्या के लिए समाप्त हो जाती है।"[17]
  • May 1936 (1936-05) – January 1937 (1937-01): एलन ट्यूरिंग का पेपर ऑन कम्प्यूटेबल नंबर्स विथ ए एप्लीकेशन टू द एंट्सचेइडुंग्सप्रोब्लेम मई 1936 में प्रेस में गया और जनवरी 1937 में प्रिंट तक पहुंचा।[18] ट्यूरिंग तीन समस्याओं को अनिर्णीत सिद्ध करता है: "संतुष्टि" समस्या, "प्रिंटिंग" समस्या, और 'एंट्सचिडंग स्प्रोब्लेम'

.[19] ट्यूरिंग का प्रमाण मशीन द्वारा संगणना की धारणा को प्रस्तुत करके चर्च के प्रमाण से भिन्न है। यह "निर्णय समस्याओं के पहले उदाहरणों में से सिद्ध नहीं हुआ"। [20][page needed]

  • 1939 (1939): जे। बार्कले रोसेर गोडेल, चर्च और ट्यूरिंग द्वारा परिभाषित "प्रभावी विधि" की आवश्यक समानता को देखता है[21]
  • 1943 (1943): एक पेपर में, स्टीफन क्लेन ने कहा है कि "पूर्ण एल्गोरिथम सिद्धांत की स्थापना में, प्रक्रिया का वर्णन करते हैं जो प्रक्रिया आवश्यक रूप से समाप्त हो जाती है और इस प्रकार से कि परिणाम से हम निश्चित उत्तर पढ़ सकते हैं, प्रश्न के लिए 'हाँ' या 'नहीं', 'क्या विधेय मान सत्य है?'
  • 1952 (1952): क्लेन में ट्यूरिंग मशीनों के लिए हॉल्टिंग समस्या की असम्भाव्यता की चर्चा सम्मिलित है और मशीनों के संदर्भ में इसे फिर से तैयार करता है जो "अंततः रुक जाती है" यह तय करने के लिए कोई एल्गोरिदम नहीं है कि क्या किसी दिए गए मशीन से प्रारंभ किया गया है या नहीं स्थिति, अंततः रुक जाती है."[22]
  • 1952 (1952): मार्टिन डेविस ने 1952 में इलिनोइस विश्वविद्यालय में नियंत्रण प्रणाली प्रयोगशाला में व्याख्यान की श्रृंखला में 'हॉल्टिंग प्रॉब्लम' शब्द का प्रयोग किया। यह संभावना है कि इस शब्द का यह प्रथम प्रयोग है।[23]


हॉल्टिंग की समस्या की उत्पत्ति

कई प्रलेख और पाठ्यपुस्तकों ने ट्यूरिंग के 1936 के पेपर में हॉल्टिंग समस्या की अनिर्णयता की परिभाषा और प्रमाण का उल्लेख किया है। चूँकि, यह सही नहीं है।[19][24] ट्यूरिंग ने अपने 1936 के पेपर सहित अपनी किसी भी प्रकाशित रचना में हॉल्ट या हॉल्टिंग शब्दों का प्रयोग नहीं किया।[25] 1936 से 1958 तक अकादमिक साहित्य की के आविष्कार से ज्ञात से हुआ कि "हॉल्टिंग प्रॉब्लम" शब्द का उपयोग करने वाली प्रथम प्रकाशित सामग्री थी रोजर्स (1957) थी। चूँकि, रोजर्स का कहना है कि उनके पास डेविस (1958) उसके पास उपलब्ध है,[19] और मार्टिन डेविस प्रस्तावना में कहते हैं कि विशेषज्ञ संभवतः विषयों की व्यवस्था और प्रणाली में कुछ नवीनता पाएंगे,[26] इसलिए शब्दावली का श्रेय डेविस को दिया जाना चाहिए।[19][24] डेविस ने पत्र में कहा कि वह 1952 से हॉल्टिंग समस्या की बात कर रहे थे।[23]डेविस की किताब में उपयोग इस प्रकार है:[27]

"[...] हम यह निर्धारित करना चाहते हैं कि [ट्यूरिंग मशीन] Z, यदि किसी प्रारंभिक अवस्था में रखा गया है, तो अंततः रुक जाएगा। हम इस समस्या को Z के लिए रुकने की समस्या कहते हैं। [...]


प्रमेय 2.2 एक ट्यूरिंग मशीन उपस्तिथ है जिसकी हॉल्टिंग समस्या पुनरावर्ती रूप से अघुलनशील है
प्रतीक के संबंध में एक साधारण ट्यूरिंग मशीन Z के लिए एक संबंधित समस्या 'प्रिंटिंग समस्या' है

Si".

डेविस के सूत्रीकरण का संभावित अग्रदूत क्लेन का 1952 का व्याख्यान है, जो केवल शब्दों में भिन्न है:[19] [22]

यह तय करने के लिए कोई एल्गोरिद्म नहीं है कि क्या कोई दी गई मशीन, जब किसी दी गई स्थिति से प्रारंभ की जाती है, अंततः बंद हो जाती है।

हॉल्टिंग की समस्या दोनों डेविस की प्रिंटिंग समस्या समान है (क्या किसी दिए गए स्थिति से प्रारंभ होने वाली ट्यूरिंग मशीन कभी किसी दिए गए प्रतीक को प्रिंट करती है?) और ट्यूरिंग के 1936 के पेपर में विचार की गई प्रिंटिंग समस्या ("क्या ट्यूरिंग मशीन एक रिक्त से प्रारंभ होती है?" टेप कभी दिए गए प्रतीक को प्रिंट करता है?")। चूँकि, ट्यूरिंग तुल्यता अन्यथा ढीली है और इसका अर्थ यह नहीं है कि दो समस्याएं समान हैं। ऐसी मशीनें हैं जो प्रिंट करती हैं किंतु रुकती नहीं हैं और रुकती हैं किंतु प्रिंट नहीं करती हैं। छपाई और हॉल्टिंग की समस्याएँ विभिन्न उद्देश्य को संबोधित करती हैं और महत्वपूर्ण वैचारिक और तकनीकी अंतर प्रदर्शित करती हैं। इस प्रकार, डेविस केवल विनम्र थे जब उन्होंने कहा:[19]

यह भी उल्लेख किया जा सकता है कि अनिवार्य रूप से इन समस्याओं की अघुलनशीलता को सबसे पहले ट्यूरिंग द्वारा प्राप्त किया गया था।

औपचारिकता

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

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

सेट के रूप में प्रतिनिधित्व

निर्णय समस्याओं का पारंपरिक प्रतिनिधित्व उन वस्तुओं का समूह है जिनके पास संपत्ति है। हॉल्टिंग सेट

K = {(i, x) इनपुट x पर चलाए जाने पर प्रोग्राम i हाल्ट हो जाता है}

हॉल्टिंग की समस्या का प्रतिनिधित्व करता है।

यह सेट पुनरावर्ती रूप से गणना योग्य है, जिसका अर्थ है कि संगणनीय कार्य है जो इसमें सम्मिलित सभी जोड़े (i, x) को सूचीबद्ध करता है। चूँकि, इस सेट का पूरक पुनरावर्ती गणना योग्य नहीं है।[28]

हॉल्टिंग समस्या के कई समतुल्य सूत्रीकरण हैं; कोई भी सेट जिसकी ट्यूरिंग डिग्री हॉल्टिंग की समस्या के समान होती है, ऐसा सूत्रीकरण है। ऐसे सेट के उदाहरणों में सम्मिलित हैं:

  • {i| प्रोग्राम I अंतत: तक रुक जाता है जब इनपुट 0 के साथ चलाया जाता है}
  • {i| इनपुट x है जैसे कि इनपुट x के साथ चलने पर प्रोग्राम i अंततः रुक जाता है}।

प्रमाण अवधारणा

क्रिस्टोफर स्ट्रेची ने विरोधाभास द्वारा प्रमाण को रेखांकित किया कि हॉल्टिंग समस्या समाधान करने योग्य नहीं है।[29][30] प्रमाण निम्नानुसार अग्रसर होता है: मान लीजिए कि कुल संगणनीय फ़ंक्शन हाल्ट (f) उपस्तिथ है, जो सबरूटीन f हाल्ट पर उचित रिटर्न देता है (जब बिना इनपुट के रन करवाया जाता है) और अन्यथा त्रुटिपूर्ण रिटर्न देता है। अब निम्नलिखित सबरूटीन पर विचार करें:

def g():
    if halts(g):
        loop_forever()

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

कठोर प्रमाण का रेखाचित्र

उपरोक्त अवधारणा प्रमाण की सामान्य विधि को दर्शाती है, किंतु संगणनीय फंक्शन हाल्ट आर्गुमेंट के रूप में सबरूटीन नहीं लेता है; इसके अतिरिक्त यह प्रोग्राम का सोर्स कोड लेता है। इसके अतिरिक्त, g की परिभाषा स्व-संदर्भित है। कठोर प्रमाण इन उद्देश्यों को संबोधित करता है। समग्र लक्ष्य यह दर्शाना है कि कोई कुल संगणनीय फंक्शन नहीं है जो यह निश्चित करता है कि क्या आर्बिट्ररी प्रोग्राम i आर्बिट्ररी इनपुट x पर रुकता है; अर्थात्, निम्न फंक्शन h (हॉल्ट्स के लिए) संगणनीय नहीं है:[31]

यहाँ प्रोग्राम i का तात्पर्य गणना के निश्चित ट्यूरिंग-पूर्ण मॉडल के सभी प्रोग्रामों की गणना में i वें प्रोग्राम से है।

f(i,j) i
1 2 3 4 5 6
j 1 1 0 0 1 0 1
2 0 0 0 1 0 0
3 0 1 0 1 0 1
4 1 0 0 1 0 0
5 0 0 0 1 1 1
6 1 1 0 0 1 0
f(i,i) 1 0 0 1 1 0
g(i) U 0 0 U U 0

2डी ऐरे में व्यवस्थित कुल संगणनीय फ़ंक्शन f के लिए संभावित मान हैं। नारंगी सेल विकर्ण हैं। f(i,i) और g(i) के मान नीचे दर्शाये गए हैं; U दर्शाता है कि फ़ंक्शन g किसी विशेष इनपुट मान के लिए अपरिभाषित है।

प्रमाण यह स्थापित करके अग्रसर होता है कि दो तर्कों के साथ कुल संगणनीय फ़ंक्शन आवश्यक फ़ंक्शन h नहीं हो सकता है। जैसा कि अवधारणा के रेखाचित्र में है कि कुल संगणनीय बाइनरी फ़ंक्शन f दिया गया है, निम्न आंशिक फ़ंक्शन g भी कुछ प्रोग्राम e द्वारा संगणनीय है:

g संगणनीय है, यह सत्यापन निम्नलिखित निर्माणों (या उनके समतुल्य) पर निर्भर करता है:

  • कंप्यूटेबल सबप्रोग्राम (वह प्रोग्राम जो f की गणना करता है, प्रोग्राम e में सबप्रोग्राम है),
  • मानों का दोहराव (प्रोग्राम e, g के लिए इनपुट i से f के लिए इनपुट i की गणना करता है),
  • कंडीशनल ब्रांचिंग (प्रोग्राम e दो परिणामों के मध्य चयन करता है जो कि f(i,i) के लिए गणना किए गए मान के आधार पर होता है),
  • परिभाषित परिणाम नहीं देता है (उदाहरण के लिए, फॉरएवर लूपिंग),
  • 0 रिटर्न करता है।

e के लिए निम्नलिखित स्यूडोकोड g की गणना करने की सरल विधि दर्शाता है:

procedure e(i):
    if f(i, i) == 0 then
        return 0
    else
        loop forever

चूँकि g आंशिक संगणनीय है इसलिए प्रोग्राम e होना चाहिए जो g की गणना इस धारणा से करता है कि संगणना का मॉडल ट्यूरिंग-पूर्ण है। यह प्रोग्राम उन सभी प्रोग्रामों में से है जिन पर हॉल्टिंग फंक्शन h परिभाषित किया गया है। प्रमाण का अग्र चरण दर्शाता है कि h(e,e) का मान f(e,e) के समान नहीं होगा।

यह g की परिभाषा से अनुसरण करता है कि वास्तव में निम्नलिखित दो स्तिथियों में से एक होनी चाहिए:

  • f(e,e) = 0 और so g(e) = 0 है। इस स्तिथि में e, इनपुट e पर रुकता है, इसलिए h(e,e) = 0 है।
  • f(e,e) ≠ 0 और इसलिए g(e) अपरिभाषित है। इस स्तिथि में प्रोग्राम e, इनपुट e पर नहीं रुकता है, इसलिए h(e,e) = 0 है।

किसी भी स्थिति में, f, h के समान फंक्शन नहीं हो सकता है। क्योंकि f दो तर्कों के साथ आर्बिट्ररी कुल संगणनीय फंक्शन था, ऐसे सभी फंक्शन्स को h से भिन्न होना चाहिए।

यह प्रमाण कैंटर के विकर्ण तर्क के अनुरूप है। जिस प्रकार उपरोक्त तालिका में दर्शाया गया है, प्रत्येक प्राकृतिक संख्या के लिए स्तंभ और पंक्ति के साथ द्वि-आयामी ऐरे की कल्पना की जा सकती है। f(i,j) का मान स्तंभ i, पंक्ति j पर रखा गया है। क्योंकि f को कुल संगणनीय फंक्शन माना जाता है, ऐरे के किसी भी तत्व की गणना f का उपयोग करके की जा सकती है। इस ऐरे के मुख्य विकर्ण का उपयोग करके फंक्शन g के निर्माण की कल्पना की जा सकती है। यदि ऐरे की स्थिति (i,i) पर 0 है, तो g(i), 0 है। अन्यथा, g(i) अपरिभाषित है। विरोधाभास इस तथ्य से प्राप्त होता है कि g के अनुरूप ऐरे के कुछ स्तंभ e है। अब मान लें कि f हॉल्टिंग फंक्शन h था, यदि g(e) परिभाषित है (इस स्तिथि में g(e) = 0), g(e) हाल्ट है तब f(e,e) = 1 होगा। किंतु g(e) = 0 है, जब f(e,e) = 0, f(e,e) = 1 का विरोध करता है। इसी प्रकार, यदि g(e) परिभाषित नहीं है, तो हॉल्टिंग फंक्शन f(e,e) = 0, जो g की रचना के अंतर्गत g(e) = 0 की ओर ले जाता है। यह g(e) परिभाषित नहीं होने की धारणा के विपरीत है। दोनों ही स्थितियों में विरोधाभास उत्पन्न होता है। इसलिए कोई भी आर्बिट्ररी संगणनीय फंक्शन f हॉल्टिंग फंक्शन h नहीं हो सकता है।

संगणनीयता सिद्धांत

किसी समस्या P को अनिर्णीत सिद्ध करने की विशिष्ट विधि हॉल्टिंग समस्या को P तक कम (जटिलता) करना है।

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

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

ग्रेगरी चैतिन ने प्रतीक Ω द्वारा दर्शाई गई हॉल्टिंग की संभावना को परिभाषित किया है, वास्तविक संख्या के प्रकार को अनौपचारिक रूप से संभावना का प्रतिनिधित्व करने के लिए कहा जाता है कि निरुद्देश्यता से उत्पादित प्रोग्राम हॉल्ट है। इन संख्याओं में हॉल्टिंग समस्या के समान ट्यूरिंग डिग्री होती है। यह सामान्य संख्या और प्रागनुभविक संख्या है जो निश्चित संख्या हो सकती है किंतु पूर्ण रूप से गणना योग्य संख्या नहीं हो सकती है। इसका अर्थ यह है कि कोई यह प्रमाणित कर सकता है कि कोई एल्गोरिदम नहीं है जो Ω के अंकों का उत्पादन करता है, चूँकि इससे पूर्व कुछ अंकों की साधारण स्थितियों में गणना की जा सकती है।

चूंकि हॉल्टिंग समस्या के नकारात्मक उत्तर से यह ज्ञात होता है कि ऐसी समस्याएं हैं जिनका समाधान ट्यूरिंग मशीन द्वारा नहीं किया जा सकता है, चर्च-ट्यूरिंग थीसिस किसी भी मशीन द्वारा पूर्ण की जा सकती है जो प्रभावी विधियों को प्रारम्भ करती है। चूँकि, मानव कल्पना के लिए कल्पनीय सभी मशीनें चर्च-ट्यूरिंग थीसिस (जैसे ओरेकल मशीन) के अधीन नहीं हैं। यह विवृत प्रश्न है कि क्या वास्तविक निर्धारक भौतिक प्रक्रियाएं हो सकती हैं, जो लंबे समय में, ट्यूरिंग मशीन द्वारा सिमुलेशन से बच निकलती हैं, और विशेष रूप से क्या ऐसी कोई काल्पनिक प्रक्रिया उपयोगी रूप से गणना मशीन ( हाइपरकंप्यूटर ) के रूप में उपयोग की जा सकती है। जो अन्य वस्तुओं के साथ ट्यूरिंग मशीन के लिए हॉल्टिंग की समस्या को समाधान कर सकता है। यह भी विवृत प्रश्न है कि क्या ऐसी कोई अज्ञात भौतिक प्रक्रियाएँ मानव मस्तिष्क के कार्य में सम्मिलित हैं, और क्या मनुष्य हॉल्टिंग की समस्या का समाधान कर सकते हैं।[32]

सन्निकटन

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

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

इन उद्देश्य से बचने के लिए, प्रोग्राम के आकार की कई प्रतिबंधित धारणाएँ विकसित की गई हैं। सघन गोडेल क्रमांकन प्रोग्रामों को संख्याएँ प्रदान करता है जैसे कि प्रत्येक संगणनीय फलन 1 से n तक के सूचकांकों के प्रत्येक अनुक्रम में धनात्मक अंश होता है, अर्थात सभी के लिए गोडेलाइज़ेशन φ सघन होता है, जहाँ उपस्तिथ है जैसे कि . उदाहरण के लिए, क्रमांकन जो सूचकांक को गैर-तुच्छ प्रोग्रामों और अन्य सभी सूचकांक को त्रुटि स्थिति प्रदान करती है, जो सघन नहीं है, किन्तु सिंटैक्टिकली उचित ब्रेनफक प्रोग्राम की सघन गोडेल संख्या उपस्तिथ है।[34] सघन गोडेल क्रमांकन को इष्टतम कहा जाता है, यदि किसी अन्य गोडेल क्रमांकन के लिए, 1-1 कुल रिकर्सिव फ़ंक्शन और स्थिर है जैसे कि सभी के लिए, और है। यह स्थिति सुनिश्चित करती है कि सभी प्रोग्रामों के सूचकांक किसी भी अन्य गोडेल क्रमांकन में उनके सूचकांकों की तुलना में अधिक बड़े नहीं हैं। यूनिवर्सल ट्यूरिंग मशीन के इनपुट को संख्या देकर इष्टतम गोडेल क्रमांकन का निर्माण किया जाता है।[35] आकार की तृतीय धारणा बाइनरी स्ट्रिंग्स पर संचालित होने वाली यूनिवर्सल मशीनों का उपयोग करती है और इनपुट प्रोग्राम का वर्णन करने के लिए आवश्यक स्ट्रिंग की लंबाई को मापती है। यूनिवर्सल मशीन U ऐसी मशीन है जिसके लिए प्रत्येक दूसरी मशीन V में कुल संगणनीय फ़ंक्शन h उपस्तिथ है जैसे कि , इष्टतम मशीन यूनिवर्सल मशीन है जो कोल्मोगोरोव जटिलता को प्राप्त करती है, अर्थात प्रत्येक मशीन V के लिए c उपस्थित है जैसे कि सभी आउटपुट x के लिए, यदि लंबाई n आउटपुट x का V-प्रोग्राम है, तो अधिकतम लंबाई आउटपुट x का U-प्रोग्राम उपस्थित है।[36]

हम आंशिक संगणनीय फ़ंक्शन (एल्गोरिदम) पर विचार करते हैं। प्रत्येक के लिए हम आकार मीट्रिक के सभी प्रोग्रामों के मध्य त्रुटियों के अंश पर विचार करते हैं, प्रत्येक प्रोग्राम x की गणना करते हुए, जिसके लिए A समाप्त करने में विफल रहता है, जो "पता नहीं" उत्तर देता है, या अनुचित उत्तर उत्पन्न करता है, अर्थात हॉल्ट है और , DOES_NOT_HALT आउटपुट देता है या हॉल्ट नहीं है और , HALTS आउटपुट देता है। सघन गोडेलाइजेशन और इष्टतम मशीनों के लिए व्यवहार को निम्नानुसार वर्णित किया जा सकता है:[34][36]

  • प्रत्येक एल्गोरिदम के लिए,
  • जहाँ उपस्तिथ है जैसे कि प्रत्येक एल्गोरिथम के लिए,
  • , चूँकि, इसमें एल्गोरिदम सम्मिलित हैं जो अनुचित उत्तर उत्पन्न करते हैं।
  • यदि हम केवल ऑनेस्ट एल्गोरिदम पर विचार करते हैं जो अपरिभाषित हो सकते हैं किंतु कभी भी अनुचित उत्तर नहीं देते हैं, तो मीट्रिक के आधार पर 0 हो सकता है या नहीं भी हो सकता है। विशेष रूप से यह कुल यूनिवर्सल मशीनों के लिए 0 है, किंतु प्रभावी रूप से इष्टतम मशीनों के लिए यह 0 से अधिक है।[36]

इन सीमाओं की जटिल प्रकृति के दोलनशील व्यवहार के कारण है। आर्बिट्ररी रूप से बड़े ब्लॉकों में आने वाले प्रोग्रामों की नई किस्में और दोहराव का लगातार बढ़ता अंश प्रायः होता है। यदि नई किस्मों के ब्लॉक पूर्ण रूप से सम्मिलित हैं, तो त्रुटि दर कम से कम है, किंतु ब्लॉक के मध्य उचित रूप से वर्गीकृत दोहराव का अंश आर्बिट्ररी रूप से अधिक हो सकता है। विशेष रूप से टैली ह्यूरिस्टिक जो केवल प्रथम N इनपुट को याद करता है और उनके समकक्षों को पहचानता है, आर्बिट्ररी रूप से कम त्रुटि दर तक पहुंचने की अनुमति देता है।[34]



गोडेल की अपूर्णता प्रमेय

{{#lsth:Undecidable problem|Relationship with Gödel's incompleteness theorem}}

सामान्यीकरण

कम्प्यूटेबिलिटी पाठ्यपुस्तकों में हॉल्टिंग समस्या के कई प्रकार प्राप्त हो सकते हैं।[37] सामान्यतः, ये समस्याएँ RE-पूर्ण होती हैं और अंकगणितीय पदानुक्रम में जटिलता के सेट का वर्णन करती हैं, जो मानक हॉल्टिंग समस्या के समान है। वेरिएंट इस प्रकार अनिर्णीत हैं, और मानक हॉल्टिंग समस्या प्रत्येक वेरिएंट और इसके विपरीत कम (पुनरावृत्ति सिद्धांत) हो जाती है। चूँकि, कुछ प्रकारों में उच्च स्तर की अघुलनशीलता होती है और इसे मानक हॉल्टिंग समस्या से कम नहीं किया जा सकता है। इसके उदाहरण साधारण हैं।

सभी इनपुट्स पर हॉल्टिंग

यूनिवर्सल हॉल्टिंग समस्या, जिसे संपूर्णता के रूप में भी जाना जाता है (पुनरावृत्ति सिद्धांत में), यह निर्धारित करती है कि क्या दिया गया कंप्यूटर प्रोग्राम प्रत्येक इनपुट के लिए हॉल्ट है (संपूर्णता नाम समतुल्य प्रश्न से प्राप्त होता है कि क्या परिकलित फलन कुल फलन है)।

यह समस्या न केवल अनिर्णीत है, जिस प्रकार हॉल्टिंग समस्या होती है, अन्यथा अत्यधिक अनिर्णनीय भी है। अंकगणितीय पदानुक्रम के संदर्भ में यह -पूर्ण है।[38]

इसका विशेष रूप से अर्थ यह है कि इसे हॉल्टिंग समस्या के लिए ऑरेकल मशीन के साथ भी निश्चित नहीं किया जा सकता है।

आंशिक समाधानों को पहचानना

ऐसे कई प्रोग्राम हैं, जो कुछ इनपुट के लिए हॉल्टिंग समस्या का उचित उत्तर देते हैं, जबकि अन्य इनपुट के लिए वे उत्तर नहीं देते हैं।

चूँकि दी गई समस्या p, आंशिक हॉल्टिंग सॉल्वर है, (वर्णित अर्थ में) जो कम से कम हॉल्टिंग समस्या जितनी कठिन है।

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

यह अन्वेषण करने के लिए कि क्या इनपुट प्रोग्राम x, y पर रुकता है, प्रोग्राम p का निर्माण करें जो इनपुट (x, y) पर उचित रिपोर्ट करता है और अन्य सभी इनपुटों पर विचलन करता है। तब PHSR के साथ p का परीक्षण करें।

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

लॉसी संगणना

लॉसी ट्यूरिंग मशीन, जिसमें टेप का भाग गैर-नियतात्मक रूप से लुप्त हो सकता है। लॉसी ट्यूरिंग मशीन के लिए हॉल्टिंग की समस्या निर्णायक है किंतु नॉन-प्रिमिटिव पुनरावर्ती है।[39]

ओरेकल मशीनें

हॉल्टिंग समस्या के लिए ऑरेकल मशीन यह निर्धारित कर सकती है कि क्या विशेष ट्यूरिंग मशीनें विशेष इनपुट पर रुकेंगी, किंतु वे सामान्य रूप से यह निर्धारित नहीं कर सकतीं कि क्या उनके समकक्ष मशीनें रुकेंगी।

यह भी देखें

टिप्पणियाँ

  1. McConnell, Steve (2004). कोड पूर्ण (2nd ed.). Pearson Education. p. 374. ISBN 9780735636972.
  2. Huang, Han-Way (2009). The HCS12 / 9S12: An Introduction to Software and Hardware Interfacing. p. 197. ... यदि प्रोग्राम एक निश्चित पाश में फंस जाता है, ... पता लगाएँ कि क्या गलत है।
  3. Simon, David E. (1999). एक एंबेडेड सॉफ्टवेयर प्राइमर. p. 253. For hard real-time systems, therefore, it is important to write subroutines that always execute in the same amount of time or that have a clearly identifiable worst case.
  4. Minsky 1967, p. 24. italics in original
  5. 5.0 5.1 Minsky 1967, p. 25.
  6. Hodges 1983, p. 83; Davis' commentary in Davis 1965, p. 108
  7. पूरी तरह से न सुलझाई जा सकने वाली समस्याएं और अपेक्षाकृत अनिर्णीत प्रस्ताव - एक प्रत्याशा का लेखा-जोखा, में पुनर्मुद्रित Davis 1965, pp. 340–433
  8. Minsky 1967.
  9. Reid 1996, pp. 188–189.
  10. Hodges 1983, p. 91.
  11. Hodges 1983, p. 91; Penrose 1989, p. 34.
  12. Reid 1996, p. 198.
  13. Reid 1996, p. 199.
  14. reprinted in Davis 1965, p. 5ff
  15. Church 1936.
  16. A Note on the Entscheidungsproblem, reprinted in Davis 1965, p. 110
  17. Davis 1965, p. 289ff.
  18. में पुनर्मुद्रित Davis 1965, p. 115
  19. 19.0 19.1 19.2 19.3 19.4 19.5 Lucas 2021.
  20. Kleene 1952.
  21. Rosser, "Informal Exposition of Proofs of Gödel's Theorem and Church's Theorem", reprinted in Davis 1965, p. 223
  22. 22.0 22.1 Kleene 1952, p. 382.
  23. 23.0 23.1 letter from Davis to Copeland, 12 December 2001, Footnote 61 in Copeland 2004, p. 40
  24. 24.0 24.1 Copeland 2004, p. 40.
  25. Textual search of Turing's collected works: Good (1992), Gandy & Yates (2001), Ince (1992), Saunders (1992). Similarly Hodges (1983) does not have the word "halting" or words "halting problem" in his index.
  26. Davis 1958, pp. vii–viii.
  27. Davis 1958, pp. 70–71.
  28. Moore & Mertens 2011, pp. 236–237.
  29. Strachey, C. (1 January 1965). "एक असंभव कार्यक्रम". The Computer Journal. 7 (4): 313. doi:10.1093/comjnl/7.4.313.
  30. Daylight, Edgar G. (16 April 2021). "The halting problem and security's language-theoretic approach: Praise and criticism from a technical historian" (PDF). Computability. 10 (2): 141–158. doi:10.3233/COM-180217. S2CID 233329507. Retrieved 26 August 2021.
  31. Penrose 1989, pp. 57–63.
  32. Copeland 2004, p. 15.
  33. Hamkins, Joel David; Miasnikov, Alexei (1 October 2006). "हॉल्टिंग प्रॉब्लम एसिम्प्टोटिक प्रोबेबिलिटी वन के सेट पर निर्णायक है" (PDF). Notre Dame Journal of Formal Logic. 47 (4). doi:10.1305/ndjfl/1168352664. S2CID 15005164. Retrieved 5 November 2022.
  34. 34.0 34.1 34.2 Köhler, Sven; Schindelhauer, Christian; Ziegler, Martin (2005). "रियल-वर्ल्ड हॉल्टिंग प्रॉब्लम का अनुमान लगाने पर". Fundamentals of Computation Theory. Lecture Notes in Computer Science. 3623: 454–466. doi:10.1007/11537311_40. ISBN 978-3-540-28193-1.
  35. Lynch, Nancy (October 1974). "रुकने की समस्या के अनुमान" (PDF). Journal of Computer and System Sciences. 9 (2): 143–150. doi:10.1016/S0022-0000(74)80003-6.
  36. 36.0 36.1 36.2 Bienvenu, Laurent; Desfontaines, Damien; Shen, Alexander (5 April 2016). "समस्या को रोकने के लिए सामान्य एल्गोरिदम और इष्टतम मशीनों पर दोबारा गौर किया गया". Logical Methods in Computer Science. 12 (2): 1. arXiv:1505.00731. doi:10.2168/LMCS-12(2:1)2016. S2CID 14763862.
  37. for example, Sipser 2006, Davis 1958, Minsky 1967, Hopcroft & Ullman 1979, Börger 1989
  38. Börger 1989, p. 121.
  39. Abdulla & Jonsson 1996, p. 92.


संदर्भ


अग्रिम पठन

  • c2:HaltingProblem
  • Alfred North Whitehead and Bertrand Russell, Principia Mathematica to *56, Cambridge at the University Press, 1962. Re: the problem of paradoxes, the authors discuss the problem of a set not be an object in any of its "determining functions", in particular "Introduction, Chap. 1 p. 24 "...difficulties which arise in formal logic", and Chap. 2.I. "The Vicious-Circle Principle" p. 37ff, and Chap. 2.VIII. "The Contradictions" p. 60ff.
  • Martin Davis, "What is a computation", in Mathematics Today, Lynn Arthur Steen, Vintage Books (Random House), 1980. A wonderful little paper, perhaps the best ever written about Turing Machines for the non-specialist. Davis reduces the Turing Machine to a far-simpler model based on Post's model of a computation. Discusses Chaitin proof. Includes little biographies of Emil Post, Julia Robinson.
  • Edward Beltrami, What is Random? Chance and order in mathematics and life, Copernicus: Springer-Verlag, New York, 1999. Nice, gentle read for the mathematically inclined non-specialist, puts tougher stuff at the end. Has a Turing-machine model in it. Discusses the Chaitin contributions.
  • Ernest Nagel and James R. Newman, Godel’s Proof, New York University Press, 1958. Wonderful writing about a very difficult subject. For the mathematically inclined non-specialist. Discusses Gentzen's proof on pages 96–97 and footnotes. Appendices discuss the Peano Axioms briefly, gently introduce readers to formal logic.
  • Daras, Nicholas J.; Rassias, Themistocles M. (2018). Modern discrete mathematics and analysis: with applications in cryptography, information systems and modeling. Cham, Switzerland. ISBN 978-3319743240.{{cite book}}: CS1 maint: location missing publisher (link). Chapter 3 Section 1 contains a quality description of the halting problem, a proof by contradiction, and a helpful graphic representation of the Halting Problem.
  • Taylor Booth, Sequential Machines and Automata Theory, Wiley, New York, 1967. Cf. Chapter 9, Turing Machines. Difficult book, meant for electrical engineers and technical specialists. Discusses recursion, partial-recursion with reference to Turing Machines, halting problem. Has a Turing Machine model in it. References at end of Chapter 9 catch most of the older books (i.e. 1952 until 1967 including authors Martin Davis, F. C. Hennie, H. Hermes, S. C. Kleene, M. Minsky, T. Rado) and various technical papers. See note under Busy-Beaver Programs.
  • Busy Beaver Programs are described in Scientific American, August 1984, also March 1985 p. 23. A reference in Booth attributes them to Rado, T.(1962), On non-computable functions, Bell Systems Tech. J. 41. Booth also defines Rado's Busy Beaver Problem in problems 3, 4, 5, 6 of Chapter 9, p. 396.
  • David Bolter, Turing’s Man: Western Culture in the Computer Age, The University of North Carolina Press, Chapel Hill, 1984. For the general reader. May be dated. Has yet another (very simple) Turing Machine model in it.
  • Sven Köhler, Christian Schindelhauer, Martin Ziegler, On approximating real-world halting problems, pp.454-466 (2005) ISBN 3540281932 Springer Lecture Notes in Computer Science volume 3623: Undecidability of the Halting Problem means that not all instances can be answered correctly; but maybe "some", "many" or "most" can? On the one hand the constant answer "yes" will be correct infinitely often, and wrong also infinitely often. To make the question reasonable, consider the density of the instances that can be solved. This turns out to depend significantly on the Programming System under consideration.
  • Logical Limitations to Machine Ethics, with Consequences to Lethal Autonomous Weapons - paper discussed in: Does the Halting Problem Mean No Moral Robots?


बाहरी संबंध