大佬教程收集整理的这篇文章主要介绍了如何在具有求和函数的 cplex 中包含带有决策变量的 if 语句,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如何转换具有决策变量的约束部分中的 If 语句。 costvship 是运输的可变成本,只有当 sum(m in M)x[m][n]*h[p][n]*weight[m] 大于阈值 Weight 时才需要包括在内。这里 x[m][n] 和 h[p][n] 是二进制变量。
forall(p in P,n in N){Costship[p][n] == costfshiP*z[p][n] + costvshiP*(sum(m in M)(x[m][n]*h[m][p]*weight[m])- Weight);
}
如果约束为真,您可以使用逻辑约束来增加额外成本。
让我更改 zoo example 以表明:
int nbKids=300;
float costBus40=500;
float costBus30=400;
int penalty=1000;
dvar int+ nbBus40;
dvar int+ nbBus30;
minimize
costBus40*nbBus40 +nbBus30*costBus30 + (nbBus40+nbBus30<=8)*penalty;
subject to
{
40*nbBus40+nbBus30*30>=nbKids;
}
你也可以用 sum 写
int nbKids=300;
{int} sizes={40,30};
float costBus[sizes]=[500,400];
int penalty=1000;
dvar int+ nbBus[sizes];
minimize
sum(s in sizes)costBus[s]*nbBus[s] + (sum(s in sizes) nbBus[s]<=8)*penalty;
subject to
{
sum(s in sizes)s*nbBus[s]>=nbKids;
}
以上是大佬教程为你收集整理的如何在具有求和函数的 cplex 中包含带有决策变量的 if 语句全部内容,希望文章能够帮你解决如何在具有求和函数的 cplex 中包含带有决策变量的 if 语句所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。