如何将多维 IloRangeArray 添加到 CPLEX 上的模型

How to add multi dimensional IloRangeArray to the model on CPLEX

我是 CPLEx 的初学者,我用它来编写我的数学模型。 我定义并构建了一个三维 IloRangeArray 作为我的约束,如下所示:

typedef IloArray<IloArray<IloRangeArray>> ThreeDimRange;
con = IloArray <IloArray <IloRangeArray> > (env, n);
for () 
{
    con [h] = IloArray <IloRangeArray> (env, nbRow);
    for ()
    {
        con[h][m] = IloRangeArray (env);
        for () 
        {
            IloExpr tempExp(env); 
            if ()
                 con [h][m].add(0 <= tempExp <= 0);
        }
    }
}

当我想将"con"添加到模型(model.add(con);)时,出现以下错误:

错误 C2664:'IloExtractable IloModel::add(const IloExtractable) const':无法将参数 1 从 'ThreeDimRange' 转换为 'const IloExtractable'

2 dim IloArrangeArray 也是一样的。 你怎么看?

谢谢

已解决!看起来虽然我们有 IloRangeArray 的多维向量,但我们必须将每个 IloRangeArray 单独添加到模型中。

typedef IloArray<IloArray<IloRangeArray>> ThreeDimRange;
con = IloArray <IloArray <IloRangeArray> > (env, n);
for () 
{
    con [h] = IloArray <IloRangeArray> (env, nbRow);
    for ()
    {
        con[h][m] = IloRangeArray (env);
        for () 
        {
            IloExpr tempExp(env); 
            if ()
                 con [h][m].add(0 <= tempExp <= 0);
        }
        **model.add(con[h][m]);**
    }
}