resolve(K, K, _) :- writeln('finished'). %goal state
resolve(CurrentState, GoalState, Path) :-
suc(_, CurrentState, NextState, GoalState),
append(Path, [CurrentState], NextPath),
resolve(NextState, GoalState, NewPath).
我目前有这个算法,它可以正常工作。我这样运行它:
resolve(0, 10, Path).
我确定该算法正在按应有的方式运行,它达到了目标状态,尽管Path
的值为
Path = []
这不是应该发生的事情。路径应该包含我的算法通过的“状态”序列。可能是什么问题?