Я просмотрел похожие вопросы, но не могу найти ничего, что имело бы отношение к моей проблеме. Я изо всех сил пытаюсь найти алгоритм или набор «циклов», которые найдут путь от CityA
до CityB
, используя базу данных
distance(City1,City2,Distance)
факты. То, что мне удалось сделать до сих пор, приведено ниже, но он всегда возвращается на write(X),
, а затем завершается последней итерацией, чего я и хочу, но только до определенной степени.
Например, я не хочу, чтобы он печатал какие-либо названия городов, которые находятся в тупике, или использовал последнюю итерацию. Я хочу, чтобы он в основном делал путь от CityA
до CityB
, записывая названия городов, в которые он идет по пути.
Я надеюсь, что кто-нибудь может мне помочь!
all_possible_paths(CityA, CityB) :-
write(CityA),
nl,
loop_process(CityA, CityB).
loop_process(CityA, CityB) :-
CityA == CityB.
loop_process(CityA, CityB) :-
CityA \== CityB,
distance(CityA, X, _),
write(X),
nl,
loop_process(X, CityB).