हॉल्ट समस्या के उदाहरणों को हल करने के लिए ओरेकल कॉल की संख्या पर कम बाध्य


9

मुझे निम्नलिखित प्रश्न का सामना करना पड़ा, जो एक आसान व्यायाम है (नीचे बिगाड़ने वाला)।

हमें समस्या के उदाहरण दिए गए हैं (यानी ), और हमें यह तय करने की आवश्यकता है कि उनमें से कौन सा पर रुका हुआ है । यही है, हमें आउटपुट करने की आवश्यकता है । हमें रुकने की समस्या के लिए एक संकेत दिया जाता है, लेकिन हमें इसे कम से कम संख्या में उपयोग करना होगा।nM1,...,Mnϵ{i:Mi halts on ϵ}

यह दिखाना मुश्किल नहीं है कि यह कॉल के साथ किया जा सकता है ।log(n+1)

मेरा सवाल यह है कि क्या हम एक निचली सीमा को साबित कर सकते हैं? क्या यह संदेह करने का कारण है कि इस तरह के एक बंधन को खोजना बहुत कठिन होगा?

प्रश्न का उत्तर स्वयं (स्पॉइलर, होवर माउस):

टीएम के मामले पर विचार करें । हम समानांतर में को चलाने वाले TM निर्माण कर सकते हैं और यदि उनमें से कम से कम दो रुक जाते हैं (तो यह अटक जाता है)। इसी तरह, हम एक टीएम निर्माण कर सकते हैं जो कम से कम एक को रोक देता है। फिर हम पर ओरेकल को कॉल कर सकते हैं । यदि यह रुक जाता है, तो हम मशीनों को समानांतर में चला सकते हैं, और एक के रुकने की प्रतीक्षा कर सकते हैं। फिर हम पिछले एक पर ओरेकल को बुला सकते हैं। यदि ओरेकल "नहीं" कहता है, तो हम पर ओरेकल चलाते हैं । यदि यह रुकता है, तो हम मशीनों को एक हाल्ट तक चलाते हैं, और यह केवल एक ही है। यदि नहीं है, तो उनमें से कोई भी रुक नहीं सकता है। इसे मशीनों तक पहुंचाना आसान है।3H2M1,M2,M3H1H2H1H1n

इस प्रश्न के बारे में पहला अवलोकन यह है कि सूचना-सिद्धांत संबंधी साधनों का उपयोग करके हल करना असंभव लगता है, क्योंकि हम महत्वपूर्ण रूप से मशीनों को चलाए बिना सूचना प्राप्त करने की अपनी क्षमता पर भरोसा करते हैं।


@ नवीन- जैसा कि नील यंग ने लिखा है, हमें हॉल्टिंग मशीनों के सटीक सेट की गणना करने की आवश्यकता है।
शाऊल

जवाबों:


11

परिणाम में पाया जा सकता है

  • Beigel, R., Gasarch, WI, Gill, J. और Owings, J. Terse, superterse , और verbose सेट । सूचित करना। और कम्प्यूट। 103 (1993), नहीं। 1, 68-85।

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

इससे संबंधित और कई परिणामों के लिए, यह भी देखें:


10

संपादित करें: मैंने जो तर्क दिया था, वह गलत नहीं था, लेकिन यह थोड़ा भ्रामक था, इसमें केवल यह दिखाया गया है कि ऊपरी बाउंड को कुछ लिए तंग होना चाहिए (जो वास्तव में तुच्छ है, क्योंकि इसे तंग करना होगा जब और बाउंड 1) है।nn=2

यहाँ एक अधिक सटीक तर्क है। यह दिखाता है कि यदि किसी विशेष लिए ऊपरी बाउंड ऑफ़ है , तो सभी लिए आवश्यक ऑर्कल कॉल्स की संख्या ।log2nn nO(1)

(निश्चित रूप से यह है नहीं , तो ऊपरी बाध्य ढीला कभी नहीं है! लेकिन मैं वास्तव में उस यहाँ साबित नहीं करते, और समस्या के लिए अन्य जवाब दिया, इसके लायक पीछा नहीं लगता है।)O(1)

अधिकतम आउटपुट की गणना करने की समस्या पर विचार करें :

दिया गया n-tuple (M1,,Mn) ट्यूरिंग मशीनों की, अधिकतम उत्पादन की गणना करें (ट्यूरिंग मशीनों की जो रुका हो, यदि चालू हो ϵ)। यदि उनमें से कोई भी रुका नहीं है, तो 0 लौटें।

के कार्य के रूप में nइस फ़ंक्शन की गणना करने के लिए आवश्यक ओरेकल कॉल्स की सबसे खराब स्थिति वही है जो यह तय करने के लिए आवश्यक संख्या है nदी गई मशीनें रुक जाती हैं। (अगर मुझे पता है कि कौन सी मशीनें रुकती हैं, तो मैं आसानी से अधिकतम आउटपुट की गणना कर सकता हूं। इसके विपरीत, अगर मैं जानना चाहता हूं कि कौन सी मशीनें रुकती हैं, तो समस्या बयान में निर्माण के बाद, मैं मशीनों का निर्माण कर सकता हूं{Mi} (i=1,2,,n) कहाँ पे Mi सभी चलाता है n समानांतर में मशीनें दी गईं, फिर हाल्ट और आउटपुट i अगर iउनमें से कभी भी रुक जाओ। अधिकतम आउटपुट मुझे उस संख्या को बताएगा जो रुका हुआ है। उससे मैं वास्तव में गणना कर सकता हूं कि कौन सा पड़ाव है।)

अब छोडो n0 सबसे छोटा पूर्णांक हो n (यदि कोई है) तो यह है कि निम्नलिखित रखती है:

का उपयोग करते हुए C(n)=max{kZ:2k<n}ओरेकल कॉल, एक की अधिकतम उत्पादन की गणना कर सकता दी मशीनों। (यही है, ऊपरी बाध्य लिए तंग नहीं है ।)nn

स्पष्ट रूप से , क्योंकि । वास्तव में, भी, क्योंकि , लेकिन यह दी गई मशीनों (बिना किसी ओरेकल कॉल के) के अधिकतम आउटपुट की गणना के । अब बड़ा पर विचार करें :n0>1C(1)=1n0>2C(2)=02n

दावा करें: यदि परिमित है, तो, किसी भी , कोई oracle कॉल में दी गई मशीनों के अधिकतम आउटपुट की गणना कर सकता है । n0nnC(n0)(ध्यान दें कि यदि परिमित है, तो ।)n0C(n0)=O(1)

सबूत। । हम इसे पर प्रेरण द्वारा साबित करते हैं । आधार मामले , जो और की परिभाषा के ।nnn0n0C

बता दें कि TM है, जो किसी भी ट्यूरिंग मशीनों को देखते हुए, अधिकतम आउटपुट का उपयोग केवल कॉल के लिए करता है।Q0n0C(n0)

किसी भी ठीक करें । किसी भी मशीन को देखते हुए अधिकतम आउटपुट की गणना निम्नानुसार करता है।n>n0nM1,,Mn

पहले मशीनों पर ध्यान दें। इन मशीनों पर चलाने पर विचार करें । ध्यान दें कि बनाता ओरेकल के लिए कॉल, और वहाँ केवल हैं इन कॉल करने के लिए ओरेकल द्वारा संभव प्रतिक्रियाओं। ध्यान दें कि परिभाषा । बता दें कि ने th संभव प्रतिक्रिया को निरूपित किया । प्रत्येक के लिए , एक मशीन का निर्माण कि simulates इन मशीनों पर इस प्रकार है:M1,,Mn0Q0n0Q0C(n0)n=2C(n0)n=2C(n0)<n0oiii=1,,nMiQ0

TM (इनपुट ):Miϵ

  1. अनुकरण पर मशीनों , लेकिन इसके बजाय ओरेकल बुलाने की, के अनुसार ओरेकल प्रतिक्रिया मान ।Q0n0(M1,,Mn0)oi
  2. यह अनुकरण रुक नहीं सकता है (उदाहरण के लिए यदि क्या नहीं है तो वास्तव में ओरेकल वापस आ जाएगा)।oi
  3. यदि अनुकरण , तो अधिकतम आउटपुट होगा जो कहता है कि दिया जाएगा।hiQ0
  4. सभी मशीनें । यदि उनमें से एक कभी आउटपुट , तो को रोकें और आउटपुट ।n0(M1,,Mn0)hihi

अब मशीनों के दिए गए अनुक्रम में , पहले मशीनों की जगह को इन मशीनों । मशीनों के इस क्रम पर करके गणना की गई मान लौटाएँ । (ध्यान दें कि ओरेकल को दोबारा भेजने से पहले नहीं बुलाया जाता है, ताकि बेस केस पहुंचने के बाद ही ओरेकल को बुलाया जाए।)nn0M1,,Mn0n<n0M1,,Mnn(n0n)<n

इस कारण यह गणना सही है। के लिए ऐसा है कि `` सही '' ओरेकल द्वारा प्रतिक्रिया है प्रश्नों का, को रोकने और मूल का सही अधिकतम आउटपुट देना होगा मशीनों। इस प्रकार, मशीनों का अधिकतम उत्पादन कम से कम मशीनों का अधिकतम आउटपुट है । दूसरी ओर, चरण 4 के द्वारा, कोई भी ऐसा आउटपुट नहीं दे सकता है जो के अधिकतम आउटपुट से बड़ा हो । इस प्रकार, मशीनों का अधिकतम उत्पादनioiQ0Min0n(M1,,Mn)n0(M1,,Mn0)Mi(M1,,Mn0)n(M1,,Mn) मशीनों के अधिकतम आउटपुट के बराबर है जो वे प्रतिस्थापित करते हैं। QEDn0

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