【问题标题】:Time Minimization in Vehicle Routing (VRP)车辆路径中的时间最小化 (VRP)
【发布时间】:2017-08-24 13:54:33
【问题描述】:

我正在解决一个车辆路线问题,简单的优化函数是

最小化: 所有车辆游览距离的总和

在 AMPL 中看起来像这样

minimize objective_function:
    sum {i in city, j in city,k in vehicle} x[i,j,k]*D[i,j];

其中 x 是单个车辆的标记旅行的二进制矩阵,D 是距离矩阵

我想做的是尽量减少车队完成操作所花费的时间。其中时间计算为距离与速度“D[i,j]/S”。 有什么建议我应该如何将它添加到当前的目标函数中? 到目前为止我所做的是将我的目标函数更改为此

minimize objective_function:
    sum {i in city, j in city,k in vehicle} x[i,j,k]*(D[i,j]/S[k]);

这给了我每辆车所用时间的总和。但是由于所有车辆的时间都是并行开始的,我只需要从每辆车的时间中选择最大值。这将是完成整个任务的时间。必须在 AMPL 中对其进行编码才能使用 CPLEX 进行求解。

【问题讨论】:

    标签: cplex ampl


    【解决方案1】:
    var max_time;
    subject to definemaxtime {i in city, j in city, k in vehicle}: 
      max_time >= x[i,j,k]*(D[i,j]/S[k]);
    
    minimize objective_function: max_time;
    

    编辑:哎呀,这不太正确,它给出了单次旅行的最长时间。应该改为:

    var max_time;
    subject to definemaxtime {k in vehicle}: 
      max_time >= sum{i in city, j in city} x[i,j,k]*(D[i,j]/S[k]);
    
    minimize objective_function: max_time;
    

    【讨论】:

    • 是的,这个很完美。只需从总和中删除冒号。工作完美。太感谢了。 :)
    猜你喜欢
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    • 2021-05-27
    相关资源
    最近更新 更多