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

时间:2017-09-06 13:03:47

标签: optaplanner

我们正在使用optaplanner进行VRP。我们面临的一个挑战是,我们的许多限制都是针对当地的。例如,在一个州,技术人员不能越过州线,而在其他州,技术人员可以越过州线。

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

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

由于

1 个答案:

答案 0 :(得分:1)

使用不同的<scoreDrl>元素:

  • 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