回答
一定要確保出貨量都在同一條路線的最簡單方法是標記這些貨物與技術
shipmentBuilder.addRequiredSkill("tag")
但你需要標記特定的車輛,以及:
vehicleBuilder.addSkill("tag")
並確保您使算法考慮技能/這些標籤(請參閱https://github.com/jsprit/jsprit/blob/master/WHATS_NEW.md - 您需要使用1.3.2-SNAPSHOT)。
如果你不想用標籤分配一個特定的車輛,你需要實現一個core.problem.constraint.HardRouteStateLevelConstraint這基本上是這種方法
public boolean fulfilled(JobInsertionContext insertionContext)
確保insertionContext.getJob() [這是要插入的作業]可以插入到insertionContext.getRoute()中。在這一點上,你需要知道兩件事情:
- insertionContext.getJob()的相關貨物,需要在相同的路線爲insertionContext.getJob()
- 即出貨量是否這些相關的工作之一已被分配給路由,如果是,則此路由是否與insertionContext.getRoute()相同
對於後面的信息,您需要定義爲您提供作業路由分配的狀態。我將定義一個problemState其根據更新這樣的:
static class UpdateJobRouteAssignment implements StateUpdater,JobInsertedListener,InsertionStartsListener {
StateManager stateManager;
UpdateJobRouteAssignment(StateManager stateManager) {
this.stateManager = stateManager;
}
@Override
public void informJobInserted(Job job2insert, VehicleRoute inRoute, double additionalCosts, double additionalTime) {
stateManager.putProblemState(stateManager.createStateId(job2insert.getId()), VehicleRoute.class, inRoute);
}
@Override
public void informInsertionStarts(Collection<VehicleRoute> vehicleRoutes, Collection<Job> unassignedJobs) {
for(VehicleRoute r : vehicleRoutes){
for(Job j : r.getTourActivities().getJobs()){
informJobInserted(j,r,0.,0.);
}
}
}
}
添加您的狀態更新和您的約束,以您的國家/ ConstraintManager和你做。
路線馴化的優化: 問題是模擬幾個信使,每個信使由幾個任務任務1,任務2 ..組成,它們必須在相同的路線中,並且相對於順序,1 2 ..,我們正在談論駿馬工作。 每個信使的第一個任務有一個時間窗口。 只有兩個任務的信使,我可以通過發貨,皮卡作爲第一任務和交付第二,但超過兩個? 任何想法? 謝謝。 – 2014-09-06 10:36:21
我確信您可以在此處獲得幫助:https://groups.google.com/group/jsprit-mailing-list。只需將其重新發布到那裏,您就可以捕獲已解決類似問題的用戶。 – 2014-09-08 17:47:35
- 1. 瞭解JSprit VRP約束條件
- 2. WordPress的相關的定期職位與自定義職位類型職位
- 3. 具有多個時間窗口的Jsprit VRP
- 4. wordpress類似/相關的職位標題
- 5. IE7 jquery職位:相對
- 6. 在位置之間使用時間而不是距離來優化VRP
- 7. 相關工作在JSprit,一前另一種情況:拋出:IllegalArgumentException
- 8. 減少填充相關的職位傑基爾
- 9. 爲什麼博客網址相關的職位不定
- 10. WordPress的:Sql選擇與所有相關元的職位
- 11. 其他目錄沒有相關記錄當有1職位
- 12. WordPress的 - 顯示3相關的職位,無論職位類型,自定義或其他
- 13. 相位相關
- 14. Buildbot復位失敗--hard
- 15. Lraravel從職位列表發送相同的AJAX請求,並從一個職位
- 16. 關注一個職位share/like/comment
- 17. 可以用jsprit解決VRPSPD嗎?
- 18. 與contraint
- 19. 加入職位
- 20. AdMob SMART_BANNER職位
- 21. 查詢職位
- 22. 職位問題
- 23. Android:invert RecyclerView職位
- 24. XSLT職位()
- 25. 填補職位?
- 26. Linkedin API - 職位
- 27. 自毀職位?
- 28. 排序職位
- 29. jsprit TSP和VRP求解器是否允許在點之間提供時間和距離限制?
- 30. 計算職位的位置
你能更精確一點嗎?你想要建模什麼?你想確保貨物A和B在同一條路線上嗎? – 2014-09-05 07:24:51
是的,我的問題是要確保多個裝運A,B,...在相同的路線。謝謝! – 2014-09-05 08:20:37