我正在使用 ECLiPSe 6.1 开发一个序言程序(CLPFD)。该程序有很多变量,我想最小化某个值,但(显然)最小化步骤需要很多时间。如何打印在最小化阶段找到的每个解决方案?输出仅打印(例如)Found a solution with cost 22003482
而不是解决方案本身。我想拥有:
Found a solution with cost 22003482
L = [[...],[...],...,[]] %L is the list of value to minimize
在最小化过程的每一步。
我试过这种方法:
myLabeling([]).
myLabeling([H|T]):-
labeling(H),
myLabeling(T).
%code for the problem
%timeout(+Goal, ++TimeLimit, +TimeOutGoal)
timeout(minimize(myLabeling(AllNodesList),Result),TimeLimit,
myLabeling(AllNodesList)).
whereAllNodesList
是列表列表,是到期时TimeOutGoal
运行的目标。TimeLimit
此解决方案不会打印找到的最后一个解决方案,而是打印带有标签的第一个非优化解决方案。
有什么建议么?谢谢。