次の 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
10 個のアイテムと 1 つのデポを収容できる 2 台の車両があります。
これが解決策です (車両ごとにグループ化され、到着時間によって並べ替えられた顧客):
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 個のアイテムを輸送する必要があり、これは容量を超えています。構成の容量に関連する厳しい制約がある場合に、ソルバーがこのソリューションを提案する理由がわかりません。
私のルールを考えると、これは受け入れられる解決策ではありません。何か不足していますか?ソルバーが解を提供しない状況はありませんか? 「ソルバーが失敗した」終了が考えられますか?