Описание тега recursive-backtracking
Рекурсивный поиск с возвратом — это общий алгоритм поиска решений вычислительных задач, который постепенно создает частичные решения и отбрасывает как можно раньше те частичные решения, которые определены как бесполезные, т. е. такие, которые не могут привести к правильному решению.
По сути, это включает в себя создание вложенных циклов посредством рекурсии. Каждая петля воплощает серию выборов. Каждый внутренний цикл может принять частичное решение на данный момент и попробовать свои собственные варианты в цикле или отклонить частичное решение, которое ему представлено, посредством раннего выхода или эквивалента
continue
или
break
заявление.
Управление инвертировано в том, что полное решение достигается в самом внутреннем цикле, который может воздействовать на него определенным образом, например, печатать его в выходной/внешний файл или вызывать обратный вызов с решением в качестве аргумента.
Вычислительная структура возврата реализована в состояниях вложенных циклов, в каждой из переменных цикла вложенных циклов.