Нахождение наикратчайшего пути.
Дважды по одной дороге, естественно, проехать нельзя.
Визуально - расстояние между городами определяется длинной линии на карте.
Генерится карта дорог случайным образом исходя из заданных: числа городов и максимального числа дорог, выходящих из города.
Можно отследить работу алгоритма, установив "с отрисовками".
Использована механизм рекурсии с откатом.
Также, реализован алгоритм Дейкстры (в другой версии этой же программы).