嗨 OptaPlanner 专家,
我是 OptaPlanner 的新手,我请你帮忙。
据我从这个帖子中了解到,在OptaPlanner的CVRPTW示例(版本CR4)中,实体Vehicle
(here)代表车辆的行程(而不是车辆),我想问一下如何管理一个真实的情况,即车辆数量有限,不能重叠行程。
在提到的线程中,建议是用 VehicleTrip 替换实体 Vehicle,并创建一个新的 Vehicle 实体。我想新的 Vehicle 有一个 VehicleTrip 对象的列表(因为车辆可以在一天内进行多次旅行 - 例如)。但是如何配置规划器以最小化每辆车的 VehicleTrip 数量?
应该如何修改示例?(我不关心 Swing 部分,只关心模型和规划器的配置 - listeners/DRL/XML)
编辑
我如上所述修改了模型并int getOverlappingTime()
在类中创建了方法,该方法返回相同的不同s的VrpTimeWindowedVehicleRoutingSolution
重叠时间的数量。然后我创建了以下规则:VehicleTrip
Vehicle
rule "vehicleTripsOverlapping"
when
$solution : VrpTimeWindowedVehicleRoutingSolution()
then
scoreHolder.addHardConstraintMatch(kcontext, - $solution.getOverlappingTime());
end
该方法工作正常(经过测试),但分数没有改变(似乎没有触发规则)。请问有谁可以帮助我吗?