क्योंकि वास्तव में बहुत सारी व्यावहारिक समस्याएं भेस में पड़ने वाली समस्या हैं। इनका हल हल करने की समस्या को हल करता है।
आप एक संकलक चाहते हैं जो किसी दिए गए प्रोग्राम के लिए सबसे तेज़ संभव मशीन कोड पाता है? दरअसल रुकने की समस्या।
आपके पास उच्च सुरक्षा स्तरों पर कुछ चर के साथ जावास्क्रिप्ट है, और कुछ कम सुरक्षा स्तर पर हैं। आप यह सुनिश्चित करना चाहते हैं कि एक हमलावर को उच्च सुरक्षा जानकारी नहीं मिल सकती है। यह भी सिर्फ पड़ाव की समस्या है।
आपके पास अपनी प्रोग्रामिंग भाषा के लिए एक पार्सर है। आप इसे बदलते हैं, लेकिन आप यह सुनिश्चित करना चाहते हैं कि यह अभी भी उन सभी कार्यक्रमों को पार्स करता है जो इसे इस्तेमाल करते थे। दरअसल रुकने की समस्या।
आपके पास एक एंटी-वायरस प्रोग्राम है, और आप यह देखना चाहते हैं कि क्या यह कभी दुर्भावनापूर्ण निर्देश पर अमल करता है। असल में सिर्फ पड़ाव की समस्या।
विकिपीडिया उदाहरण के लिए, हां, आप एक आधुनिक कंप्यूटर को परिमित-राज्य मशीन के रूप में मॉडल कर सकते हैं। लेकिन इसके साथ दो समस्याएं हैं।
रैम के बिट्स की सटीक संख्या के आधार पर प्रत्येक कंप्यूटर एक अलग ऑटोमेटन होगा। इसलिए यह कोड के एक विशेष टुकड़े की जांच करने के लिए उपयोगी नहीं है, क्योंकि ऑटोमेटन उस मशीन पर निर्भर है जिस पर वह चल सकता है।
यदि आपके पास RAM के n बिट्स हैं, तो आपको राज्यों की आवश्यकता होगी । तो आपके आधुनिक 8GB कंप्यूटर के लिए, यह 2 32000000000 है । यह एक संख्या इतनी बड़ी है कि वुल्फराम अल्फा को यह भी नहीं पता कि इसकी व्याख्या कैसे की जाए। जब मैं 2 10 9 करता हूं तो यह कहता है कि इसमें 300000000 दशमलव अंक हैं। सामान्य कंप्यूटर में स्टोर करने के लिए यह स्पष्ट रूप से बहुत बड़ा है।2n2320000000002109300000000
हॉल्टिंग समस्या हमें एल्गोरिदम की सापेक्ष कठिनाई के बारे में कारण देती है। यह हमें बताता है कि, कुछ एल्गोरिदम मौजूद नहीं हैं, कभी-कभी, हम सभी कर सकते हैं एक समस्या पर अनुमान लगाते हैं, और कभी नहीं जानते कि क्या हमने इसे हल किया है।
यदि हमें रुकने की समस्या नहीं है, तो हम अभी भी हिल्बर्ट के जादुई एल्गोरिथ्म की खोज कर रहे हैं जो प्रमेयों और आउटपुट का इनपुट करते हैं कि क्या वे सच हैं या नहीं। अब हम जानते हैं कि हम तलाश करना बंद कर सकते हैं, और हम इन समस्याओं को हल करने के लिए अपने प्रयासों को अनुमानों और दूसरे-सर्वोत्तम तरीकों को खोजने में लगा सकते हैं।
अद्यतन: टिप्पणियों में उठाए गए मुद्दों के एक जोड़े को संबोधित करने के लिए।
@ टायलर फ्लेमिंग क्लाउटियर: "निरर्थक" समस्या इस प्रमाण में उत्पन्न होती है कि हॉल्टिंग समस्या असंदिग्ध है, लेकिन जो कि अविश्वास के मूल में है वह वास्तव में एक अनंत खोज स्थान है। आप किसी दी गई संपत्ति के साथ एक वस्तु की खोज कर रहे हैं, और यदि कोई मौजूद नहीं है, तो यह जानने का कोई तरीका नहीं है कि आप कब कर रहे हैं।
किसी समस्या की कठिनाई उस मात्रा के संबंध में हो सकती है जो उसके पास है। यह दिखाने की कोशिश की जा रही है कि ( ) एक मनमानी संपत्ति के साथ एक वस्तु मौजूद है , आपको तब तक खोजना होगा जब तक आप एक को नहीं ढूंढ लेते। यदि कोई भी मौजूद नहीं है, तो यह जानने का कोई तरीका नहीं है (सामान्य रूप से)। साबित होता है कि सभी वस्तुओं ( ∀ ) एक संपत्ति कठिन है है, लेकिन आप संपत्ति यह खंडन करने के लिए बिना एक वस्तु के लिए खोज सकते हैं। फ़ोरल और अस्तित्व के बीच जितने अधिक विकल्प हैं, उतनी ही कठिन समस्या है।∃∀
इस पर अधिक जानकारी के लिए, अंकगणित पदानुक्रम देखें । ऊपर कुछ भी , अनिर्णनीय है, हालांकि स्तर 1 अर्द्ध डिसाइडेबल है।Σ00=Π00
यह दिखाना भी संभव है कि हॉल्टिंग समस्या या लिआर्स विरोधाभास जैसी निरर्थक विरोधाभास का उपयोग किए बिना अनिर्णायक समस्याएं हैं। ट्यूरिंग मशीन को बिट्स की एक स्ट्रिंग यानी एक पूर्णांक का उपयोग करके एन्कोड किया जा सकता है। लेकिन एक समस्या को एक भाषा के रूप में एन्कोड किया जा सकता है, यानी पूर्णांक का एक उपसमूह। यह ज्ञात है कि पूर्णांक के सेट और पूर्णांकों के सभी सबसेट के सेट के बीच कोई आपत्ति नहीं है। तो कुछ समस्याएँ (भाषाएँ) होनी चाहिए जिनके पास एक संबंधित ट्यूरिंग मशीन (एल्गोरिथम) नहीं है।
@Brent: हाँ, यह मानता है कि यह आधुनिक कंप्यूटर के लिए निर्णायक है। लेकिन यह एक विशिष्ट मशीन के लिए निर्णायक है। यदि आप डिस्क स्थान के साथ एक यूएसबी ड्राइव, या नेटवर्क पर स्टोर करने की क्षमता, या कुछ और जोड़ते हैं, तो मशीन बदल गई है और परिणाम अभी भी पकड़ में नहीं है।
यह भी कहा जाना है कि कई बार होने जा रहे हैं जहां एल्गोरिथम कहता है "यह कोड रुक जाएगा" क्योंकि यह कोड विफल हो जाएगा और मेमोरी से बाहर चला जाएगा, और यह कि एक अतिरिक्त बिट मेमोरी को जोड़ने से कोड को देखने का कारण होगा सफल होते हैं और एक अलग परिणाम देते हैं।
बात यह है कि, ट्यूरिंग मशीनों में अनंत मात्रा में मेमोरी नहीं होती है। ऐसा कोई समय नहीं है, जब टेप में अनंत प्रतीकों को लिखा गया हो। इसके बजाय, ट्यूरिंग मशीन में "अनबाउंड" मेमोरी होती है, जिसका अर्थ है कि आपको आवश्यकता होने पर मेमोरी के अधिक स्रोत मिलते रह सकते हैं। कंप्यूटर इस तरह हैं। आप रैम, या यूएसबी स्टिक, या हार्ड ड्राइव, या नेटवर्क स्टोरेज जोड़ सकते हैं। जब आप ब्रह्मांड में परमाणुओं से बाहर निकलते हैं, तो आप स्मृति से बाहर चले जाते हैं। लेकिन असीमित स्मृति होना एक अधिक उपयोगी मॉडल है।