首页 > 解决方案 > 使用Cplex时如何将两个数组中的每个对应元素相乘

问题描述

有两个数组A1[a][c], A2[b][c]

现在我试图将这两个数组的每个对应元素相乘。

int a = 3;
int b = 4;
int c = 5;

range aRange = 1..a;
range bRange = 1..b;
range cRange = 1..c;

int A1[aRange][cRange] = [[1,2,2,1,3]
                          [1,1,1,1,1]
                          [1,1,1,1,1]];

int A2[bRange][cRange] = [[2,2,2,2,2]
                          [2,3,1,3,2]];


dvar boolean x[a][b];

如果决策变量选择x[1][2]然后我想得到一个数组乘以每个对应元素的结果,[1*2,2*3,2*1,1*3,3*2]就像这样。

此外,想要获得1*2+2*3+2*1+1*3+3*2=19:)..的值

标签: cplexmixed-integer-programming

解决方案


对于所有(cRange 中的 c)总和(aRange 中的 a,bRange 中的 b)x[a][b] *A1[a][c]*A2[b][c]

但右手边不见了。你想形式化一个约束或目标函数吗?您熟悉通用数学模型符号吗?


推荐阅读