回答
一定要确保出货量都在同一条路线的最简单方法是标记这些货物与技术
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. 具有多个时间窗口的Jsprit VRP
- 3. wordpress类似/相关的职位标题
- 4. 为什么博客网址相关的职位不定
- 5. 减少填充相关的职位杰基尔
- 6. WordPress的:Sql选择与所有相关元的职位
- 7. WordPress的 - 显示3相关的职位,无论职位类型,自定义或其他
- 8. Buildbot复位失败--hard
- 9. 相位相关
- 10. Lraravel从职位列表发送相同的AJAX请求,并从一个职位
- 11. 职位问题
- 12. AdMob SMART_BANNER职位
- 13. XSLT职位()
- 14. 加入职位
- 15. 自毁职位?
- 16. 查询职位
- 17. Linkedin API - 职位
- 18. 可以用jsprit解决VRPSPD吗?
- 19. 与contraint
- 20. VRP clarke wright算法
- 21. For-Loop与职位
- 22. WordPress的职位与
- 23. 杰奇是职位
- 24. SSRS子组职位
- 25. CSS动画,职位
- 26. CSS:职位问题
- 27. Open Cv相位相关
- 28. 相位相关使用FFTW
- 29. 从每三分之一的职位拉一个职位
- 30. Contraint - 唯一或空
你能更精确一点吗?你想要建模什么?你想确保货物A和B在同一条路线上吗? – 2014-09-05 07:24:51
是的,我的问题是要确保多个装运A,B,...在相同的路线。谢谢! – 2014-09-05 08:20:37