Путаница возникает из-за того, что при поиске происходит обратное отслеживание, но оно также относится к конкретной методике решения проблем, при которой выполняется обратное отслеживание. Такие программы называются backtrackers.
Представьте себе, что вы проезжаете по соседству, всегда берете первый поворот, который видите (предположим, что петель нет), пока не попадаете в тупик, после чего вы возвращаетесь на перекресток следующей не посещенной улицы. Это «первый» вид возврата, и он примерно эквивалентен разговорному употреблению слова.
Более конкретное использование относится к стратегии решения проблем, которая похожа на поиск в глубину, но возвращает назад, когда осознает, что не стоит продолжать поиск по некоторому поддереву.
Другими словами, наивный DFS слепо посещает каждый узел, пока не достигнет цели. Да, это "возврат" на листовых узлах. Но backtracker также возвращает на бесполезные ветви. Одним из примеров является поиск слов на доске Boggle. Каждая плитка окружена 8 другими, поэтому дерево огромно, а наивная DFS может занять слишком много времени. Но когда мы видим комбинацию типа «ZZQ», мы можем безопасно прекратить поиск с этого момента, поскольку добавление большего количества букв не сделает это словом.
Мне нравятся эти лекции профессора Джулии Зеленски. Она решает 8 королев, загадку судоку и загадку подстановки чисел с помощью возврата, и все это прекрасно анимировано.
Программирование абстракций, лекция 10
Программирование абстракций, лекция 11
Дерево - это граф, в котором любые две вершины имеют только один путь между ними. Это исключает возможность циклов. При поиске на графике у вас все равно будет какая-то логика для устранения циклов, поэтому поведение остается тем же. Кроме того, с ориентированным графом вы не можете следовать за ребрами в «неправильном» направлении.
Из того, что я могу сказать, в статье Столлмана они разработали логическую систему, которая не просто говорит "да" или "нет" в запросе, но фактически предлагает исправления для неправильных запросов путем внесения наименьшего числа изменений. Вы можете увидеть, где может появиться первое определение возврата.