约束 - forall - CPLEX

时间:2014-11-10 16:42:55

标签: cplex

如何在CPLEX中编写这样的约束,(将l + 1放在右边)?

s_ijml + x_ijml * p_ij< = s_i' j' m(l + 1)

其中s和x是决策变量,i,j,m,l是索引

谢谢,

2 个答案:

答案 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;