3

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

提前感谢您的帮助

4

1 回答 1

4

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

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

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

于 2014-09-05T07:20:44.527 回答