【问题标题】:How to find the sum of this array in CPLEX (concert C++)?如何在 CPLEX(音乐会 C++)中找到这个数组的总和?
【发布时间】:2021-05-21 14:02:22
【问题描述】:

我写了这段代码来求和

int sum=0;

for (i = 0u; i < n[k]; i++)
        {
            sum = sum + include[k][i];
        }

include 的定义如下:

IloArray<IloNumVarArray> include(env, N_CONSIGNMENTS);

for (k = 0; k < N_CONSIGNMENTS; k++)
{
    include[k] = IloNumVarArray(env, n[k]);

    for (i = 0; i < n[k]; i++)
    {
        //if (i == k)continue;
        include[k][i] = IloNumVar(env, 0, 1, ILOBOOL);

    }
}

我得到的错误是:

no suitable conversion function from "IloNumExprArg" to "int" esists

如何解决这个问题?

【问题讨论】:

    标签: c++ arrays cplex ilog


    【解决方案1】:

    解决模型后,您可以向 CPLEX 询问 IloNumVar 的值,例如:

    sum = sum + cplex.getValue(include[k][i]);

    但我不能确定我记错了语法。应该有很多例子。

    【讨论】:

    • 总和是约束的一部分......所以在模型解决后无法评估它
    • 但是总和不能是 int,因为在模型求解之前 IloNumVars 还没有值。您必须使用表达式 (IloNumExpr) 之类的东西来对这些变量的总和进行建模。
    猜你喜欢
    • 2022-06-12
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    相关资源
    最近更新 更多