gpt4 book ai didi

c++ - 在 CPLEX (c++) 中使用 IloRange 定义约束时出错

转载 作者:行者123 更新时间:2023-11-28 05:37:59 25 4
gpt4 key购买 nike

我在使用 IloRange 编写约束时遇到问题。没有编译错误,但代码没有运行。

代码中,ad_sales.u_j[j]是一个变量,而demand[j]和lambda[j]是参数。我用于 ILoRange 的语法是 ilorange(env, lower bound, variable, upper bound)。

我需要找到一组约束的对偶,这就是我切换到 IloRange 的原因。如果我使用以下命令而不是 Ilorange,代码运行良好。

for(IloInt j=0; j<data.n; j++)
model_ad.add(ad_sales.u_j[j] <= demand[j]*lambda[j]);

但以下不起作用:

IloRangeArray cons(env, data.n); 
for(IloInt j=0; j<data.n; j++)
{
cons.add(IloRange(env, 0, ad_sales.u_j[j],demand[j]*lambda[j]));
//model_ad.add(cons[j]);
}
model_ad.add(cons);

非常感谢您的帮助。

谢谢

最佳答案

尝试像以前一样调用 IloExpr,即,

IloRangeArray cons(env, data.n); 
for(IloInt j=0; j<data.n; j++) {
cons.add(d_sales.u_j[j] <= demand[j]*lambda[j]);
}
model_ad.add(cons);

您的方法的问题是 IloRange 需要 IloNumExprArg,而不仅仅是 IloNumVar

编辑:

IloModel

add() 方法需要IloExtractableArray。我尝试将约束对象添加到 IloRangeArray 并收到 no matching function for call to ‘IloRangeArray::add(IloConstraint&)’ 错误消息。我建议使用 IloConstraintArray,例如

IloConstraintArray cons(env); 
for(IloInt j=0; j<data.n; j++) {
cons.add(d_sales.u_j[j] <= demand[j]*lambda[j]);
}
model_ad.add(cons);

它适用于我的示例。

关于c++ - 在 CPLEX (c++) 中使用 IloRange 定义约束时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37783687/

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