Мне нравится аналогия лабиринта. Давайте для простоты будем рассматривать лабиринт как бинарное дерево, в котором есть только один выход.
Теперь вы хотите попробовать поиск в глубине, чтобы найти правильный выход из лабиринта.
Недетерминированный компьютер в каждой точке ветвления будет дублировать / клонировать себя и выполнять все последующие вычисления параллельно. Это похоже на то, как если бы человек в лабиринте дублировал / клонировал себя (как в фильме «Престиж») в каждой точке ветвления и отправлял одну копию себя в левую ветвь дерева, а другую копию себя - в правую ветвь дерева. дерево.
Компьютеры / люди, которые оказываются в тупике, они умирают (заканчивают без ответа).
Только один компьютер выживет (завершится с ответом), тот, кто выходит из лабиринта.
Разница между возвратом и недетерминизмом заключается в следующем.
В случае возврата назад в любой момент времени жив только один компьютер, он выполняет традиционный трюк по решению лабиринта, просто пометив свой путь мелом, а когда он попадает в тупик, он просто просто возвращается к точке ветвления. чьи подотрасли он еще не исследовал полностью, как при глубоком первом поиске.
В КОНТРАСТЕ:
Недетерминистский компьютер может клонировать себя в каждой точке ветвления и проверять выход, выполняя поиск параллелизма в подветвях.
Таким образом, алгоритм обратного отслеживания имитирует / имитирует способность клонирования недетерминированного компьютера на последовательном / непараллельном / детерминированном компьютере.