OptaPlanner - Cloud Balance 附加硬约束
OptaPlanner - Cloud Balance additonal hard-constraint
我是 OptaPlanner 的新手。
我的分配问题与 OptaPlanner 示例中给出的 "Cloud Balance" 问题非常相似。但是有一个额外的硬约束。
进程可以分组并且同一组中的进程不应分配给同一个CPU。
这个约束应该在分数计算器中(EasyScoreCalculator
)。它可以检查进程组是否分配给解决方案中的相同 CPU 并对其进行评分吗?
有没有其他更好的方法,比如使用 ValueSelector?
即使无法将进程分配给 CPU(由于限制),我也会默认获得解决方案。这就是规划师的工作方式吗?
这样做:
class Service {} // ProcessGroup
class Process {
private Service service;
... // Existing properties
}
然后 drl 看起来像这样:
when
Process($id : id, $s : service, $c : computer)
Process(id > $id, service == $s, computer == $c)
then
// hard constraint broken
...
end
当然你也可以使用 EasyJavaScoreCalculation
我是 OptaPlanner 的新手。 我的分配问题与 OptaPlanner 示例中给出的 "Cloud Balance" 问题非常相似。但是有一个额外的硬约束。
进程可以分组并且同一组中的进程不应分配给同一个CPU。
这个约束应该在分数计算器中(EasyScoreCalculator
)。它可以检查进程组是否分配给解决方案中的相同 CPU 并对其进行评分吗?
有没有其他更好的方法,比如使用 ValueSelector?
即使无法将进程分配给 CPU(由于限制),我也会默认获得解决方案。这就是规划师的工作方式吗?
这样做:
class Service {} // ProcessGroup
class Process {
private Service service;
... // Existing properties
}
然后 drl 看起来像这样:
when
Process($id : id, $s : service, $c : computer)
Process(id > $id, service == $s, computer == $c)
then
// hard constraint broken
...
end
当然你也可以使用 EasyJavaScoreCalculation