OptaPlanner を使用して、提供されている例と非常によく似た車両のルーティングの問題を最適化しています。
私は次の課題に直面しており、いくつかのアイデアに感謝します。
顧客への訪問の一部は、他の訪問と関係があります。次に例を示します。
- 訪問は、別の訪問と同時に開始する必要があります。
- 訪問は、別の訪問が終了してから 2 時間後に開始する必要があります。
- 訪問は、別の訪問に割り当てられた同じ車両に割り当てる必要があります。
課題は次のとおりです: 訪問の 1 つを移動する際に、スコアを下げることなく訪問の移動を許可するにはどうすればよいでしょうか?
各訪問は異なるチャイン (異なる車両に割り当てられている) にある可能性があるため、提供されているすべての移動セレクターは、1 回の訪問のみを変更する移動を提供する可能性が高くなります。このような移動は、依存関係のためにスコアが低くなる可能性が高く、選択されることはありません。
同じ開始シナリオ: 1 回の訪問の開始時間を変更する動きは、スコアが低くなります。同じ車両のシナリオ: 1 回の訪問を別の車両に変更すると、スコアが低くなります。
現在、タブー検索を使用しており、満足のいく結果が得られています。遅い受け入れが答えかもしれません。
ありがとう。