gpt4 book ai didi

java - Cplex Java 将 expr(sum) 添加到目标函数

转载 作者:行者123 更新时间:2023-11-30 09:19:29 24 4
gpt4 key购买 nike

我有以下目标函数:

最小化所有 k (1..n) 的总和 (trueck[k] - time[k])。

我试过这样设置:

IloLinearNumExpr obj = cplex.linearNumExpr();

for(int k=0; k<grossK.length; k++){
obj.addTerm(1.0, cplex.sum(trueck[k], cplex.negative(time[k])));
}

cplex.addMinimize(obj);

第 4 行的 eclipse 错误消息是:

“类型 IloLinearNumExpr 中的方法 addTerm(double, IloNumVar) 不适用于参数 (double, IloNumExpr)”

我猜“addTerm”方法是错误的,但我找不到解决方案。提前致谢。

最佳答案

不要在 addTerm 中使用 cplex.sum。您只需将目标函数中的两项分开,因为它们都在 k 上求和。

最小化总和 (trueck[k] - time[k]) 对于所有 k (1..n)

与 Min *sum_over_k* (trueck[k]) - *sum_over_k* (time[k]) 相同

这样,addTerm 就可以处理了。 (下面的代码未经测试,但它让您知道应该尝试什么。)

IloLinearNumExpr obj = cplex.linearNumExpr();

for(int k=0; k<grossK.length; k++){
obj.addTerm(1.0, trueck[k]);
obj.addTerm(-1.0, time[k]);
}

cplex.addMinimize(obj);

希望对您有所帮助。

关于java - Cplex Java 将 expr(sum) 添加到目标函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17960904/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com