感谢optaplanner团队为这样一个梦幻般的项目。
我需要在Vehicle中添加一个名为capacityCap的约束(仅当“demand< = capacityCap”时才将客户分配给车辆) 我在 Vehicle.java 中添加了一个变量capacityCap。
protected int capacityCap;
public int getCapacityCap() {
return capacityCap;
}
public void setCapacityCap(int capacityCap) {
this.capacityCap = capacityCap;
}
并在 vehicleRoutingScoreRules.drl
中添加了流口水// Hard constraints
rule "vehicleCapacityCap"
when
$vehicle : Vehicle($capacityCap : capacityCap)
$customer : Customer(demand > $capacityCap);
then
scoreHolder.addHardConstraintMatch(kcontext, -1);
end
但是在运行之后,所有客户都没有被分配。我在流口水中做错了什么?
UseCase for This: 如果我想将订单分配给 biker ,只要它的重量小于5Kg。
请询问是否需要更多信息。 感谢
答案 0 :(得分:2)
试试这个
// Hard constraints
rule "vehicleCapacityCap"
when
$vehicle : Vehicle($capacityCap : capacityCap)
$customer : Customer(vehicle == $vehicle, demand > $capacityCap);
then
scoreHolder.addHardConstraintMatch(kcontext, -1);
end