optaplanner - 在运行时禁用规划变量
optaplanner - disable PlanningVariable at runntime
在我的课程项目中,我有 2 个规划变量:时间段和房间。
现在我希望用户能够选择他是想同时计划它们(现在正在发生)还是他只想计划时间段或房间从而禁用两者之一作为计划变量。
我现在使用 2 个注释:
@PlanningVariable(valueRangeProviderRefs = {"roomRange"})
public Room getRoom()
..
@PlanningVariable(valueRangeProviderRefs = {"timeslotRange"})
public Timeslot getTimeslot()
但是如何在运行时禁用其中之一?
OptaPlanner 的 @PlanningPin
等尚不支持开箱即用。投票给 https://issues.redhat.com/browse/PLANNER-124
解决方法建议:
A) 添加一个硬性约束,如果计划实体的一个变量被固定,则在将其分配给不同的东西时对其进行惩罚。
不是最有效的。
B) 带有自定义着法选择的建议 A(= 深兔子洞)
在我的课程项目中,我有 2 个规划变量:时间段和房间。 现在我希望用户能够选择他是想同时计划它们(现在正在发生)还是他只想计划时间段或房间从而禁用两者之一作为计划变量。
我现在使用 2 个注释:
@PlanningVariable(valueRangeProviderRefs = {"roomRange"})
public Room getRoom()
..
@PlanningVariable(valueRangeProviderRefs = {"timeslotRange"})
public Timeslot getTimeslot()
但是如何在运行时禁用其中之一?
OptaPlanner 的 @PlanningPin
等尚不支持开箱即用。投票给 https://issues.redhat.com/browse/PLANNER-124
解决方法建议:
A) 添加一个硬性约束,如果计划实体的一个变量被固定,则在将其分配给不同的东西时对其进行惩罚。 不是最有效的。
B) 带有自定义着法选择的建议 A(= 深兔子洞)