Вам нужно использовать аккумулятор (еще одна переменная в вашем предикате решения):
pathdistance(a,b,10).
pathdistance(b,c,20).
pathdistance(c,d,5).
pathdistance(d,e,15).
pathdistance(a,d,5).
pathdistance(c,e,10).
solve(Start, End, Result):-
solve(Start, End, 0, Result).
Здесь вы вводите свой аккумулятор и инициализируете его до 0.
solve(Start, End, TotalCost, Result) :-
pathdistance(Start, End, Cost),
Result is TotalCost + Cost.
Если этот шаг является последним, вашим результатом будет значение вашего аккумулятора (здесь он называется TotalCost) + последняя стоимость.
solve(Start, End, TotalCost, Result):-
pathdistance(Start, Waypoint, Cost),
NewTotalCost is TotalCost + Cost,
solve(Waypoint, End, NewTotalCost, Result).
Если это не последний шаг, вы просто увеличиваете значение своего аккумулятора на стоимость.
Надеюсь, это поможет.
Вы должны были пометить это домашнее задание, поскольку проблема уже получила много отрицательных голосов из-за плохого вопроса в начале дня. Хотя на этот раз вы ясно показываете, что пытались, так что это что-то еще. Пожалуйста, спросите, нужна ли вам другая информация.