JSprit算法软硬时间窗口
Posted
技术标签:
【中文标题】JSprit算法软硬时间窗口【英文标题】:JSprit Algorithm soft and hard time windows 【发布时间】:2014-08-15 14:41:05 【问题描述】:我有带有时间窗口的服务列表。是否可以将 JSprit 配置为必须满足某些时间窗口(硬时间窗口)而其他时间窗口配置为软时间窗口?
提前感谢您的帮助
【问题讨论】:
【参考方案1】:可以通过Service.Builder
为服务分配时间窗口来实现硬时间窗口。默认情况下,服务没有任何时间窗口。软时间窗可以通过实现core.problem.constraint.SoftActivityConstraint来考虑
https://github.com/jsprit/jsprit/blob/master/jsprit-core/src/main/java/jsprit/core/problem/constraint/SoftActivityConstraint.java
在这里,您可以惩罚“迟到”的到达。请记住,插入新活动不仅会产生局部影响,即对两个相邻活动产生影响,而且还会对整个路线产生影响,因为它会转移所有后续活动。反过来,这也会产生需要考虑的额外处罚。要在恒定时间内对此进行评估,您需要对全局影响进行某种近似。添加软约束后,您还需要在目标函数中考虑它(see for example 及其各自的代码示例以了解其工作原理)。
【讨论】:
以上是关于JSprit算法软硬时间窗口的主要内容,如果未能解决你的问题,请参考以下文章