java - JSprit算法软硬时间窗

标签 java routing jsprit

我有带有时间窗的服务列表。是否可以以必须满足某些时间窗口(硬时间窗口)而其他时间窗口配置为软时间窗口的方式配置 JSprit?

在此先感谢您的帮助

最佳答案

可以通过Service.Builder 为服务分配时间窗口来实现硬时间窗口。默认情况下,服务没有任何时间窗口。可以通过实现 core.problem.constraint.SoftActivityConstraint 来考虑软时间窗

https://github.com/jsprit/jsprit/blob/master/jsprit-core/src/main/java/jsprit/core/problem/constraint/SoftActivityConstraint.java

在这里,您可以惩罚“迟到”的到达。请记住,插入新 Activity 不仅会产生局部影响,即对两个相邻 Activity 产生影响,而且还会对整个路线产生影响,因为它会改变所有后续 Activity 。反过来,这可能会产生额外的惩罚,这些惩罚也需要加以考虑。要在恒定时间内对此进行评估,您需要对全局影响进行某种近似。添加软约束后,您还需要在目标函数中考虑它(see for example 及其各自的代码示例以了解其工作原理)。

关于java - JSprit算法软硬时间窗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25328497/

相关文章:

java - 如果对象的一个​​值重复,则从 ArrayList 中删除

java - 编织 Eclipse 3.7 插件项目中包含的 AspectJ 方面

java - java中如何处理sql异常?

linux - Graphhopper 服务器 - 创建和使用自定义车辆类型

java - 无法通过使用 Jsprit 向服务提供时间窗口来获得正确的优化路线

java - 如何知道 Activity 何时在 Fragment 中死亡

asp.net-mvc - Asp.net MVC 路由不明确,同一页面有两条路径

php - 如何在codeigniter中修改路由

java - JSprit:如何最大化可用车辆的数量以减少时间

java - 如何提供自定义的地点之间的旅行时间?