【问题标题】:is there any way to iterate in 2-D array in CPLEX有没有办法在 CPLEX 中迭代二维数组
【发布时间】:2021-04-06 16:33:24
【问题描述】:

我想在 CPLEX OPL 中对图中的这些 Constraints 进行建模,但 CPLEX 不提供在多维数组中迭代的机会。 Cst 和 Tst 是二进制矩阵,其想法是仅对非零元素求和。 请问我该怎么做。

【问题讨论】:

    标签: cplex opl


    【解决方案1】:

    我在 community.ibm.com 中的回答

    range S=1..3;
    range T=1..3;
    
    int Cst[S][T] = [[0, 0 ,1],
             [1 ,0, 1],
             [0 ,1 ,0]];
             
    dvar boolean x[S][T];
    
    dvar int su; // sum all x such as Cst is 1
    
    maximize su;
    subject to
    {
      su==sum(s in S,t in T:Cst[s][t]==1) x[s][t];
    } 
    

    工作正常并给出 su=4

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-04
      • 1970-01-01
      • 2021-10-01
      相关资源
      最近更新 更多