1. Набираем в яндексе Витольд Липский Комбинаторика для программиста и по первой же ссылке скачиваем книгу
https://vk.com/wall-101965347_1802592. Очень рекомендую почитать уже Липского, многое разъяснится.
а) Открываете Липского, читаете главу Поиск в глубину.
б) Не закрывая Липского, находите и читаете главу Алгоритм с возвратом (это и есть бектрекинг).
в) После прочтения задаёте себе вопрос:
А чем, собственно, линейный (от числа вершин и числа рёбер) поиск в глубину, который находит на графе ровно один путь (если мы его используем для поиска пути между двумя вершинами), отличается от экспоненциального алгоритма с возвратом, который генерирует все пути пути между двумя вершинами?
И отвечаете: Они (эти два алгоритма, глубина и алгоритм с возвратом) отличаются ровно одной строчкой. В глубине, когда мы возвратом уходим из просмотренной вершины, вершина остаётся просмотренной.
В алгоритме с возвратом, когда мы уходим из вершины, она становится снова новой и пригодной для дальнейшего использования.
3. Если речь идёт о реальных задачах, то во многих из них среди прочего есть и коммивояжер. Например, при планировании очередности изготовления чего-либо очень часто возникает коммивояжер. Разные последовательности имеют разные технологические нарушения, вариантов - n!