我有一个prolog代码,基本上尝试使用许多可能的解决方案为问题生成解决方案(每个解决方案都作为项目列表返回)。由于分辨率很高并且我只对了解最有效的解决方案(即长度最短的解决方案)感兴趣,所以当新的答案变得大于或等于最小的答案时,我想快速执行。有
我会做这样的事情,但需要事先知道最大尺寸:
solve_problem_efficiently(Solutions, MaxSize) :-
solve_problem(Solutions),
length(Solutions),
Length < MaxSize.
在Prolog中实现这种效果的最佳方法是什么?