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