我的多解问题的出现是由于序言的回溯通过目标循环。 虽然我明白,在技术上,只要每个解决方案是正确的,这对我来说并不实用。 有没有办法删除重复的方法?
这是我到目前为止的代码:
flight(london, paris).
flight(paris, amsterdam).
flight(amsterdam, rome).
flight(rome, paris).
flight(rome, rio_de_janeiro).
route_from(A,B) :-
flight(A,B).
route_from(A,B) :-
flight(A,R),
route_from(R,B).
一个例子查询:
?- route_from(A, paris).
A = london ;
A = rome ;
A = london ;
A = london ;
A = london ;
A = london ;
A = london ;
A = london ;
A = london ;
etc.
问候。