我有带有时间窗的服务列表。是否可以以必须满足某些时间窗口(硬时间窗口)而其他时间窗口配置为软时间窗口的方式配置 JSprit?
在此先感谢您的帮助
最佳答案
可以通过Service.Builder
为服务分配时间窗口来实现硬时间窗口。默认情况下,服务没有任何时间窗口。可以通过实现 core.problem.constraint.SoftActivityConstraint 来考虑软时间窗
在这里,您可以惩罚“迟到”的到达。请记住,插入新 Activity 不仅会产生局部影响,即对两个相邻 Activity 产生影响,而且还会对整个路线产生影响,因为它会改变所有后续 Activity 。反过来,这可能会产生额外的惩罚,这些惩罚也需要加以考虑。要在恒定时间内对此进行评估,您需要对全局影响进行某种近似。添加软约束后,您还需要在目标函数中考虑它(see for example 及其各自的代码示例以了解其工作原理)。
关于java - JSprit算法软硬时间窗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25328497/