私たちは現在の車両ルートを時間窓で改善しようとoptaplannerを使用しています。Optaplannerでランチブレイクと追加のデポの返品をモデリングする
- 私たちの運転手は、運転の開始から3時間目から5時間目までの30分のランチブレークを持つ必要があります)、ドライブが5時間より短い場合は、休憩は必要ありません。
- 一部のパッケージ(すべてではない)が特定の時間までにデポに戻ることを確認する必要があります。例えば、顧客の中には8時から8時30分までのピックアップ時間がありますが、そのパッケージ/パーセルは12時までにデポに戻さなければなりません。
第二の問題のために私たちの現在の考え方は二つの新しいクラスを作成することです:
public class ReturningCustomer extends TimeWindowedCustomer {
protected int returningId;
と
public class ReturnToDepot extends TimeWindowedCustomer {
protected int returningId;
最初の1つのモデルの顧客であることをされている特別なパッケージとし戻ってきた。 2番目はデポへの運転者の復帰を表す「偽の」顧客です。 ReturnToDepotはデポ自身と同じ場所にあります。 DroolsのIDを比較すると、同じ車両のルートにいることが保証されます。 ReturnToDepotを別の顧客として扱うことで、プランナーがルートに最適な方法を見つけることができます。
しかし、ランチブレイクのモデリングでは、どうすればよいかわかりません。
これをモデル化する良い方法はありますか?昼休みをモデル化する最良の方法は何でしょうか?私たちに正しい方向を指すサンプルがありますか?
ありがとうございました。 TimeWindowed VRPの例から始め