【发布时间】:2020-05-04 15:10:16
【问题描述】:
我正在尝试使用 OptaPlanner 解决 VRP。我有多个客户有不同的时间窗口。这是我的约束提供者
protected Constraint arrivalAfterDueTime(ConstraintFactory factory) {
return factory.from(TimeWindowedCustomer.class)
.filter(customer -> customer.getArrivalTime() >= customer.getDueTime())
.penalizeLong("arrivalAfterDueTime",
HardSoftLongScore.ONE_HARD,
customer -> customer.getArrivalTime() - customer.getDueTime());
}
protected Constraint arrivalBeforeReadyTime(ConstraintFactory factory) {
return factory.from(TimeWindowedCustomer.class)
.filter(customer -> customer.getArrivalTime() > customer.getReadyTime()
&& customer.getArrivalTime() < customer.getDueTime() )
.penalizeLong("arrivalBeforeReadyTime",
HardSoftLongScore.ONE_HARD,
customer -> customer.getReadyTime() - customer.getArrivalTime());
}
但在解决方案中,我得到的到达时间是
【问题讨论】:
标签: java optaplanner