微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 C++ 中定义 3D 决策变量使用 CPLEX Concert 技术?

如何解决如何在 C++ 中定义 3D 决策变量使用 CPLEX Concert 技术?

我必须定义一个决策变量 a[kij],它本质上必须是二元的

指数 我 = {0,1,2,3...9}

j={0,3...9}

k= {0,2}

N_CARTONS=10

N_C=3

到目前为止已经写了这么多代码

 // Define a
IloArray<IloNumVararray> a(env,N_C);

for (k = 0; k < N_C; k++)
{
    a[k] = IloNumVararray(env,N_C);
    
    for (i = 0; i < N_CARTONS; i++)
    {
        a[k][i] = IloNumVar(env,ILOBOOL);
        
    }
}

如何引入索引'j'?

解决方法

您可以使用 IloArray 模板来构建一个具有您的编译器允许的维度的数组

如技术说明中所述How do I create and use a multi dimensional IloNumVarArray?

CPLEX 发行版中的完整示例:facility.cpp

或者你也可以简单地写

int N_CARTONS=10;
int N_C=3;

range i=0..N_CARTONS-1;
range j=0..N_CARTONS-1;
range k=0..N_C-1;

dvar float a[k][i][j];

在 OPL 中,然后使用 OPL Concert C++ API 从 C++ 调用 OPL

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。