我目前正在编写一个asp程序。 当我在程序中#maximize{S:ce(S)}.
注释行时,答案如下所示
omit the Answer 1 to 6.
Answer: 7
review(harris,english) review(ben,math) review(ben,chinese) review(nick,math) review(ben,english) review(nick,chinese) **ce(4)**
Answer: 8
review(harris,english) review(ben,math) review(ben,chinese) review(nick,math) review(nick,english) review(nick,chinese) **ce(4)**
SATISFIABLE
其中答案 7 和答案 8 具有相同的ce
值4
。
当我取消注释该行时,#maximize{S:ce(S)}.
答案如下所示
Answer: 1
review(ben,chinese) review(nick,math) ce(2) review(harris,math) review(ben,english) review(nick,english) review(nick,chinese)
Optimization: -2
Answer: 2
review(harris,english) review(ben,math) review(ben,chinese) ce(3) review(harris,math) review(nick,english) review(nick,chinese)
Optimization: -3
Answer: 3
review(harris,english) review(ben,math) review(ben,chinese) review(nick,math) **ce(4)** review(nick,english) review(nick,chinese)
Optimization: -4
OPTIMUM FOUND
ce(4)
只有一个结果,但我想得到ce最大值的所有结果,我应该怎么做才能得到值为ce(4)
的两个结果。
也许您可以在执行 clingo 时共享您的命令。我简化了您的程序,因为我不知道您正在编码的问题。
review(harris,english).
review(ben,math).
review(ben,chinese).
review(nick,math).
review(ben,english) | review(nick, english). % miss one in your problem
review(nick,chinese).
ce(4).
#maximize{S:ce(S)}.
基本上,问题的缺失条件是review(ben,english)
和review(nick, english)
的枚举 .
如果使用命令clingo 0 filename.lp
执行,则输出将仅生成一个答案集:
Answer: 1
review(harris,english) review(ben,math) review(ben,chinese) review(nick,math) review(nick,chinese) ce(4) review(ben,english)
Optimization: -4
OPTIMUM FOUND
与您的尝试类似,如果我评论最后一行,将显示两个答案集:
Answer: 1
review(harris,english) review(ben,math) review(ben,chinese) review(nick,math) review(nick,chinese) ce(4) review(ben,english)
Answer: 2
review(harris,english) review(ben,math) review(ben,chinese) review(nick,math) review(nick,chinese) ce(4) review(nick,english)
SATISFIABLE
但是,如果您取消注释最后一行并在原始命令后添加--opt-mode=optN
,则输出将为:
Answer: 1
review(harris,english) review(ben,math) review(ben,chinese) review(nick,math) review(nick,chinese) ce(4) review(ben,english)
Optimization: -4
Answer: 1
review(harris,english) review(ben,math) review(ben,chinese) review(nick,math) review(nick,chinese) ce(4) review(ben,english)
Optimization: -4
Answer: 2
review(harris,english) review(ben,math) review(ben,chinese) review(nick,math) review(nick,chinese) ce(4) review(nick,english)
Optimization: -4
OPTIMUM FOUND
不确定这是否是您想要的。您不妨参考有关--opt-mode
参数的 clingo 指南:
opt-mode=mode配置优化语句的处理。模式的可用值包括:
选择计算最优模型(需要 --models=0(。
枚举枚举成本小于或等于某个固定边界的模型 (参见 --选择绑定(。
optN计算最优值,然后枚举最优模型。
忽略在计算过程中忽略任何优化语句。