2016-06-10 52 views
2

我不明白如何在jsprit中使用時間窗口。如何在時間窗口中使用jsprit?

我知道這是個價值是你給車輛使用類似的方法:

setLatestArrival(1236); 

和類似的服務:

setTimeWindow(TimeWindow.newInstance(912,967)); 

但如何轉換小時,這個值? 我怎麼可以寫一個時間窗口爲2個服務:

1開始在10小時,終點爲12小時

2 - 開始於16,終點爲15H

THX的幫助。

+0

我的理解是將小時轉換爲分鐘: – splifo

+0

我認爲只要一致,就可以使用任何單位(例如小時,分鐘,秒等) - 時間窗口,服務次數,運輸時間等。 –

+0

請參閱我的評論以接受澄清的答案几個的東西。 – roganjosh

回答

2

Jsprit需要時間單位秒。如果你想使用小時,你需要先以秒爲單位轉換時間。 有一件事我想在這裏澄清,

setTimeWindow(TimeWindow.newInstance(912,967));

這裏912和967不是任務的開始時間和結束時間。這裏912是earliest start time這意味着前912 而967是latest end time這意味着你必須結束這個服務之前967服務可能有一些duration您可以在

setServiceTime提(你不能啓動此服務時間以秒爲單位)

+2

對此有一些澄清。 Jsprit實際上是_time單位agnostic_,您可以定義您的首選度量單位(我使用分鐘數),並確保始終保持一致。此外,你在技術上並不正確「最新的結束時間」,儘管這可能是因爲該屬性的設置不太清楚。這實際上是'最新的開始時間',一項工作可以在'967'之後結束。請參閱[this](https://github.com/graphhopper/jsprit/issues/233)針對替代時間窗口實現的建議功能。 – roganjosh

+0

@sutirtha我們在時間窗口(TimeWindow.newInstance(912,967))中給出的這些數字是否僅僅是白天,意味着這一天的服務必須在上午10點開始,並在下午1點結束,或者這些數字代表什麼? 912和967沒有意義。 –

+1

@ManjunathM roganjosh解釋jsprit是時間單位不可知的。你可以定義你的首選時間單位。假設你根據紀元時間戳聲明瞭一個問題,它將如下所示: setTimeWindow(TimeWindow.newInstance(timestamp1,timestamp2)); 再次,您可以花費時間usin作爲min,那麼它將如下所示: setTimeWindow(TimeWindow.newInstance(min1,min2)); 而這些時間是關於這個問題的(你可以說一天的開始時間)。 這又取決於你。您可以將開始時間作爲車輛的起點。在這種情況下,車輛時間窗口將爲(0,車輛工作結束時間) – sutirtha

相關問題