CPLEX OPL 中的有序对

问题描述 投票:0回答:1

我正在尝试在 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];
};

cplex opl
1个回答
0
投票

如果你写

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 中您可以探索约束

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.