我正在尝试在 CPLEX 中对以下内容进行建模: 图片
这是我的尝试,这是正确的吗?我注意到这是否正确,因为索引“i”被多次使用。
tuple _IU_ {
int i;
int t;
};
{_IU_} IU = {<1, 1>, <1, 2>,
<2, 1>, <2, 2>};
tuple _IC_ {
int i;
int c;
};
{_IC_} IC = {<1, 1>, <1, 2>, <1, 3>, <1, 4>};
int NT = 31;
dvar float+ FCTU[1..NI, 1..NU, 1..NC, 1..NT];
dvar float+ FTU[1..NI, 1..NU, 1..NT];
subject to {
sixteen: forall(<i, u> in IU, t in 1..NT) FTU[i, u, t] == sum(<i, c> in IC) FCTU[i, u, c, t];
};
如果你写
execute
{
thisOplModel.settings.bigmapthreshold=1000000;
}
tuple _IU_ {
int i;
int t;
};
{_IU_} IU = {<1, 1>, <1, 2>,
<2, 1>, <2, 2>};
tuple _IC_ {
int i;
int c;
};
{_IC_} IC = {<1, 1>, <1, 2>, <1, 3>, <1, 4>};
int NT = 31;
int NI=2;
int NU=3;
int NC=4;
dvar float+ FCTU[1..NI, 1..NU, 1..NC, 1..NT];
dvar float+ FTU[1..NI, 1..NU, 1..NT];
subject to {
forall(<i, u> in IU, t in 1..NT)
sixteen:
FTU[i, u, t] == sum(<i, c> in IC) FCTU[i, u, c, t];
};
在 IDE 中您可以探索约束