or-tools,CP SAT:在目标函数中使用 AddDivisionEquality 的目标

Posted

技术标签:

【中文标题】or-tools,CP SAT:在目标函数中使用 AddDivisionEquality 的目标【英文标题】:or-tools, CP SAT: usage of target of AddDivisionEquality in a goal function 【发布时间】:2020-07-06 16:35:15 【问题描述】:

亲爱的, 是否可以使用 CP SAT(或工具)的 AddDivisionEquality 的目标值作为在目标函数中最大化的变量?

【问题讨论】:

【参考方案1】:

当然。任何变量的线性组合都是有效的目标函数。

【讨论】:

谢谢,我问这个的原因如下:假设 x 是 AddDivisionEquality 的目标变量(X,分子,分母)。其中分子是表达式,分母是常数。如果我最大化 X 如果我最大化分子表达式,我会得到不同的结果。你知道原因吗? 我不明白,AddDivisionEquality 只接受整数变量或整数常量作为参数。表达式不应该是有效的。你传什么表情? 在约束中,我创建了一个类似 int_var=expression 的约束,然后我使用 int_var 作为除法的分子,而分母是一个常数。如果我最大化除法目标变量,我得到的结果与我直接最大化我在 int_var 中使用的表达式时不同。我希望这能澄清 x [0..10],如果最大化 x / 3,则得到 x = 9 或 10,如果最大化 x,则始终得到 10

以上是关于or-tools,CP SAT:在目标函数中使用 AddDivisionEquality 的目标的主要内容,如果未能解决你的问题,请参考以下文章

addDivisionEquality with Java google or-tools CP-SAT

Or-Tools CP-SAT 求解器导出/导入:加载模型后如何访问变量?

将 CP-SAT Solver 用于非线性目标函数

CP-SAT:较高的num_search_workers值会增加解析时间

CP-SAT 平衡任务分配

如何在 or-tools 中定义复杂的目标函数?