我有以下 CVRPTW 问题,我正在尝试使用 OptaPlanner 找到一个好的解决方案。时间采用 hh:mm:ss 格式。
我的 DRL 文件是这样的。此外,我还定义了相对于在准备时间之前到达的硬约束。我的求解器配置是这样的,不同的是终止标签:
<termination>
<terminationCompositionStyle>OR</terminationCompositionStyle>
<maximumSecondsSpend>10</maximumSecondsSpend>
<scoreAttained>0hard/-750000soft</scoreAttained>
</termination>
这是问题陈述:
PROBLEM STATEMENT:
CustID ReadyTIME DueTIME ServiceDUR DEMAND
1 20:38:18 20:44:18 00:05:00 2
2 20:20:53 20:26:53 00:05:00 4
3 20:51:39 20:57:39 00:05:00 3
4 20:20:18 20:26:18 00:05:00 6
5 20:34:15 20:40:15 00:05:00 5
6 20:21:40 20:27:40 00:05:00 10
我有 2 辆车,可容纳 10 件物品和 1 个仓库。
这是解决方案(客户按车辆分组并按到达时间排序):
Vehicle 1 Capacity 10 - from Depot [1]
[6] D: 10 Ar.T: 20:21:40 Prev.D: 00:02:21 Next.D: --:--:--
Vehicle 2 Capacity 10 - from Depot [1]
[4] D: 6 Ar.T: 20:20:18 Prev.D: 00:01:08 Next.D: 00:02:21
[2] D: 4 Ar.T: 20:27:42 Prev.D: 00:02:24 Next.D: 00:03:38
[5] D: 5 Ar.T: 20:36:03 Prev.D: 00:03:21 Next.D: 00:02:09
[1] D: 2 Ar.T: 20:43:26 Prev.D: 00:02:23 Next.D: 00:07:23
[3] D: 3 Ar.T: 20:55:40 Prev.D: 00:07:14 Next.D: --:--:--
(D = 需求,Ar.T = 到达时间,Prev.D = 到前一个位置的距离,Next.D 到下一个位置的距离)
如您所见,车辆 2 必须运输 6+4+5+2+3=20 件物品,这超出了容量。我不明白,如果配置中的容量存在严格限制,为什么求解器会建议我使用这个解决方案。
考虑到我的规则,这不是一个可接受的解决方案。我错过了什么吗?是否存在求解器不提供解决方案的情况?是否考虑“求解器失败”终止?