Przejrzałem podobne pytania, ale nie znalazłem niczego, co byłoby istotne dla mojego problemu. Mam trudności ze znalezieniem algorytm lub zestaw „pętli”, że znajdzie drogę od CityA
do CityB
, wykorzystując bazęUprzejmy podróżujący sprzedawca w Prologu
distance(City1,City2,Distance)
faktów. To, co udało mi się zrobić do tej pory, jest poniżej, ale zawsze cofa się pod numerem write(X),
, a następnie kończy się ostatnią iteracją, która jest tym, co chcę, ale tylko w pewnym stopniu.
Na przykład nie chcę, aby wydrukował nazwy miast będących ślepymi zaułkami lub używał końcowej iteracji. Chcę, żeby to była ścieżka od CityA
do CityB
, pisząc nazwy miast, do których się udaje na ścieżce.
Mam nadzieję, że ktoś może mi pomóc!
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).
Wy, sir, przekroczyłeś zakres obowiązków! To jest niesamowite, jest idealne i ma sens! Przepraszam, jestem takim manekinem, jestem naprawdę nowy w prologu i podczas gdy sporo z niego przychodzi bardzo naturalnie, naprawdę zmagałem się z tym zadaniem. Dziękuję bardzo, więc bardzo baaardzo dużo:] –
nie wahaj się zadać więcej pytań, jeśli będziesz musiał jeszcze raz zrozumieć kod, ja lub inni odpowiemy na nie w komentarzach :) – m09