我正在尝试使用遗传算法(GA)寻找时间表生成的解决方案。在我的场景中,我查看了 6 天的时间表。周一到周六。
每天分为讲座数/时间段。(每天最多6次讲座/每个时间段如果1小时,这意味着一天6小时)
我试图代表一个由教师、学生组(组)和讲座组成的班级。我维护着一个可能的教师、可能的科目和可能的学生群体。我随机将它们分配给这些类。
所以一个类是所有这些引用的集合。所以对于每个时隙,我们都有 Class 对象表示。同样,一天是由讲座的数量组成的类对象表示。以此类推,一周由 6 天组成。
我拥有的一组可能的约束是:
1.一位老师在一个时间段内只能上一
节课 2.一位老师可以上一组科目(有限)
3.一位老师可以在某一天不上课
4.一位老师可以在某个时段不上课
以及最近可能包含的其他限制。
谁能给我一个关于如何表示这些约束或处理这些约束的想法?以及如何根据约束计算适应度分数?