车辆路线与时间窗minizinc示例

时间:2015-11-23 02:55:41

标签: constraint-programming minizinc

我想在minizinc建模语言中用时间窗(http://oai.cwi.nl/oai/asset/2036/2036A.pdf)表达车辆路径问题,以便使用约束编程来解决它。

由于我不熟悉该建模语言并且总体上限制编程,我想知道是否有人已经将这个问题表达为这种语言。我找到了“vrp(没有时间窗口)https://github.com/MiniZinc/minizinc-benchmarks/blob/master/vrp/vrp.mzn

的以下示例基准

如何修改模型以包含交货时间窗口?

1 个答案:

答案 0 :(得分:1)

我修改了该模型以包含时间窗口。我删除了与容量相关的逻辑,因为在我的情况下我不需要它。

基本上你需要添加这些约束:

    % Departure time constraints
constraint
    forall(i in 1..N, j in 1..N)(
        DepartureTimes[i] + TravelTimes[i, j] - DepartureTimes[j] <= (1 - x[i, j]) * 1000000
    );

    % Time windows constraints
constraint
    forall(i in 1..N)(
        TimeWindows[i, 1] <= DepartureTimes[i]
    );

constraint
    forall(i in 1..N)(
        DepartureTimes[i] <= TimeWindows[i, 2]
    );

以下是完整代码:https://github.com/jlhonora/vrp-minizinc

参考文献:Desrochers,Martin,et al。 “带时间窗的车辆路线:优化和近似。” 车辆路线:方法和研究 16(1988):65-84。