一种满足复杂约束的自动排课算法
- 国知局
- 2024-10-21 15:03:59
本发明涉及智能排课,尤其涉及一种满足复杂约束的自动排课算法。
背景技术:
1、排课是学校、培训机构等教育场所日常运营中的重要环节。排课问题是指在一定的时间和资源限制下,为多个课程或活动安排合适的时间和地点,以满足各种约束和需求的过程,在当前高校教育体制及背景下,如何高效、准确、灵活地完成高校教学任务的排课,已经成为了各高校极具挑战性的问题。目前解决排课问题的难点主要包括以下几个方面:1.约束条件复杂:排课问题通常受到多种约束条件的限制,如课程时间、教室容量、教师可用性、学生选课情况等。这些约束条件相互交织,增加了问题的复杂性;2.优化目标多样:排课不仅要满足约束条件,还需要考虑多个优化目标,如最大化学生选课满意度、最小化课程时间冲突、合理利用教室资源等。在不同的场景下,优化目标可能不同,需要权衡各种因素;3.动态变化因素:实际情况中,排课可能会受到各种动态变化因素的影响,如学生退选课、教师临时请假、教室维修等。这些变化需要及时调整排课方案,增加了问题的难度;4.大规模数据处理:在大型学校或教育机构中,涉及的课程、教师和学生数量众多,数据规模较大。处理如此庞大的数据量需要高效的算法和计算能力;5.多方面的限制和偏好:除了基本的约束条件和优化目标外,还可能存在一些特殊的限制和偏好,如教师的特殊要求、课程的先后顺序限制等。满足这些个性化的需求增加了排课的难度。
2、传统的排课方法可能使用电子表格软件(如excel)或手动方式进行。随着教育规模的扩大和学生数量的增加,手动排课变得越来越困难和耗时且容易出错,而且在人工排课时,难以同时完成对学生班级、教师、教师等资源的冲突检测,且无法在其平衡度上进行有效的优化。部分现代算法如“遗传算法”虽然也可以作为解决当前场景方法,但普遍耗时长、结果准确性不稳定,无法及时发现一些冲突因子。这就需要借助计算机技术和算法来解决排课问题。为了满足智能化排课的需求,研究人员采用了多种方法和技术,包括数学建模、启发式算法等。启发式算法是一种基于经验和直觉的近似算法,用于解决复杂问题,在排课问题中,启发式算法可以用于快速生成一个可行的课程安排方案,虽然可能不是最优解,但可以作为进一步优化的基础。以大学排课问题为例,启发式算法可以结合遗传算法、模拟退火算法、蚁群优化算法等,用于优化课程安排,通过不断迭代和选择,逐步接近最优解。但是,排课问题的搜索空间通常非常大,因为可能有许多不同的课程、教师和时间安排组合。在如此大的搜索空间中找到最优解或接近最优解是具有挑战性的。同时,由于搜索空间大且约束条件复杂,启发式算法的计算效率可能成为一个问题,在某些排课问题中,不同的用户可能有不同的偏好和需求,例如特定教师的偏好、课程时间的限制等,满足这些用户特定的要求在启发式算法中可能并不容易。此外,某些排课问题可能具有复杂的约束,如课程的先后顺序、特殊课程的要求等,有效处理这些复杂约束并将其纳入启发式算法中可能也具有挑战性。
3、0-1规划是一种线性规划方法,常用于解决组合优化问题。使用0-1规划解决排课问题的基本思路是将排课问题转化为一个0-1规划问题,然后使用相应的求解算法进行求解。使用0-1规划解决排课问题的关键是构建合适的约束条件和目标函数,并选择合适的求解算法进行求解。常见的求解算法包括单纯形法、内点法、分支定界法等。但是,在大型学校或教育机构中,课程和时间段的数量可能很大,导致0-1规划问题的规模非常大,这可能会使计算时变得复杂和耗时。同时,构建的0-1规划模型需要准确反映实际的排课需求和限制条件,但模型过于复杂可能导致求解困难,而模型过于简单可能无法满足实际要求,需要在准确性和实用性之间进行平衡。
技术实现思路
1、本发明的目的在于提供一种利用多阶段的0-1规划模型,对大规模排课问题进行求解,以解决上述问题的一种满足复杂约束的自动排课算法。
2、本发明所提出的一种满足复杂约束的自动排课算法,包括以下步骤:数据清洗:针对需求筛选出此次排课需要排课的课程,并进行相应的数据检查,确保数据无误以确保此问题有解;
3、划分课程组:将课程进行划分,划分成一定数量的课程组,设计多阶段0-1规划模型;
4、模型求解:分为多个阶段,具体分几个阶段由划分课程组的数量决定,每阶段求解采用求解器进行求解,每阶段的求解是将上阶段求解的结果当作批外数据读入数据结构,与此阶段要排课的课程之间形成约束,使每阶段之间互不影响。
5、所述数据清洗步骤具体包括:输入排课的数据,并对输入排课的数据进行清洗,整理,生成可以使用的数据,对可以使用的数据提取出本学期需要排课的课程表,即任务清单,将该任务清单记为任务清单1,然后对该任务清单1数据格式进行检查数据,将有误数据,如:课程周学时和上课周次相乘之和与要求学时不一致、课程没有安排上课的老师的问题整理出,形成任务清单2,将该任务清单2交教务老师检查、核对,当教务老师对该任务清单2数据检查完毕后,如无误,进入模型求解阶段,反之,先返回任务清单1检查数据进行二次检查,再交给教务老师重新检查。
6、所述输入排课的数据包括:任务书、教学任务、公共必修、教室清单、楼宇清单、特殊需求,所述任务书为本学校所有开设的课程;所述教学任务为本学期需要开设的课程;所述公共必修为课程类型;所述教室清单为可以排课的空余教室;所述楼宇清单为教学楼之间的距离,以时间代替;所述特殊需求为老师对此门课的特殊要求,如:不能安排在周几上课、不能安排在哪栋楼宇。
7、所述划分课程组具体包括:将课程按照课程类型划分为以下几个课程组合,每个课程组合代表一次阶段:
8、①公共必修:
9、a)高学时课程;
10、b)低学时课程;
11、②专业必修:
12、a)一门课程上课班级多的课程;
13、b)一门课程上课班级少的课程;
14、③专业选修。
15、所述多阶段0-1规划模型包括:硬性约束和软性约束,所述硬性约束包括:
16、1.)满足每周课时要求,且不可超过要求学时;
17、2.)每周上两次或三次课的课程,中间需要隔至少一天上课;
18、3.)同一时间,每个教室只能安排一门课程;
19、4.)同一时间,每个老师只能上一门课程;
20、5.)同一时间,每个班级只能上一门课程,专业选修课除外;
21、6.)安排的教室座位数量大于等于选课人数上限;
22、7.)班级课表及教师课表中,同一天上午或下午的两门课,地点差值不大于20;
23、8.)同一课程号课程排课时间相同;
24、9.)同一门课安排在不同周上课,保证每周上课的时间地点一致;
25、所述软性约束包括:
26、1.)每周三下午尽量不排课;
27、2.)只上两门周4学时课程的老师,将两门课上课时间控制在两天内;
28、3.)周学时为4的课程,尽量要求一节课安排在上午,一节课安排在下午;
29、4.)教师座位数量尽量和选课人数上限接近;
30、5.)尽量满足老师的特殊需求。
31、所述包括设定参数说明及决策变量定义,设定目标函数,形成约束,求解。
32、本发明所提出的一种满足复杂约束的自动排课算法,总体流程分为三大部分,第一部分为数据清洗,第二部分为划分课程组,第三部分为模型求解。数据清洗部分针对需求筛选出此次排课需要排课的课程,并进行相应的数据检查,确保数据无误以确保此问题有解;划分课程组部分将课程进行划分;模型求解部分分为多个阶段,具体分为几个阶段由划分课程组的数量决定,每阶段求解采用求解器进行求解,将每阶段求解将上阶段求解的结果当作批外数据读入数据结构,与此阶段要排课的课程之间形成约束,每阶段之间互不影响,所以即使问题规模很大,此算法依然能给出一个令人满意的解。
本文地址:https://www.jishuxx.com/zhuanli/20241021/320368.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。