2017-10-26 1 views
0

おそらく、これは一部の人にとっては興味深い問題になる可能性があります。私はあなたがどこから来たのかを知るために以前の方向を計算するために、getTransportCost関数で訪れた前の場所をどのように含めることができるかを知る必要があります。そして、次の場所までの距離を計算することができます。以前の場所にアクセスしたときにgetTransportCost()関数をどのように追加できますか?

たとえば、次のように:あなたは私の問題を見ることができ、次の画像で getTransportTime(Location previus, Location from, Location to, double departureTime, Driver driver, Vehicle vehicle){ return getDistanceFromAPreviusLocation(previus, from, to); } 、あなたは現在、それは車を来ているところから、前方向を考慮せずに部分距離を計算しています、ピックアップポイントと2つの配達ポイントを持っています通りで。

問題:

アルゴリズムの使用、これらの距離の合計を結果として取得ルートを計算する点から点へ独占的に距離。あなたがそれを訪問する前のポイントを考慮せずに小さな距離の合計のようにそれを描画する場合、あなたはこれに似たことがあります。あなたが従うことのユニークなパスと同じ溶液を描く場合

enter image description here

は、しかし、あなたはこの問題を持っています。この画像では、次の画像

enter image description here

を見て、あなたが訪問したpreviusの場所を考慮可能な解決策を見ることができます。

考えられる解決策:

enter image description here

ありがとう!

答えて

0

なぜあなたはgetTransportCostの前の場所を持つ必要がありますか?最適解は全経路コスト計算によって計算されるので、デフォルトでjspritはimage2を最良解として返すべきです。あなたの画像とgetTransportCostのリンクを理解できませんでした)。

jspritを呼び出す前に、各ポイントペアの距離行列を計算する必要があります。何かのように:

  pickup deliveryX deliveryY 
pickup  0  10   15 
delivery X 12  0   13 
delivery Y 11  18   0 
+0

次の距離は、オンザフライで計算され、それは訪問先の場所によって異なります。 –

+0

これは以前の場所に依存しません。私は答えを更新しました。 –

+0

私はあなたの問題をより良く説明するために質問を編集しました。私は今すぐ知っている、それは以前の訪問場所に依存していないが、より良い解決策を得るためには必要だ。 –

関連する問題