Cplex/Opl 添加使 x 列数之和等于 0 的约束

问题描述

我有一个带有二元决策变量的二维数组,我的目标是添加约束,特定列数的总和等于 0。

解决方法

int N=5;
range r=1..N;
{int} zeroColumns={1,3};

dvar boolean x[r][r];

maximize sum(i,j in r) x[i][j];
subject to
{
  forall(i in zeroColumns) 0==sum(j in r) x[j][i];
}

给予

0   1   0   1   1
0   1   0   1   1
0   1   0   1   1
0   1   0   1   1
0   1   0   1   1