Drools Planner 提供有关是否可以实施的建议:
问题涉及团队组建。强约束:学生必须被分到 N 个组中 每个组必须包含 X 个组成员 弱约束(可能是有序或加权的):每个组必须有一个数学分数 > Y 的成员 每个组必须由具有相同兴趣的成员组成(可能需要在运行时添加弱约束)
Drools Planner 提供有关是否可以实施的建议:
问题涉及团队组建。强约束:学生必须被分到 N 个组中 每个组必须包含 X 个组成员 弱约束(可能是有序或加权的):每个组必须有一个数学分数 > Y 的成员 每个组必须由具有相同兴趣的成员组成(可能需要在运行时添加弱约束)
是的,它看起来很像 Manners2009 示例,它是关于将每张桌子(= 组)的每个座位(= 组位置)分配给客人(= 学生)并确保每张桌子(= 组)至少有 1民主主义者(= 数学分数 > Y 的学生)。然后只需为相同的兴趣规则添加一个软约束。
Manners2009 示例在 5.4.0.Final(它将在 5.5.0.Beta1 中)中的通用移动工厂不是最新的,并且使用 SimpleScore 而不是 HardAndSoftScore,所以还要看看课程课程灵感的例子。
为了避免在同一兴趣规则的软约束上出现“分数陷阱”(参见手册),我怀疑您也必须使用 swapPillarMove(在正常的 changeMove 和 swapMove 之上)。