课程课程特定日特定时间没有课

时间:2015-09-22 16:04:34

标签: optaplanner

是否可以定义特定日期特定时间(例如,5和6)没有类?在opta课程课程计划。

尝试了以下方法,不起作用。

rule "saturdayHalfDay"
    when
        Lecture( period!=null, $day:period.getDay(),
        $day!=null,$time:period.getTimeslot(),
        $time!=null,
        $day.getDayIndex()==5,
        ($time.getTimeslotIndex()==5 || $time.getTimeslotIndex()==4) 
        )   

    then
     System.out.println(" $day " + $day + " $time " + $time);
        scoreHolder.addHardConstraintMatch(kcontext, -1);
end

//假设$ day.getDayIndex()== 5(5是星期六)

1 个答案:

答案 0 :(得分:0)

如果从课程课程安排示例开始,您会看到某些数据集在12:00到13:00之间没有时间段,因为午餐期间没有课程。所以这只是在这几个小时内没有添加时间段的问题。

如果在某个时段期间无法安排某些课程,那就更有趣了。只需创建一个TimeslotCoursePenatly对象(请参阅其他示例中的Penatly类),即可在数据集中添加不需要的组合。然后添加一个分数规则,用于检查是否会降低每个违反的Penalty的分数。