如何在 objective 函数中使用 forall 或聚合器?
How do I use forall or an aggregator in the objective function?
我有一个决策变量 x[i,j],它是 1 或 0,我想最大化每一行的总和。我想使用类似 forall 的东西,但它似乎只会让我在约束中使用它。有没有办法将它用于 objective 函数?
如 https://www.ibm.com/support/knowledgecenter/SSSA5P_12.6.0/ilog.odms.ide.help/OPL_Studio/opllang_quickref/topics/tlr_opl_forall.html 处的文档所述,forall
仅适用于约束。
但是你可以使用像
这样的东西
dvar float obj;
maximize obj;
subject to
{
forall (...) obj == sum(...);
}
这将允许您对 obj
变量的值施加限制,以便它代表您感兴趣的任何内容。
我有一个决策变量 x[i,j],它是 1 或 0,我想最大化每一行的总和。我想使用类似 forall 的东西,但它似乎只会让我在约束中使用它。有没有办法将它用于 objective 函数?
如 https://www.ibm.com/support/knowledgecenter/SSSA5P_12.6.0/ilog.odms.ide.help/OPL_Studio/opllang_quickref/topics/tlr_opl_forall.html 处的文档所述,forall
仅适用于约束。
但是你可以使用像
这样的东西dvar float obj;
maximize obj;
subject to
{
forall (...) obj == sum(...);
}
这将允许您对 obj
变量的值施加限制,以便它代表您感兴趣的任何内容。