如何在CPLEX中编写这样的约束,(将l + 1放在右边)?
s_ijml + x_ijml * p_ij< = s_i' j' m(l + 1)
其中s和x是决策变量,i,j,m,l是索引
谢谢,
答案 0 :(得分:0)
试试这个:
{int} i_indexes = ...;
{int} j_indexes = ...;
{int} m_indexes = ...;
{int} l_indexes = ...;
dvar float+ s[i_indexes][j_indexes][m_indexes][l_indexes];
forall(i in i_indexes, j in j_indexes, m in m_indexes, l in l_indexes) {
l != last(l_indexes) => s[i][j][m][l] <= s[i][j][m][nextc(l_indexes, l)];
}
答案 1 :(得分:0)
在上面的答案中,'index'不能是{int},对于你需要使用'range'的索引。 只需将代码更改为:
int N_i=...;
int N_j=...;
Range I_indexes=1..N_i;
Range I_indexes=1..N_j;