首页 文章

车辆路径(VRP)中的时间最小化

提问于
浏览
1

我正在解决车辆路径问题和简单的优化功能

最小化:所有车辆巡航距离的总和

在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进行求解 .

1 回答

  • 0
    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;
    

相关问题