【问题标题】:Summation in Cplex constraintsCplex 约束中的求和
【发布时间】:2014-12-05 12:33:35
【问题描述】:

在 CPLEX OPL 中,如何在约束中写入 i(从 1 到 i-1)的总和?

另一个问题:如何输入3维矩阵?

非常感谢,

【问题讨论】:

    标签: cplex opl


    【解决方案1】:

    您可以使用以下内容创建具有 3 个维度的 dvar:

    dvar int+ x[1..2][1..7][1..3];
    

    并且,为了使用范围求和,您可以这样做:

    dexpr int obj = sum(i in 1..2, j in 1..7, z in 1..3) x[i][j][z];
    

    【讨论】:

      【解决方案2】:

      要获得 3 维输入,您可以将您的 3-d 输入数组flatten 分配给 1-d 数组,然后使用简单的 OPL 脚本代码为您的 3-d 数组赋值:

      int array[0..I-1][0..J-1][0..K-1];//3-d array 
      int input[I*J*K]=...;//1-d array to be read as input
      
      execute assignArray{
      var index=0;
      for(var i=0;i<I;i++){
        for(var j=0;j<J;j++){
           for(var k=0;k<K;k++){
            array[i][j][k]=input[index];
            index++;
          }
        }    
      }
      }
      

      【讨论】:

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