Я недавно начал изучать пролог для задания.
Вопрос, заданный для поиска оптимизированного по времени маршрута от А до Б.
Я определил ребра и правила следующим образом
bus(12,panbazar,chandmari,10,12.5,7,8).
bus(22,chandmari,paltanbazar,17.5,18,9,10).
bus(32,chandmari,paltanbazar,13,14.5,11,12).
# Определения кромок
edge1(A, B, Departure, Arrival, Dist, Cost) :-
bus(_, A, B, Departure, Arrival, Dist, Cost),
Time is Arrival-Departure, Time > 0.
edge(A, B, Time, Dist, Cost) :-
bus(_, A, B, Departure, Arrival, Dist, Cost),
Time is Arrival-Departure, Time > 0.
Здесь правило шины представляет bus(BusId, From, To, Departure, Arrival, Distance, Cost)
.
При запросе в swipl edge(chandmari, Q, W, E, R)
. возвращает результат
но при запросе edge1(chandmari, Q,W,E,R,T)
. Я получаю следующую ошибку.
ERROR: Undefined procedure: edge1/6
ERROR: However, there are definitions for:
ERROR: edge/5
false.