क्या आदर्श कंप्यूटर पर शुद्ध कार्यक्रमों के लिए रुकने की समस्या कम है?


25

यह समझना काफी सरल है कि रुकने की समस्या अशुद्ध कार्यक्रमों (यानी, जिनके पास I / O और / या मशीन-वैश्विक स्थिति पर निर्भर राज्य हैं) के लिए अनुपयुक्त है; लेकिन सहज रूप से, ऐसा लगता है कि एक आदर्श कंप्यूटर पर एक शुद्ध प्रोग्राम का ठहराव उदाहरण के लिए स्थैतिक विश्लेषण के माध्यम से निर्णायक होगा।

क्या वास्तव में ऐसा है? यदि नहीं, तो इस दावे को खारिज करने वाले कुछ प्रतिपक्ष या कागजात क्या हैं?


35
ध्यान दें कि मानक प्रमाण यह है कि रुकने की समस्या अचूक है (जैसे कि विकिपीडिया पर वर्णित एक: en.wikipedia.org/wiki/Halting_problem#Sketch_of_proof ) सभी संगणना के मॉडल के साथ काम करते हैं जो I / O का प्रतिनिधित्व करने का प्रयास भी नहीं करते हैं। और जैसे कि ट्यूरिंग मशीनें स्टेटफुल हैं, उनके व्यवहार को औपचारिक रूप से शुद्ध कार्यों के रूप में परिभाषित किया गया है। तो कुछ अर्थों में "एक आदर्श कंप्यूटर पर शुद्ध कार्यक्रम" वास्तव में वह सेटिंग है जिसमें रुकने की समस्या आमतौर पर अनिर्दिष्ट साबित होती है।
बेन

1
आपने क्या शोध किया है? Googling "Halting problem" को आपके लिए पहले ही इस प्रश्न का उत्तर दे देना चाहिए।
जोनाथन

जवाबों:


38

हाल्टिंग समस्या से निजात पाकर यहां अनिर्वायता का प्रमाण है।

रिडक्शन: एक मशीन और एक इनपुट x को देखते हुए , एक नई Turing Machine H का निर्माण करें, जो किसी इनपुट को नहीं पढ़ती है, लेकिन टेप पर M और x लिखती है और M को तब तक X पर अनुकरण करती है, जब तक M हाल्ट नहीं करता।MxHMxMxM

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



@ हेंड्रिकजान ठीक है!
लेउवे विन्खुइजेन

16

नहीं, यह नहीं है, और इसके अलावा यह I / O पर निर्भर नहीं करता है।

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


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

2
ठीक है, यदि हॉल्टिंग समस्या निर्णायक थी, तो हर समस्या का समाधान होगा यदि हम इसे एक ऐसे रूप में रख सकते हैं जहां हम पूछते हैं कि कोई कार्यक्रम रुकता है या नहीं। या फॉर्म का कोई प्रश्न: एक गणनीय सेट है, और मैं यह तय कर सकता हूं कि कोई व्यक्तिगत संभावित तत्व सेट में है या नहीं। क्या सेट खाली है? डायोफैंटाइन समीकरणों में संभावित समाधानों का एक गणनीय सेट होता है, और मैं जांच सकता हूं कि प्रत्येक व्यक्तिगत संभावित समाधान एक समाधान है या नहीं। यदि हॉल्टिंग समस्या निर्णायक थी, तो डायोफैंटाइन समीकरण निर्णायक होंगे।
gnasher729

10
@ gnasher729 हाँ, और चूँकि वे हॉल्ट की समस्या नहीं हैं। यही मेरा सवाल है। जबकि इस उत्तर में दिए गए कथन का कोई वास्तविक प्रभाव नहीं है: "इस गणितीय परिभाषा पर विचार करें। वर्तमान में हमें यह पता नहीं है कि यह तय करने वाला कोई कार्यक्रम बंद हो जाएगा या नहीं, लेकिन कल एक आदमी यह पता लगा सकता है कि वह करता है या नहीं और यह उत्तर 100 हो जाता है। % निरर्थक ”।
बकुरीउ

6
क्या यह एक समान मामला नहीं है कि यह कैसे निर्णायक हो सकता है कि of अंकों के कुछ अनुक्रम हैं? , हॉल्टिंग समस्या पर अनिर्णनीय वर्गों की समस्याओं, नहीं की एकल समस्याओं।
npostavs

2

द्वारा शास्त्रीय प्रमाण विकर्णन एक शुद्ध मशीन है , न केवल यह एक शुद्ध ट्यूरिंग मशीन है, लेकिन उस पर "ओपन समस्याएं" निर्भर नहीं करता।

उदाहरण के लिए, एक ट्यूरिंग मशीन जो Collatz Conjecture को निष्पादित करती है, ने हाल्टिंग स्टेटस को हटा दिया है, लेकिन जो Collatz Conjecture के बारे में हमारी अज्ञानता पर निर्भर करती है, एक दिन हम यह अनुमान लगा सकते हैं कि Collatz सही थी और फिर हम अनुमान के Halting स्थिति को तय करने में सक्षम हो गए। (या तो कुछ इनपुट रुकते नहीं हैं, या हमेशा रुकते हैं)।

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


0

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

prog() = if halts "prog" then prog() else ()

"prog"कुछ अभिव्यक्ति के लिए स्रोत कोड के लिए मूल्यांकन किया जाएगा, जहां होगा prog; हालाँकि, आप जल्दी से उस progपड़ाव को देख सकते हैं (सभी सूचनाओं के लिए) अगर यह रुकता नहीं है, जो एक विरोधाभास है। इस प्रमाण में कुछ भी किसी भी तरह से I / O पर निर्भर नहीं करता है (क्या आपको quine लिखने के लिए I / O की आवश्यकता है?)।

वैसे, आप आगे के सबूतों के लिए "संवाद-आधारित I / O" में देखना चाह सकते हैं कि I / O आपकी समस्या के लिए पूरी तरह अप्रासंगिक है (मूल रूप से, I / O प्रोग्राम जो इनपुट के रूप में लेते हैं, उन्हें कम किया जा सकता है। (स्पष्ट) कार्यात्मक तर्क और वापसी उत्पादन के रूप में (स्पष्ट) एक आलसी भाषा में अतिरिक्त परिणाम)। दुर्भाग्य से, मैं अभी वेब पर एक उचित, संयुक्त राष्ट्र के पक्षपाती (या समर्थक संवाद) पृष्ठ नहीं खोज सकता।

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