【发布时间】:2019-11-01 21:10:37
【问题描述】:
我是第一次使用 Cplex Java API。
我想最小化矩阵中某些索引上的值的总和,这是由条件给出的。
例如,如果我有矩阵M = {{ 0, 1, 2, 1},{ 1, 2, 1, 0},{ 0, 1, 1, 0},{ 1, 1, 1, 2}}。
我想计算两个总和,第一,所有元素的总和 e = 1,第二,元素等于 1 的索引。
因此,元素等于1 的索引是{{0,1} {1,0} {1,2} {2,1} {2,2} {3,0} {3,1} {3,2}。
第一种情况的结果是 9 (1+1+1+1+1+1+1+1+1)`,第二种情况的结果是 24 (0+1+1+0+1+2+2+ 1+2+2+3+0+3+1+3+2)。
我不确定如何使用IloNumVar[] 并使用IloLinearNumExpr 创建一个表达式,该表达式用于求和并最小化函数,而矩阵M 是int[][] 类型。
【问题讨论】:
-
如果
M的类型是int[][],那么这里就不需要使用CPLEX。相反,您可以只编写两个循环,扫描M并计算所需的值。在您的情况下,优化器可以更改的变量到底是什么?