全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 经管文库(原现金交易版)
432 0
2023-11-12
Python基于遗传算法实现智能排课系统设计方案+程序源代码

# 智能排课系统设计方案

## 需求分析

根据所给学生goal,course和subject信息,确定每个学生要上的课程。要教室、教具、老师等全部因素,尽可能充分利用学校的资源。

1. 不同学生有不同目标,需要根据学生目标给学生分配学期课程
2. 课程分不同subject,每个subject中包含本学期需要给学生安排的该subject的课时数,当前设置的course的总课时数不足时需要循环上课。
3. 每个subject下包括众多course,每个course有不同的教室类型和教具要求
4. 当教室、教具或教师资源无法满足所有学生的不同需求时,选择放弃少部分学生的需求

## 程序输入

包括学生、教室、教具、和学期时间等设置的json文件

## 程序原理

用学生的goal信息给学生进行聚类。如图把数据中的学生聚为四类,按照聚类结果进行排课可以一定程度上考虑不同学生的需求,聚类的数量也能调整,聚类数设置越大,学生之间就分得越细致,需要投入更多教学资源。这样一来在一定程度上满足了充分利用教学资源的目标。

![image-20211121182348552](G:\lxy\智能排课系统\CoursesSchedule\image-20211121182348552.png)

聚类中学生goal情况显示如下:

![image-20211121183738242](G:\lxy\智能排课系统\CoursesSchedule\image-20211121183738242.png)



同一个cluster下的学生goal叠加,安排为这个聚类的goal。再根据这个goal列表设置这些学生需要学习的课程。同一个subject下的course会重复上课,以满足对每个学生每个subject规定课程数的要求。

整理完需要排的课程,接下来按照同一时间点,老师、教具、教室资源不冲突,把每节课安排的时间,教室和教具按照遗传算法的方式找出来。

<img src="G:\lxy\智能排课系统\CoursesSchedule\v2-960dcb5691fc3c1d494154cb197e9b4b_720w.jpg"style="zoom:80%;" />

左侧序号表示一个课时,由于当前的数据只用到了一个教室,所以全部课程呈线性排列。

![image-20211121185421343](G:\lxy\智能排课系统\CoursesSchedule\image-20211121185421343.png)

## 后续可设置部分

cluster数量

遗传算法的种群大小,迭代代数,变异率

## 程序输出

根据需求给出每节课程安排的信息列表。输出为json文件

至于每节课应该由哪些学生参加,可以根据cluster中的学生分布给出






4c86db291087522a8fb41b07b112100.png


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群