Optaplanner:动态添加/删除约束

问题描述 投票:0回答:1

我们可以使用Java动态添加/删除optaplanner中的约束吗?有没有例子。我希望允许用户使用某些UI在运行时添加或删除此约束。

下面的链接使用流口水说了一些话。可以使用Java完成吗?how to dynamically add / remove constraints in optaplanner

optaplanner
1个回答
0
投票

1)通常非硬编码约束就足够了。例如,没有约束说:

  • ““当安在星期五工作时,应予处罚”

有:

  • 具有雇员和DayOfWeek的DayOfWeekDislike数据类。**输入数据具有一个实例,该实例具有雇员Ann和dayOfWeek Friday。
  • [有一个约束条件说:“当有DayOfWeekDislike并且该员工有ShiftAssignment进入这样的DayOfWeek时,将受到惩罚”

在大多数用例中,此方法足以避免动态约束。请注意,您可以使用Solver.addProblemFactChange()实时添加/删除DayOfWeekDislike数据。

2]接下来,@ConstraintConfiguration可以使用@ConstraintWeight通过Solver.addProblemFactChange()实时禁用/启用约束。将约束权重设置为零得分以将其禁用。

3)如果1)和2)均失败,则确实需要动态约束。我还没有看到需要进一步发展的用例,但是我们可以提供支持。如果您确实需要这种方法,您的用例是什么?

© www.soinside.com 2019 - 2024. All rights reserved.