题目:请你排课表
请你排课表
摘要:
该数学模型是在课程可以合理编排的前提下,以尽可能有效利
用教室座位为主要准则进行编排,通过分析影响排课问题的各种条件,
利用计算机算法及数据结构知识建立的,首先得出符合基本要求的没
有时间、空间冲突的课程表,然后根据各个教师,课程的周课时数量
进行筛选、优化,最后得出最合理方案。
该模型依据教师为主线排课表,考虑到相同课程尽量分散,循
环程序没有以教师序号进行,可以满足要求。另外,由于第八类课程
只能在机房上课,而且教师、课程数固定,可以在程序之外排入课表。
关键词:
模 型 程 序 优 化 循 环
一、提出问题
1. 现有课程 40 门,编号为 C01~C40;教师共有 25 名,编号为 T01~
T25;教室 18 间,编号为 R01~R18。具体属性及要求见表 1,表
2,表 3:
2. 课表编排规则:每周以 5 天为单位进行编排;每天最多只能编排 8
节课(上午 4 节,下午 4 节),特殊情况下可以编排 10 节课(晚
上 2 节),每门课程以 2 节课为单位进行编排,同类课程尽可能不
安排在同一时间。
3.要解决的问题:
①请你结合实际情况建立数学模型,通过编程计算,给出较为
合理的课表编排方案,分析你所给出的方案的合理性。
②如果不准晚上排课,排课结果是否有所变化,如何变化?
③对教师聘用,教室配置给出合理化建议。
二、分析问题
排课问题实质上是一个优化问题。在该问题中,我们首先分析
影响排课方案的因素,得出合理方案以及最优方案的评价标准,层层
递进,先建立合理排课方案的模型,再调整为最优排课方案的模型。
本模型是在课程可以合理编排的前提下,以尽可能有效利用教室座位,
为仔细的同学提供尽可能多的座位资源为主要准则进行编排。在问题
一中利用算法、程序得出的合理排课方案,再分别根据具体要求筛选
优化,得出最佳方案。
三、条件假设
1、不考虑单、双周,每周上课时间从星期一到星期五。由于每
门课按两节为单位上课,将每天上午下午分别按两大节计算,晚上按
一大节计算。对于某些 3 课时的课按两大节计算(由于占用某一节课,
导致其他课程不能正常与其安排在同一半天)
2、假设所有的教室在同一栋楼里,并且教室的编号是按照顺序
编排的。
四、模型的建立与求解
排课问题要考虑三大部分的相互协调,即:教师、课程、教室。
在本模型中我们将以教师为主线,使另外两个因素尽量满足其要求。
下面我们分析三部分之间的联系。
教师与课程 某个课程只能有固定几个教师任教,教师与课程
所要求的教室类型需要匹配,上课时间需要匹配。
教师与教室 教师类型匹配
课程与教室 上课人数不大于教师座位数,教师类型匹配
教师每周的总课时数不得超过总课时数,对于同一门课程,所有
教师的周课时数加起来必须等于该课程要求的周课时数。
该问题涉及的数据极为繁杂,但是数据的处理方式具有简单性、
重复性,人工计算耗时费力,我们借助于强大的程序设计工具 Java
语言进行处理。
对于每个教师,我们的目标是输入数据后得到一个 5*5 矩阵的课
表,因此可以得到基本步骤如下: