CPLEX OPL:确保满足需求到期日的约束
CPLEX OPL: Constraint that ensures demand due dates are met
我有一个 CPLEX OPL 模型,可以最小化城市间货物的总运输成本。 x 是我的主要(整数)决策变量。下面提到的所有其他变量都是整数。我想为这个模型添加截止日期。这意味着时间 t(例如 3)的需求必须在 1 到 t(例如 1 到 3)期间运输。但是,我无法在 1 到 t 期间求和。
subject to {
// Satisfy demands before due date
forall(i,j in City, t in Times)
ctDueDate:
sum(m in Mode, v in Vehicle, s in 1..t) x[m][i][j][v][s] == sum(s in 1..t) Demand[s][i][j];
}
正确的编码方式是什么?
range City=1..4;
range Times=1..3;
range Mode=1..2;
range Vehicle=1..2;
int Demand[Times][City][City];
dvar int x[Mode][City][City][Vehicle][Times] in 0..10;
subject to {
// Satisfy demands before due date
forall(i,j in City, t in Times)
ctDueDate:
sum(m in Mode, v in Vehicle, s in 1..t) x[m][i][j][v][s]
== sum(s in > 1..t) Demand[s][i][j];
}
工作正常。
此致
我有一个 CPLEX OPL 模型,可以最小化城市间货物的总运输成本。 x 是我的主要(整数)决策变量。下面提到的所有其他变量都是整数。我想为这个模型添加截止日期。这意味着时间 t(例如 3)的需求必须在 1 到 t(例如 1 到 3)期间运输。但是,我无法在 1 到 t 期间求和。
subject to {
// Satisfy demands before due date
forall(i,j in City, t in Times)
ctDueDate:
sum(m in Mode, v in Vehicle, s in 1..t) x[m][i][j][v][s] == sum(s in 1..t) Demand[s][i][j];
}
正确的编码方式是什么?
range City=1..4;
range Times=1..3;
range Mode=1..2;
range Vehicle=1..2;
int Demand[Times][City][City];
dvar int x[Mode][City][City][Vehicle][Times] in 0..10;
subject to {
// Satisfy demands before due date
forall(i,j in City, t in Times)
ctDueDate: sum(m in Mode, v in Vehicle, s in 1..t) x[m][i][j][v][s] == sum(s in > 1..t) Demand[s][i][j];
}
工作正常。
此致