Недетерминированная машина Тьюринга принимает, если хотя бы один путь принимает; он только отклоняет, если отклоняются все пути. Эта асимметрия затрудняет "перевернуть ответы".
Например, предположим, что у вас есть недетерминированная машина Тьюринга которой есть два пути для ввода : один принимает, другой отклоняет. есть по крайней мере один принимающий путь для , поэтому он принимает. Предположим, мы хотим создать машину, которая принимает именно те входные данные, которые отклоняет. Очевидная первая попытка состоит в том, чтобы взять и заставить его принимающие состояния отклонить, а его отклоняющие состояния принять. имеет один принимающий путь для и один отклоняющий путь; эта новая машина имеет один отклоняющий путь и один принимающий путь. Так что он по-прежнему принимает , который он должен был отклонить!MwMwMMMwM′w
Недетерминированная машина не может смотреть на все свои пути одновременно и предпринимать действия, основываясь на том, что делают все эти пути. Если вам нравится, вы можете думать об этом как о форме параллелизма, когда потокам запрещено общаться друг с другом. После завершения всех потоков программа должна задать себе следующий вопрос: «Принимал ли хотя бы один из моих потоков?» Если ответ «да», он юридически обязан принять; если ответ «нет», он по закону обязан отказаться. Это не может сделать ничего другого.
Когда вы моделируете недетерминированную машину используя другую, , каждый путь моделирует один путь и видит только этот путь. Он не может сказать: «Если все эти другие пути отклонены, я приму», потому что он не может видеть другие пути; оно может видеть только себя. Поэтому все, что он может сказать, это такие вещи, как «Если путь, который я смоделировал, принят, я отклоню» или «Если путь, который я смоделировал, принял, я тоже приму». Затем в конце вычисления машина должна сказать: «Если какой-либо из моих путей будет принят, я тоже приму», что приведет к проблеме, которую я описал выше. Чтобы инвертировать поведение , каждый путьMM′M′MMM′нужно сказать: «Если путь, который я смоделировал, принят, я отклоняю; иначе я принимаю», и в конце вычисления машина должна сказать: «Если все мои пути приняты, я принимаю; в противном случае я отклоняю «. Это происходит потому , что, если все дорожки тренажера принято, что означает , что все путей «s отклонено, так отвергнуто, поэтому потребности тренажерных принять. Но симулятор не является действительной недетерминированной машиной Тьюринга, потому что он не использует юридически обязательный критерий приемлемости. Это не может сделать это.MM
Единственный способ узнать, отклоняет ли недетерминированный компьютер свой ввод, - это попробовать все возможные пути и убедиться, что все они отклонены. В конце концов, если хотя бы один из них согласится, машина примет ввод. Но пробовать каждый возможный путь экспоненциально медленнее, чем пробовать только один.