【问题标题】:Solving vehicle routing for cost optimization解决车辆路线以优化成本
【发布时间】:2016-06-07 12:26:36
【问题描述】:

我必须解决生产级应用程序的车辆路线问题。

问题陈述:-

车辆有:-

  • 类型
  • 容量
  • 舰队时间
  • 成本 = 固定成本 + 可变成本
  • 如果我们在 Fleet Time 之后使用车辆,则会增加可变成本。

上车地点:-

  • 要拾取的负载。我们必须承担所有的负载
  • 我们可以取货的时间段。
  • 拣货所用的时间。

目的地点:-

  • 车辆只能在该时间段内到达。
  • 卸载所用的时间。

车辆可以重新回到起点,也可以直接到达目的地。

目的地点将与上车点相距一定距离。因此,多辆小型车辆可以在一个点相遇(可以是起点,或者我们将始终定义该点),然后将其运送到大型车辆。

较大的车辆可以直接到达目的地。

我们也可以只运行较大的车辆。它将从所有点拾取负载。然后前往目的地。

如果我得到否决就好了。车辆也作为路线输出的一部分。

我是这个领域的新手。 jsprit 或者 optaplanner 可以提供解决方案吗?

【问题讨论】:

  • 这也是OptaPlanner的典型案例。见this video on VRPTW。你可以混合接送和下车吗?例如,出租车或救护车不能单独接载 2 名乘客,但 DHL 或 Fedex 可以在下车前在多个地点接载。这会影响域模型。
  • 是的,我们可以混合接送服务。它类似于 DHL 或 Fedex。
  • 取件可以直接派送(不用回车厂)吗?
  • 我们可以处理这样的情况吗:- 多辆小型车辆可以在单点相遇(可以是起点,或者我们将始终定义该点),然后将其运送到较大的车辆。较大的车辆可以直接到达目的地。如何对该点进行建模?
  • 是的,可以直接派送,无需遣返。我们有一辆非常大的卡车。小货车可以到那辆卡车,卡车可以去目的地。无需去仓库。卡车位置将由我们定义。

标签: optimization routing optaplanner jsprit


【解决方案1】:

我可以说 jsprit 和 optaplanner 都可以解决这个问题。我对jsprit比较熟悉。 jsprit 中有很多例子,你也可以试试。 你可以从一个简单的例子开始: https://github.com/graphhopper/jsprit/blob/master/jsprit-examples/src/main/java/com/graphhopper/jsprit/examples/SimpleExample.java

然后是有时间窗口的取件和交付问题的示例。 https://github.com/graphhopper/jsprit/blob/master/jsprit-examples/src/main/java/com/graphhopper/jsprit/examples/PickupAndDeliveryExample.java

【讨论】:

  • 在 Jsprit 中,我们如何去除约束“总是返回到同一个仓库”??
  • 我们也可以处理这样的情况:- 多辆小型车辆可以在一个点相遇(可以是起点,或者我们将始终定义该点),然后将其运送到较大的车辆。较大的车辆可以直接到达目的地。
  • @T.J.您需要使用 builder.setReturnToDepot(false) 来移除约束
猜你喜欢
  • 2019-08-01
  • 1970-01-01
  • 2018-11-18
  • 1970-01-01
  • 2018-10-27
  • 2014-04-12
  • 2021-05-15
  • 2020-08-04
  • 2021-05-25
相关资源
最近更新 更多