У меня есть пара связанных элементов с предоставленной стоимостью для их обхода:
link(a, b, 100).
link(b, c, 223).
link(c, d, 311).
Я хочу выяснить, возможен ли обход, и если это так, вернуть общую стоимость.
Так что вопрос ?-count(a, d, X).
возвращает X = 634
.
Вот моя попытка сделать это:
sum(A, B, X) :-
X is A + B.
count(Start, Finish, Cost) :-
link(Start, Finish, Cost).
count(Start, Finish, Cost) :-
link(Start, Through, Tempcost),
count(Through, Finish, Newcost),
sum(Cost, Tempcost, Newcost).
Проблема заключается в том, что пока у меня естьОбщая идея, как увеличить на фиксированное число Мне трудно сложить совершенно разные числа и передать их в рекурсию.
Мой текущий код возвращает ошибку «Аргумент недостаточен. Создан». Я знаю, что это часто связано с порядком кода, поэтому я пытался изменить его, но пока не получилось.