如何在optaplanner中动态添加/删除约束

如何在optaplanner中动态添加/删除约束,optaplanner,Optaplanner,我们正在为VRP使用optaplanner。我们面临的一个挑战是,我们的许多制约因素都是针对某一地区的。例如,在一个州,技术人员不能跨越州际线,而在其他州,技术人员可以跨越州际线 在这种情况下,我们希望创建一个通用解决方案,用户可以在其中添加硬约束,通用解决方案从数据库中选择该约束以提供解决方案 有人设计过这样的解决方案吗 谢谢或者使用不同的元素: general.drl ny-specific.drl ca-specific.drl tx-specific.drl 或者,如果需要解决同时

我们正在为VRP使用optaplanner。我们面临的一个挑战是,我们的许多制约因素都是针对某一地区的。例如,在一个州,技术人员不能跨越州际线,而在其他州,技术人员可以跨越州际线

在这种情况下,我们希望创建一个通用解决方案,用户可以在其中添加硬约束,通用解决方案从数据库中选择该约束以提供解决方案

有人设计过这样的解决方案吗


谢谢

或者使用不同的
元素:

  • general.drl
  • ny-specific.drl
  • ca-specific.drl
  • tx-specific.drl
或者,如果需要解决同时包含tx和ny员工的单个数据集,则执行以下操作

class Employee {
    State state;
}

rule noCross
when
    Employee(state = "Texas") // doesn't apply to California
    // ... crosses lines
then
    ...
end