0

我有一个 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];
}

对此进行编码的正确方法是什么?

4

1 回答 1

1

范围城市=1..4;

范围时间=1..3;

范围模式=1..2;

范围车辆=1..2;

int 需求[次][城市][城市];

dvar int x[Mode][City][City][Vehicle][Times] in 0..10;

受{

// 在截止日期前满足需求

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];

}

工作正常。

问候

于 2015-11-30T08:54:35.817 回答