我的多重解决方案问题是由于 Prolog 的回溯循环目标而出现的。虽然我明白,从技术上讲,提供的每个解决方案都是正确的,但对我没有用。有没有删除重复项的方法?
到目前为止,这是我的代码:
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.
问候。