【问题标题】:Optaplanner - VRP number of vehicles optimizationOptaplanner - VRP 车辆数量优化
【发布时间】:2019-02-19 16:50:17
【问题描述】:

如何优化使用的车辆数量并优化最适合 CVRP 的车辆,没有时间窗限制。

例如——

  1. 我正在运行 10990 公斤的负载,有 15 辆车(5 辆车,容量分别为 3000Kg、750Kg 和 7500Kg)。我已禁用 distanceFromLastCustomerToDepot 规则。

  2. 当我使用 optaplanner 示例运行它时,它会选择 3 辆车,每辆车 7500 公斤。

  3. 由于负载为10990Kg,我希望它可以装在2辆7500kg的车辆上,或者可以装在3辆7500 + 3000 + 750的车辆上?

如何根据行驶距离对此进行优化?

【问题讨论】:

    标签: optaplanner


    【解决方案1】:

    添加一个硬约束或一个重权重的软约束来惩罚使用的车辆数量。

    话虽如此,有研究表明,在某些情况下,即使有这种限制,本地搜索也可能难以减少车辆数量,尤其是最后一辆车。自定义的、有针对性的动作应该可以很好地克服这一点。但在实践中,为了方便起见,人们通常只运行第二个求解器,它通过简单地开始使用较少的车辆来减少对一辆车的强制执行。

    【讨论】:

    • 谢谢!您如何建议实施对使用的车辆数量进行惩罚的软约束?我尝试为测试创建流口水规则,如下所示。但它不工作。如何获取drools文件中使用的车辆数量? -- 规则 "numberOfVehicles" 当 $vehicleRoutingSolution : VehicleRoutingSolution($vehicleList : vehicleList) 然后 System.out.println("Vehicle List size = ");结束
    • 当 $v : Vehicle() 存在时 Visit(previous = $v) then addHard(-1)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-30
    相关资源
    最近更新 更多