三个决策变量M,O和Z,
forall (k in 1..Cells, i in 1..nbMachines, j in 1..nbComps)
{(U[k][i][j] == 1) && ( A[k][i] <= -1 +((D[k][j]*S[k][j])*52*5))
=> M[k][i][j]==1 ; }
forall (k in 1..Cells, i in 1..nbMachines, j in 1..nbComps)
{(V[k][i][j] == 1) && (A[k][i] >= -1 + ((D[k][j]*S[k][j])*52*5))
=> Z[k][i][j]==1 ;}
forall (k in 1..Cells, i in 1..nbMachines, j in 1..nbComps)
{(V[k][i][j] == 1) && ( A[k][i] >= -1 + ((D[k][j]*S[k][j])*52*5))
=> O[k][i][j]==1;}
-
如果U为1,A小于或等于D * S * 52 * 5,则M将为1 .
-
如果V为1,A大于D * S * 52 * 5,则Z将为1 .
-
如果V为1,A大于D * S * 52 * 5,则O将为1 .
在运行中,M,Z和O得到相同的值 . M和Z的总和以及M和O的总和将等于U和V.(U = V)请帮我写出正确的表达式来找出M,O和Z.U和V是在以前的步骤 . A,D和S是输入数据 .
1 回答
请提供一个决定表达式,以便我的一方不那么疯狂地猜测 . 我假设所有三行都在
subject to {}
块内 . 由于你的约束2和3实际上是相同的(除了缺少的空格和不同的字母O / Z),我猜Cplex通过为所有Decision变量分配相同的值来提出最简单的解决方案 .