optaplanner - VRP中的无限车辆
问题描述
如何让 Optaplanner 在 VRP 问题中使用无限或动态数量的车辆?
在分数计算期间,车辆的数量被最小化,因为每辆车都有一个基本成本。求解器应该初始化它认为方便的尽可能多的车辆
@PlanningEntityCollectionProperty
@ValueRangeProvider(id = "vehicleRange")
public List<Vehicle> getVehicleList() {
return vehicleList;
}
目前我只是用预定义的车辆数量(例如 100 000)初始化车辆列表,但我不确定这对性能的影响,因为搜索空间比必要的大得多。
解决方案
开箱即用,这是唯一的方法。您计算出数据集的最小最大车辆数,并使用它来确定车辆数。一方面,最小最大车辆数量永远不会大于访问次数。但通常你可以证明它远不止于此。
话虽如此,OptaPlanner 架构确实支持创建或删除车辆的 Move,至少在理论上是这样。没有开箱即用的动作可以做到这一点,因此您需要构建自定义动作来做到这一点 - 而且它会很快变得复杂。有一天,我们打算支持开箱即用的通用创建/删除移动。
推荐阅读
- python - 循环/迭代excel文件目录并添加到数据框的底部
- vba - VBA 字符字体样式
- microservices - 使用 Prometheus 配置微服务警报
- javascript - 开玩笑地为所有测试创建单个 knex 连接池
- java - okhttp 授权签名 hmac-sha256 不起作用
- apache - 如何使用 apache 在 MacBook Pro 中托管 .NET Core webapp
- python - Pandas:获取具有多个对应值的所有 id
- node.js - “不能在模块外使用导入语句”当我尝试摩卡咖啡时收到消息
- python - 使用 httpx lib 时出现 SSL 连接错误
- powershell - Powershell 查找给定文件夹名称中的所有空文件夹和子文件夹