如何在C++中定义3D决策变量(使用CPLEX concert技术)



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

指数i={0,1,2,3…9}

j={0,1,2,3…9}

k={0,1,2}

N_纸箱=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, 0, 1, ILOBOOL);

}
}

如何引入索引"j"?

您可以使用IloArray<gt;模板来构建一个数组,该数组具有编译器允许的任意维度

正如technote中所说,我如何创建和使用多维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音乐会C++API从C++调用OPL

最新更新