Я просмотрел похожие вопросы, но не могу найти ничего, имеющего отношение к моей проблеме . Я изо всех сил пытаюсь найти алгоритм или набор «циклов», которые найдут путь от 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).