我开始使用 OptaPlanner 实现一个学校时间表安排应用程序。
类似于文档中的课程安排示例,我想优化学校时间表,包括诸如“工作/工作时间少于 N 小时(每周)的老师理想情况下应该有一个(或两个,取决于N)休息日。
换句话说:教师的课程不应该分布在整个星期,而是每天的数量应该最大化。
课程是我唯一的计划实体,老师是一个问题事实(我猜)。也许我需要以不同的方式对其建模以访问教师时间段的总体分布(更具体地说:属于教师的所有课程时间段)。
我如何结合通常的约束,即老师不能同时上两节不同的课等,使用 ConstraintFactory 创建 ConstraintStreams(用于课程)以及更全局的属性(例如“课程紧凑性”)来定义兼职工作的教师(全天工作总比分布在整个星期更好)?我无法想象如何通过访问约束课程流来计算该分数。