【问题标题】:How to find the length of an array and sum of an array and then sumproduct of two diff arrays in cplex IBM ilog?如何在 cplex IBM ilog 中找到一个数组的长度和一个数组的总和,然后是两个 diff 数组的 sumproduct?
【发布时间】:2021-08-07 05:17:41
【问题描述】:

我有

int a ;
int b ; 
int c ;
range m= 1..a;
range n= 1..b;
range o= 1..c;
int s[m]=[11,1,1,1,1,1,1,1,1,1];
int q[m][o]=[[4,5,0,2],[3,2,1,0],[0,1,4,5],[3,2,0,1],[2,1,3,2],[4,3,2,1],[3,4,2,0],[5,0,3,1],[0,4,3,3],[4,0,4,1]];
a=length(s);
b= sum(i in m) s[i];
c=length(q[m]);
int d[o]
forall(k in o)
   int d[k]= sum(i in m) (s[i]*q[i][k]);

a、b、c、d 的陈述不正确。我不想直接初始化 a、b、c、d,我需要将 a 存储为 s[m] 的长度,即 10,b 作为 s[m] 的总和,即 20,@987654324 @ 作为 q[m][o] 的一个 D 元素的长度,即 4,d[k] 作为每个 k 的 s 和 q 的和积,分别为 68、72、22、36。帮助将不胜感激。

【问题讨论】:

    标签: python arrays cplex opl ibm-ilog-opl


    【解决方案1】:
    int a=10 ;
     
    int c=4 ;
    range m= 1..a;
    
    range o= 1..c;
    int s[m]=[11,1,1,1,1,1,1,1,1,1];
    int q[m][o]=[[4,5,0,2],[3,2,1,0],[0,1,4,5],[3,2,0,1],[2,1,3,2],[4,3,2,1],[3,4,2,0],[5,0,3,1],[0,4,3,3],[4,0,4,1]];
    //a=length(s);
    int b= sum(i in m) s[i];
    //c=length(q[m]);
    int d[k in o]=sum(i in m) (s[i]*q[i][k]);
    execute
    {
      writeln("d=",d);
    }
    

    工作正常并提供

    d= [68 72 22 36]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-16
      • 2020-05-08
      • 2021-10-09
      • 2021-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多