Ответ 1
Поиск дерева в глубину может застрять в бесконечном цикле, поэтому он не является "полным". Поиск по графику отслеживает узлы, которые он уже просматривал, поэтому он может избежать бесконечных циклов.
"Резервные пути" - это разные пути, которые ведут от одного и того же старта node к тому же концу node. Поиск по графику будет по-прежнему исследовать все эти избыточные пути, но как только он достигнет node, который он посетил раньше, он больше не пойдет, но будет резервным копировать и искать дополнительные пути, которые он еще не пробовал.
Это отличается от "бесконечного цикла", который является путем, который ведет от node к себе.
В ответ на ваш комментарий просмотрите цитату, которую вы только что опубликовали:
Depth-first tree search can be modified at no extra memory cost so that it checks new states against those on the path from the root to the current node.
Таким образом, хотя поиск по дереву глубины сначала отслеживает путь от корня до текущего node, чтобы избежать бесконечных циклов, он должен выполнять линейный поиск по этому пути каждый раз, когда он посещает новый node, Если вы написали реализацию дерева поиска по глубине, который не выполнял эту проверку, он мог попасть в бесконечный цикл.
Вы правы, что в книге говорилось о "распространении избыточных путей", не относится к полноте. Это просто указывает на разницу между графиком и деревом. Поскольку поиск по дереву только отслеживает текущий путь, он может работать один и тот же путь более одного раза в одном и том же поиске (даже если вы делаете проверку, о которой я только что упомянул).
Скажите, что ваш корень node имеет 2 ветки. Каждая из этих ветвей ведет к одному синглу node, который имеет длинный путь, ведущий от него. Поиск дерева будет следовать за этим длинным путем дважды, один раз для каждой из 2 ветвей, которая ведет к нему. Это то, что автор указывает.