1

ORTOOL と Python を使用して配送計画を作成しようとしています。私の制約は次のとおりです。

  1. 各車両には開始時刻と終了時刻があります
  2. 各車両には、デポで保管されたアイテムの独自の容量があります
  3. 各車両には独自の速度があります。

1 と 3 については、AddDimensionWithVehicleTransits を使用して正常に動作します。2 番目の制約では、車両が空の場合、車両はデポに戻ってアイテムを取得し、再び開始する必要があります。

燃料補給の例を見たので、容量が 0 未満のノードを設定すると問題なく動作します。しかし、私の場合、デポは給油ポイントであり、ソルバーはビークルをそこに戻らせません。

私の次元はそのように設定されています:

routing.AddDimensionWithVehicleCapacity(
    capacity_evaluator,
    0,
    [capacity[vehicle].get('capacity', dataconfig.default_capacity) for vehicle in data.vehicles], 
    True, 
    'Capacity'
)

基本的に、最大容量は 4 です。

Route for Vehicle1
[LOCATION, START, CAPACITY]
['Depot', '4:0', 0]
[u'7', '9:0', 1]
[u'6', '10:0', 4]
['Depot', '11:00', 4]

必要なもの:

Route for Vehicle1
[LOCATION, START, CAPACITY]
['Depot', '4:0', 0]
[u'Location1', '9:0', 1]
[u'Location2', '10:0', 4]
['Depot', '11:00', 0]
[u'Location3', '12:0', 1]
[u'Location4', '13:0', 2]
[u'Location5', '14:0', 4]
['Depot', '15:00', 0]

燃料補給ポイントをデポに配置する方法について何か考えはありますか?

よろしく

4

1 に答える 1