如何在 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 变量的值施加限制,以便它代表您感兴趣的任何内容。