如何在 optaplanner 的 VRP 中添加自定义 HardConstraint?
How to add custom HardConstraint in VRP for optaplanner?
感谢 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
但在 运行 之后它离开了所有客户 unassigned.Am 我在流口水时做错了什么?
用例:
如果我想将订单分配给 骑自行车的人 只有当它的重量小于 5Kg 时。
请询问是否需要更多信息。
谢谢
试试这个
// Hard constraints
rule "vehicleCapacityCap"
when
$vehicle : Vehicle($capacityCap : capacityCap)
$customer : Customer(vehicle == $vehicle, demand > $capacityCap);
then
scoreHolder.addHardConstraintMatch(kcontext, -1);
end
感谢 optaplanner 团队提供如此出色的项目。
我需要在 Vehicle 中添加一个名为 capacityCap 的约束(仅当 "demand <= capacityCap" 时才将客户分配给车辆) 我在 Vehicle.java.
中添加了一个变量 capacityCapprotected 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
但在 运行 之后它离开了所有客户 unassigned.Am 我在流口水时做错了什么?
用例: 如果我想将订单分配给 骑自行车的人 只有当它的重量小于 5Kg 时。
请询问是否需要更多信息。 谢谢
试试这个
// Hard constraints
rule "vehicleCapacityCap"
when
$vehicle : Vehicle($capacityCap : capacityCap)
$customer : Customer(vehicle == $vehicle, demand > $capacityCap);
then
scoreHolder.addHardConstraintMatch(kcontext, -1);
end