Я получил этот код, чтобы вернуть кратчайший путь между двумя городами:
goal(Z,Path,Cost) :-
A = mycity,
caminhAux2(A,[Z],0,Path, Cost).
caminhAux2(A,[A|Path1],Cost1,[A|Path1],Cost1).
caminhAux2(A,[Y|Path1],Cost1,Path,Cost) :-
conn(_,X,Y,Dist,N),
road(N,Vmed,_),
CostXY is Dist/Vmed,
Cost2 is Cost1 + CostXY,
caminhAux2(A,[X,Y|Path1],Cost2,Path,Cost).
best(Z,P,C) :-
goal(Z,P,C),
\+ (goal(Z,P1,C1),C1<C).
Как я могу сделать это, чтобы избежать уже посещенных мест? Это в бесконечности езда на велосипеде.