课程时间安排的优化模型摘要排课是教务运作中的一项重要工作,同时排课问题也是一个复杂的组合优化问题,对此问题的建模和求解,难度都非常大。
多数情况下我们只是满足于求解问题的一个可行解,而对此可行解的进一步优化往往通过手工完成,效率很低。
目前有很多计算机专家和数学专家都致力于对大规模排课问题的研究,在此我们给出一个规模相对较少,约束相对较少的较为简单的排课问题。
解决排课中的问题,既能满足老师授课上机的要求又能满足学生对上机时间的合理安排。
让学校、老师和同学的满意。
让老师满意,就是安排尽量少出现像同一天同一位老师上1-2节,7-8节,最好是1-2节面授然后4-5节课上机;让同学们满意,可从以下几方面考虑,比如,同一班级同一门课程,至少应隔一天上一次,另外对学生感到比较难学的课程尽量安排在最好的时段,上机时间要安排在面授课之后;让学校满意,就是尽量减少因出现问题而不得不为老师调课的次数。
根据实际情况在具体模型建立过程中采用了0-1矩阵法,矩阵的乘法等数学方法,建立优化类数学模型来求解有效矩阵,根据有效矩阵初排课表,结合多方面因素建立修正矩阵,对初排课表逐层修改,得出最优排课表。
并通过matlab实现算法和给出模型的解。
先将123班级课表和20张老师课表转换为0-1变量,有课改为0,没课改为1,组成两个矩阵,然后可用VB编程得到一个新的矩阵,两矩阵中元素都为1时,新的矩阵对应的元素就为1,即老师和班级同时有空时为1。
将多目标函数转换为单目标函数,其他的要求可直接在约束条件中满足。
然后用lingo软件编程解决(其约束条件和目标函数都可用lingo的语句表示出来)关键词:排课问题 0-1矩阵矩阵的乘法优化目标矩阵 lingo VB1 问题重述排课是教务运作中的一项重要工作,同时排课问题也是一个复杂的组合优化问题,对此问题的建模和求解,难度都非常大。
多数情况下我们只是满足于求解问题的一个可行解,而对此可行解的进一步优化往往通过手工完成,效率很低。
目前有很多计算机专家和数学专家都致力于对大规模排课问题的研究,在此我们给出一个规模相对较少,约束相对较少的较为简单的排课问题,请同学们加以解决。
目前,某校的计算机上机课大都安排在计算机学院,计算机学院有5个机房用于学生上机,每个机房大约容纳90人。
安排上机的课程共有4门,指导上机的教师共有24人,其中20人为课程的授课教师,见附件1,其他四人为机房的管理人员,依次为陆老师,章老师,张老师和彭老师,其中陆老师负责2个机房。
共有123个班级需要上机,详细名单见附件1。
教师和学生的上机时间不能和他们的授课课程时间冲突,为此我们给出了各位教师和各个班级学生的课程表,见文件夹附件2。
四名管理人员可全天进行上机指导,但只能在自己负责的机房进行.要求:(1)为了保证授课效果,学院规定每个老师在同一个时间段只能为1个班级进行指导;而同一时段允许有两名教师在同一个机房分别指导一个班级;(2)上机指导老师尽可能指导自己授课班级的学生;(3)周末尽可能不安排上机;其次晚上尽可能不安排上机。
(4)为了减少教师到新校区的次数,上机时间尽可能与其授课时间安排在同一天。
(5)还有其它要求可根据高校教学的情况,酌情给出,给出时要充分考虑教学规律、教学效果和大部分老师、学生的要求。
2 条件假设1. 每个机房大约容纳90人,每个班都在45人以下,所以假设每个机房在同一时间可容纳2个班,有5个机房。
所以有2*5=10个班可同时上机。
2. 题目中要求(1)很容易满足,班级老师一对一。
根据要求(2),可假设上机指导老师必须指导自己授课班级的学生。
3.根据要求(3),可假设周末不安排上机,这样老师学生都愿意,并假设晚上可以安排上机。
4.将要求(4)作为目标函数,(1)(2)(3)为约束条件。
3 符号说明在模型的求解过程中有说明4 问题分析1,通过对所给附件中课表的安排发现影响排课的因素主要有以下几项:其中时间又有面授时间和上机时间之分分别以单箭头左边的为行右边的为列建立两关系间的有效矩阵A 、B 、D ,由A B⨯得矩阵C ,再由C D ⨯得矩阵E,确定其中的时间课程矩阵B 为目标矩阵,以A 、C 、D 影响矩阵为约束对目标矩阵进行修改即可得所求的最优目标矩阵B ,以最优目标矩阵B 初排课表,再根据修正矩阵E 对初排课表进行修正即可得最优排课表。
2,运用我们建立的模型,对所给学校专业的课表进行了重排,并和现有的该专业的课表进行了对比分析;3,通过我们建立的排课模型,综合优缺点分析,对学校教务处排课表问题中出现的问题给出合理的、可行性的建议。
5-6.模型的建立与求解4.1 因为周末不安排上机,晚上可安排上机,所以一周有25节课可以上机。
每节课序号如下:周一周二周三周四周五1-2节 1 6 11 16 213-4节 2 7 12 17 225-6节 3 8 13 18 237-8节 4 9 14 19 249-10节(晚上) 5 10 15 20 25老师编号和班级编号如下:老师编号老师姓名老师全天没课老师上机指导的班级班级编号1 陈英周3,周5 材控1103(35) 1材控1104(37) 2物理1101(31) 3物理1102(31) 4 2 丁胜1,3,5 金材1101(40) 5金材1102(41) 6金材1103(39) 7土木1101(29) 8土木1102(43) 9土木1103(42) 10机工1105(38)11机工1106(38)12 3 黄远林 5 安全1101(34)13安全1102(35)14安全1103(34)15化工1104(47)16化工1105(46)17化工1106(46)18采矿1101(37)19采矿1102(38)20采矿1103(37)21环工1101(35)22环工1102(34)23 4 王思鹏3,5 矿加1101(37)24矿加1102(36)25矿加1103(37)26交工1101(33)27交工1102(35)28交工1103(33)29化工1101(45)30化工1102(47)31化工1103(47)32材控1101(37)33材控1102(36)34 5 张葵2,5 机电1101(36)35机电1102(38)36机电1103(38)37机电1104(38)38 6 廖建平 3 人力1101(44)39人力1102(43)40社保1101(30)41英语1101(30)42英语1102(28)43英语1103(28)44行管1101(36)45行管1102(36)46社保1102(29)47信息(电专)1101(34)48信息(电专)1102(31)49 7 刘琼1,3 法学1102(31)50法学1102(31)51德语1101(35)52国贸1103(36)53国贸1104(37)54工商1101(43)55工商1102(44)56 8 田萍芳 5 工管1101(29)57工管1102(30)58工管1103(31)59会计1101(40)60会计1102(40)61会计1103(41)62财务1101(31)63财务1102(30) 64财务1103(30)65 9 吴志祥1,3,5 建筑1101(25) 66建筑1102(24)67建艺1101(33)68装饰(专)1001(41)69 10 杨治1,3,5 土木1104(41)70土木1105(41)71无材1101(43)72无材1102(42)73无材1103(43)74给排水1101(36)75给排水1102(36)76 11 胡慧君1,3,5 冶金1102(29)77冶金1103(30)78冶金1104(33)79环设1101(32)80环设1102(32)81环设1103(32)82车辆1101(产业)(34)83车辆1102(37) 84 12 涂新辉1,3,5 土木1106(42)85土木1107(43)86冶金1101(32)87冶金1101(英才)(40)88 13 李琳2,4,5 给排水1103(37)89给排水1104(35)90工业1101(40)91工业1102(39)92 14 王磊 5 机工1101(40)93机工1102(40)94交运1101(36)95交运1102(36)96 15 何亨2,3,5 营销1101(36)97营销1102(34)98英语1104(30)99 16 乔瑞1,3,5 机工1107(38)100机工1108(38)101 17 张志辉2,4,5 国贸1101(38)102国贸1102(35)103 18 欧阳琳3,5 热能1101(40)104热能1102(40)105生物1101(40)106城乡1101(34)107车辆1103(37)108汽服1101(38)109汽服1102(38)11019 黄莉2,5 机工1103(40)111机工1104(40)11220 余志兵1,3,4 预防1101(40)113预防1102(40)114预防1103(37)115药学1101(34)116药学1102(35)117临床1101(44)118临床1102(43)119临床1103(43)120临床1104(44)121临床1105(44)122临床1106(45)1234.2以第一位老师为例,第一位老师陈英课表如下:0则第一位老师的课表转换为0-1则得到:五 六 1 1 1 0 1 七八0 1 1 1 1 九 十11111将表格转换为一维数组有25列(对应25节课),则A1=(11101 10111 11111 1001111111 ),同理第二位老师的课表转换为0-1,则得到A2=(11111 00011 11111 00011 11111),那么20位老师是否有空指导学生上机组成了一个20行25列的矩阵A ,如下:⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=1011111111111111111100101.................................................. (11111111110001111111000111111111111100111110110111)A4.3同理将每个班级课表也转换为0-1变量,第一个老师教了4个班:材控1103(35)、材控1104(37) 物理1101(31)、物理1102(31)。
第一个老师教的4个班组成一个4行(按顺序对应4个班)和25列(对应25节课)的矩阵:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=00011000110011100011000110001100011001110001100011001110110101011001010011100111011010101100101001111B第二个老师教了8个班,这8个班的的课表转换为0-1后组成一个8行25列的矩阵:⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=000110011100001100010000100011001110001100001000010011100011000110000100011001110001100011000010001100111000010001100101000110011101101000110001100011000110111100011000110001100111011010001100011001112B同理可得B3,B4…….B20(B20为第20个老师所教的班组成的矩阵)。