在VRP问题中,如何允许Optaplanner使用无限制或动态数量的车辆?
在得分计算过程中,车辆的数量被最小化,因为每辆车都有基本成本。求解程序应初始化它认为方便的任意数量的车辆
@PlanningEntityCollectionProperty
@ValueRangeProvider(id = "vehicleRange")
public List<Vehicle> getVehicleList() {
return vehicleList;
}
当前,我只是使用预定义数量的车辆(例如100 000)来初始化车辆列表,但是由于搜索空间远远超出了必要范围,因此我不确定其性能含义。
答案 0 :(得分:1)
开箱即用,这是唯一的方法。您找出数据集的最小最大车辆数量,然后使用它来确定车辆数量。首先,最小的最大车辆数量永远不会大于访问次数。但是通常您可以证明它远不止于此。
话虽如此,至少在理论上,OptaPlanner架构确实支持创建或删除Vehicle的Move。没有开箱即用的动作可以做到这一点,因此您需要构建自定义动作来做到这一点-它将很快变得复杂。有一天,我们打算支持通用的现成创建/删除移动。