हम NDTM के उत्तर को कुशलता से क्यों नहीं फ्लिप कर सकते हैं?


11

मैंने कई बार पढ़ा कि NDTM के उत्तर को कुशलता से फ्लिप करना संभव नहीं है। हालाँकि, मुझे समझ नहीं आता कि क्यों। उदाहरण के लिए, एक NDTM दिया में रन है कि , इस पाठ (खंड 3.3) में कहा गया है कि यह स्पष्ट नहीं है कि एक और NDTM में निर्धारित कर सकते हैं समय कैसे फ्लिप करने के जवाब।( एन ) टीMO(n)TएमO(n100)M

मेरी समस्या निम्नानुसार है: एक NDTM आउटपुट iff में गैर-नियतात्मक विकल्पों का एक अनुक्रम मौजूद है जो स्वीकार करने की स्थिति की ओर जाता है। इसके अलावा, एक सार्वभौमिक NDTM मौजूद है जो प्रत्येक NDTM को केवल एक छोटे (लघुगणक) उपरि के साथ अनुकरण कर सकता है। इसलिए हम निम्नानुसार टी का निर्माण नहीं कर सकते हैं: सबसे पहले, एम को सार्वभौमिक एनडीटीएम के साथ अनुकरण करें जो समय में संभव होना चाहिए । फिर आउटपुट 1 - एम का जवाब। इसका मतलब यह होगा कि हम किसी भी रैखिक NDTM के उत्तर को समय पर फ्लिप कर सकते हैं ।एन यू ( एन लॉग एन ) ( एन लॉग एन )1NUO(nlogn)O(nlogn)


एक NDTM कुछ भी "आउटपुट" नहीं करता है। अपने मानसिक मॉडल को nondeterminism से समायोजित करें।
राफेल

जवाबों:


15

एक nondeterministic ट्यूरिंग मशीन स्वीकार करता है अगर कम से कम एक रास्ता स्वीकार करता है; यह केवल अस्वीकार करता है यदि सभी पथ अस्वीकार करते हैं। यह विषमता "फ्लिप उत्तरों" को कठिन बनाती है।

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

एक nondeterministic मशीन अपने सभी रास्तों को एक साथ नहीं देख सकती है और उन सभी रास्तों के आधार पर कार्रवाई कर सकती है। यदि आप चाहें, तो आप इसे समानता के एक रूप के रूप में सोच सकते हैं जहां धागे एक दूसरे के साथ संवाद करने के लिए मना किया जाता है। जब सभी थ्रेड समाप्त हो गए हैं तो प्रोग्राम को खुद से निम्नलिखित प्रश्न पूछना चाहिए: "क्या मेरे थ्रेड्स में से कम से कम एक ने स्वीकार किया था?" यदि उत्तर हां है, तो यह स्वीकार करने के लिए कानूनी रूप से बाध्य है; यदि उत्तर नहीं है, तो इसे अस्वीकार करना कानूनी रूप से बाध्य है। यह कुछ और नहीं कर सकता।

जब आप एक गैर नियतात्मक मशीन अनुकरण  एक और एक, का उपयोग करते हुए , में से प्रत्येक के पथ  में से एक पथ simulates  और केवल उस मार्ग देखता है। यह नहीं कहा जा सकता है, "यदि उन सभी अन्य रास्तों को अस्वीकार कर दिया है, तो मैं स्वीकार करूंगा" क्योंकि यह अन्य पथों को नहीं देख सकता है; यह केवल स्वयं देख सकता है। तो यह सब संभवतः कह सकता है जैसे कि, "अगर मैंने जिस रास्ते को स्वीकार किया है, मैं अस्वीकार कर दूंगा" या "अगर मैंने जिस रास्ते को स्वीकार किया है, मैं उसे भी स्वीकार कर लूंगा"। फिर, गणना के अंत में, मशीन को यह कहना होगा, "यदि मेरा कोई भी रास्ता स्वीकार किया गया है, तो मैं भी स्वीकार करूंगा", ऊपर बताई गई समस्या के कारण। के व्यवहार के , प्रत्येक पथएम ' एम ' एम एम एम ' एम एमMMMMMMकहने की जरूरत है, "अगर मैं जिस रास्ते को स्वीकार करता हूं, मैं अस्वीकार करता हूं; मैं अस्वीकार करता हूं; और, मैं स्वीकार करता हूं" और, गणना के अंत में, मशीन को यह कहने की जरूरत है, "यदि मेरे सभी रास्ते स्वीकार किए जाते हैं, तो मैं स्वीकार करता हूं; और, मैं अस्वीकार करता हूं । " ऐसा इसलिए है, क्योंकि यदि सिम्युलेटर के सभी रास्तों को स्वीकार कर लिया गया है, तो इसका मतलब है कि सभी रास्ते अस्वीकार कर दिए गए हैं, इसलिए ने अस्वीकार कर दिया है, इसलिए सिम्युलेटर को स्वीकार करने की आवश्यकता है। लेकिन सिम्युलेटर वैध nondeterministic ट्यूरिंग मशीन नहीं है क्योंकि यह कानूनी रूप से अनिवार्य स्वीकृति मानदंड का उपयोग नहीं कर रहा है। यह ऐसा नहीं कर सकता।MM

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


2

समस्या यह है कि NDTM स्वाभाविक रूप से गैर-सममित है: अर्थ है कि उनके पास चरण हैं जो मौजूद होने पर एक स्वीकार पथ का अनुमान लगाते हैं, और अन्यथा अस्वीकार कर देंगे (यदि कोई स्वीकार पथ मौजूद नहीं है)।O ( n )O(n)O(n)

समस्या यह है कि यदि आपका मशीन वास्तव में , तो इसका मतलब है कि यह में अनुमान लगाता है एक गवाह को करता है जो इनपुट को अस्वीकार करता है। यह करना संभव नहीं हो सकता है, क्योंकि की अस्वीकृति के कोई गवाह नहीं हैं , बस स्वीकृति के गवाह हैं। अस्वीकृति गवाह की अनुपस्थिति है, इसलिए थोड़े समय में अस्वीकृति को साबित करना आसान नहीं है।O ( n l o g ( n ) ) n l o g ( n ) M MNUO(nlog(n))nlog(n)MM


-3

वास्तव में तकनीकी रूप से आप P coNP ( NP) प्रश्न पूछ रहे हैं जो खुला है। यह व्यापक रूप से अनुमानित है लेकिन यह साबित नहीं हुआ कि वे समान नहीं हैं। अन्य उत्तर सहज ज्ञान युक्त रेखाचित्र / परिस्थितिजन्य साक्ष्य हैं कि वे समान क्यों नहीं हैं।? ==?=?


1
वास्तव में, वह सह-एनपी = एनपी के समान कुछ पूछ रहा है : यह पूरी तरह से संभव है कि पी और एनपी अलग हैं लेकिन एनडीटीएम को कुशलता से नकारा जा सकता है।
डेविड रिचेर्बी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.