【问题标题】:Decision variable declaration in concert technology (c++ and cplex)Concert 技术中的决策变量声明(c++ 和 cplex)
【发布时间】:2021-02-24 23:04:19
【问题描述】:

嗨,我有一个 4D 的 decion 变量 X[i][j][k][l] 它是二进制的。请问我该如何声明它? 我正在使用带有 cplex12.9 的音乐会技术 c++ 2019。请问这两个版本可以一起使用吗?

谢谢

【问题讨论】:

  • 请你把你的问题说得更清楚些好吗?似乎您在问两个完全不同的问题 - 如何声明 4 维决策变量以及 Concert 和 cplex 是否兼容。你试过一起使用它们吗?

标签: c++ cplex


【解决方案1】:
typedef IloArray<IloNumVarArray> NumVarMatrix;
typedef IloArray<NumVarMatrix>   NumVar3Matrix;
...
file >> capacity >> fixedCost >> cost >> routes;
nbRoutes = routes.getSize();
/* define the num vars here for the 3-D matrix */
 NumVar3Matrix accept(env,nbClients);
 /* initialize this matrix */
 for(i=0; i< nbClients; i++) {
  accept[i] = NumVarMatrix(env, nbLocations);
for(j=0; j< nbLocations; j++) {
            accept[i][j] = IloNumVarArray(env, nbRoutes);
  for(k=0; k<nbRoutes; k++) {
   accept[i][j][k] = IloNumVar(env, 0.0, 1.0, ILOINT);
   }
  }
 }

来自不错的技术说明:https://www.ibm.com/support/pages/sample-create-and-use-multi-dimensional-ilonumvararray

注意:

使用 OPL CPLEX,您可以简单地编写

range i=1..2;
range j=1..3;
range k=1..4;
range l=1..5;

dvar boolean X[i][j][k][l];

subject to
{
  X[1][1][1][1]==1;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多