-1

私はルーティングにかなり慣れていません。このように機能するモデルを構築したいと考えています。

トラック A と B の 2 台あります。トラック A はデポから配送される商品を集荷します。2 番目のデポからもアイテムをピックアップする必要があります。時間枠により、最初の集荷後、2 回目の集荷場所の時間枠の前に 2 回の配達が行われる可能性があります。

トラック B は、第 1 デポから集荷し、商品を配達するだけです。

jsprit が 2 番目のデポ項目の一部をトラック B に割り当てようとしないように、明らかに、デポ 2 での集荷とその結果の配送との関係を作成する必要があります。選び出す。

結果は次のようになります。

TruckA P1 D1a D1b P2 D1c D2a D2b D1d etc
TruckB P1 D1a D1b D1c D1d...

友人の Google と数時間トロールしましたが、解決策が見つかりません。

Stackoverflow_RelatedJobs_13_and_21_inSameRoute_21_first モデルに適合するもののようです。

与えられた例は非常に基本的なもので、2 つのジョブと 1 つのルートを扱っています。複数の配達を伴う複数のルートと集荷に対処する必要があります。

ソフト制約などが含まれることは理解していますが、それらがどうあるべきか、またはそれらを作成する方法がわかりません。

誰かがすでにこれを行っていて、助けを提供できますか?

4

1 に答える 1

0

私の理解が正しければ、あなたが達成したいことは、デポ 2 で集荷されるアイテムがトラック B に送られないようにすることです。

その場合は、ルート制約を使用してそれを満たすことができます。ウォークスルー コンストレイント ドキュメントで提供されている例を参照できます。

ルート制約で、新しい車両がトラック B で、挿入されるジョブがデポ 2 でピックアップされるジョブである場合、または現在のルートにそのようなジョブが含まれている場合は、false を返します (ハード ルートの場合)。 cosntraint) またはペナルティを返します (ソフト ルート制約の場合)。

于 2016-12-05T09:35:07.950 に答える