非決定性チューリングマシンは、少なくとも1つのパスが受け入れる場合に受け入れます。すべてのパスが拒否された場合にのみ拒否されます。この非対称性により、「回答を反転」することが難しくなります。
たとえば、入力wに 2つのパス がある非決定性チューリングマシンがあるとします 。1つは受け入れ、もう1つは拒否します。Mに はwの受け入れパスが少なくとも1つある ため、受け入れます。Mが 拒否する入力を正確に受け入れるマシンを作成するとします。明らかな最初の試みは、Mを取り 、その受け入れ状態を拒否させ、その拒否状態を受け入れさせることです。Mに は、wの 1つの受け入れパス と1つの拒否パスがあります。この新しいマシン M 'には、1つの拒否パスと1つの受け入れパスがあります。そのため、拒否することになっていたwを引き続き受け入れます !MwMwMMMwM』w
非決定性マシンは、そのすべてのパスを同時に調べて、それらのすべてのパスの動作に基づいてアクションを実行することはできません。必要に応じて、スレッド同士の通信を禁止する並列処理の一種と考えることができます。すべてのスレッドが終了すると、プログラムは次の質問を自問する必要があります。「少なくとも1つのスレッドは受け入れましたか?」答えが「はい」の場合、法的に受け入れる義務があります。答えが「いいえ」の場合、拒否することが法的に義務付けられています。それ以外には何もできません。
あなたは非決定的機シミュレートすると 別の1、使用してM "、の各パス Mを"のいずれかのパスをシミュレート Mをのみ、そのパスを見ています。「他のすべてのパスが拒否された場合、受け入れます」とは言えません。他のパスを見ることができないからです。自分自身しか見えません。つまり、「シミュレートしたパスが受け入れられた場合は拒否する」または「シミュレートしたパスが受け入れられた場合も受け入れる」などとしか言えないかもしれません。次に、計算の最後に、マシンは「パスのいずれかが受け入れられた場合、受け入れます」と言わなければならず、上記で説明した問題が発生します。行動反転するにはM、の各パスMを"MM』M』MMM』「シミュレートしたパスが受け入れられた場合、拒否します。それ以外の場合は受け入れます」、および計算の最後に、マシンは「すべてのパスが受け入れられた場合は受け入れます。それ以外の場合は拒否します。 」これは、シミュレータのすべてのパスが受け入れられた場合、のすべてのパスが拒否されたため、Mが拒否されたため、シミュレータが受け入れる必要があるためです。しかし、シミュレータは法的に義務付けられた受け入れ基準を使用していないため、有効な非決定論的チューリングマシンではありません。それはできません。MM
非決定性マシンがその入力を拒否するかどうかを知る唯一の方法は、考えられるすべてのパスを試し、それらすべてが拒否されることを確認することです。結局のところ、そのうちの1つでも受け入れた場合、マシンは入力を受け入れます。ただし、考えられるすべてのパスを試すことは、1つだけを試すよりも指数関数的に遅くなります。