2017-02-17 6 views
0

jspritVRPSPDvehicle routing problem with simultaneous pickup and delivery)を解決できますか?jspritはVRPSPDを解決できますか?

VRPSの同時ピックアップと配達(VRPSPD)は次の問題です。一連の顧客は輸送ネットワーク上にあります。各顧客iは、特定の量の商品(di)または廃棄物(pI)の配送またはピックアップオペレーション(またはその両方)を要求し、 オペレーションのために一度訪れなければならない。このサービスは、限られた容量の車両Qによって提供される。各車両は、配達しなければならない総額に等しい量の商品を運ぶデポを残して、それがピックアップした合計額に等しい量の廃棄物を運ぶデポに戻る。ツアーの各ポイントでは、各車両はその能力よりも大きな総負荷を運ぶことができません。目標は、ツアーの全長を最小限に抑えることです。 jspritがVRPSPDを解決できるかどうか、どうすればいいですか?

+0

あなたはもう少し編集として、この上で手の込んだていただけますか?答えへのコメントとして、場所Aで配送が行われ、次にB、C、D、Eなどで配送が行われる状況が記述されています(私は考える)。ピックアップ。これは、私が誤解していない限り、制約された問題の論理的な解決策ではありません。あなたが解決策にうまく収束していないか、または「if if possible」条項に違反する制約があります。 – roganjosh

+0

この質問に関連していますか? http://stackoverflow.com/questions/41111292/jsprit-deliver-sooner-rather-than-later-if-at-destination – roganjosh

答えて

0

私がこの問題を理解していれば、それができると信じています。さて、2つのお店があるとしましょう。最初の店は(5,5)、もう1つは(3,7)です。最初の店にはピックアップと配達があり、2番目の店には配達のみがあります。

したがって:

Pickup pck_shop1 = Pickup.Builder.newInstance("pck").addSizeDimension(0, 1).setLocation(5, 5)).build(); 
Delivery dlv_shop1 = Delivery.Builder.newInstance("dlv_1").addSizeDimension(0, 1).setLocation(5, 5)).build(); 
Delivery dlv_shop2 = Delivery.Builder.newInstance("dlv_2").addSizeDimension(0, 1).setLocation(3, 7)).build(); 
+0

お返事ありがとうございます。私はあなたのやりたかったほどの努力をしましたが、同時に同じ店でピックアップと配達を取るために。ピックアップと配達を持っている多くのお店があり、それらのうちの1つは配達要求よりもはるかに多いものの1つで、それをp1とd1と定義した。 p1をピックアップするのに十分ではありません、jspritはd1を競争し、車の容量が十分になるまで、適切な時間はp1を完了するために戻る適切な時間。この状況は、p1とd1の完了を同時に保証することはできません。 –

+0

私が考えることができる最も簡単な方法は、同じ顧客でピックアップと配送を組み合わせる前処理を行い、Jspritを使用して問題を解決するときに各顧客が正確に1つの仕事を持つようにすることです。ソリューションを入手した後、後処理を行い、これらの結合ジョブを分割することができます。これにより、同じ顧客でのピックアップと出荷が同時に行われることが保証されます。しかし、この方法は容量制約に違反する可能性があります。 より洗練された方法は、ハードアクティビティ制約を適用して、同じ顧客のピックアップと配送が同時に行われるようにすることです。 –

関連する問題