课程时间安排-数学建模
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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)
同理可得B3,B4…….B20(B20为第20个老师所教的班组成的矩阵)。
那么这20个老师教的123个班级组成一个123行25列的矩阵:
只有老师和学生同时有空,学生才能上机。矩阵A1中1表示老师有空,B1表示老师所教的班有空。由矩阵A1和B1可得矩阵C1。
矩阵C1表示老师和其所教的班级同时有空
A1=(11101 10111 11111 10011 11111 )
财务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)
课程时间安排的优化模型
摘 要
排课是教务运作中的一项重要工作,同时排课问题也是一个复杂的组合优化问题,对此问题的建模和求解,难度都非常大。多数情况下我们只是满足于求解问题的一个可行解,而对此可行解的进一步优化往往通过手工完成,效率很低。目前有很多计算机专家和数学专家都致力于对大规模排课问题的研究,在此我们给出一个规模相对较少,约束相对较少的较为简单的排课问题。解决排课中的问题,既能满足老师授课上机的要求又能满足学生对上机时间的合理安排。让学校、老师和同学的满意。
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
116
药学1102(35)
117
临床1101(44)
118
临床1102(43)
119
临床1103(43)
120
临床1104(44)
121
临床1105(44)
122
临床1106(45)
123
以第一位老师为例,第一位老师陈英课表如下:
陈英教师课表
星期一
星期二
星期三
星期四
星期五
一二
三四
计算机程序设计基础
计算机程序设计基础
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)
让老师满意,就是安排尽量少出现像同一天同一位老师上1-2节,7-8节,最好是1-2节面授然后4-5节课上机;让同学们满意,可从以下几方面考虑,比如,同一班级同一门课程,至少应隔一天上一次,另外对学生感到比较难学的课程尽量安排在最好的时段,上机时间要安排在面授课之后;让学校满意,就是尽量减少因出现问题而不得不为老师调课的次数。根据实际情况在具体模型建立过程中采用了0-1矩阵法,矩阵的乘法等数学方法,建立优化类数学模型来求解有效矩阵,根据有效矩阵初排课表,结合多方面因素建立修正矩阵,对初排课表逐层修改,得出最优排课表。并通过matlab实现算法和给出模型的解。
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)
(5)还有其它要求可根据高校教学的情况,酌情给出,给出时要充分考虑教学规律、教学效果和大部分老师、学生的要求。
2 条件假设
1.每个机房大约容纳90人,每个班都在45人以下,所以假设每个机房在同一时间可容纳2个班,有5个机房。所以有2*5=10个班可同时上机。
2.题目中要求(1)很容易满足,班级老师一对一。根据要求(2),可假设上机指导老师必须指导自己授课班级的学生。
生物1101(40)
106
城乡1101(34)
107
车辆1103(37)
108
汽服1101(38)
109
汽服1102(38)
110
19
黄莉
2,5
机工1103(40)
111
机工1104(40)
112
20
余志兵
1,3,4
预防1101(40)
113
预防1102(40)
114
预防1103(37)
115
药学1101(34)
2,运用我们建立的模型,对所给学校专业的课表进行了重排,并和现有的该专业的课表进行了对比分析;
3,通过我们建立的排课模型,综合优缺点分析,对学校教务处排课表问题中出现的问题给出合理的、可行性的建议。
5-6.模型的建立与求解
因为周末不安排上机,晚上可安排上机,所以一周有25节课可以上机。
每节课序号如下:
所以A1和B1中的对应的元素同时为1是,C1中相应的元素才为1,根据VB编程可得C1(见附表1),所以
同理由A2,B2可得C2,将C1,C2…….C20组成一个123行25列的矩阵,得:
确定约束条件
设x是一个123行25列的矩阵
一周25节课中每个班只需要一个老师指导一次,所以矩阵每行中只需要一个1,约束条件(1)如下
96
15
何亨
2,3,5
营销1101(36)
97
营销1102(34)
98
英语1104(30)
Fra Baidu bibliotek99
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
目前,某校的计算机上机课大都安排在计算机学院,计算机学院有5个机房用于学生上机,每个机房大约容纳90人。安排上机的课程共有4门,指导上机的教师共有24人,其中20人为课程的授课教师,见附件1,其他四人为机房的管理人员,依次为陆老师,章老师,张老师和彭老师,其中陆老师负责2个机房。共有123个班级需要上机,详细名单见附件1。教师和学生的上机时间不能和他们的授课课程时间冲突,为此我们给出了各位教师和各个班级学生的课程表,见文件夹附件2。四名管理人员可全天进行上机指导,但只能在自己负责的机房进行.
关键词:排课问题 0-1矩阵 矩阵的乘法 优化目标矩阵lingo VB
1 问题重述
排课是教务运作中的一项重要工作,同时排课问题也是一个复杂的组合优化问题,对此问题的建模和求解,难度都非常大。多数情况下我们只是满足于求解问题的一个可行解,而对此可行解的进一步优化往往通过手工完成,效率很低。目前有很多计算机专家和数学专家都致力于对大规模排课问题的研究,在此我们给出一个规模相对较少,约束相对较少的较为简单的排课问题,请同学们加以解决。
周一
周二
周三
周四
周五
1-2节
1
6
11
16
21
3-4节
2
7
12
17
22
5-6节
3
8
13
18
23
7-8节
4
9
14
19
24
9-10节(晚上)
5
10
15
20
25
老师编号和班级编号如下:
老师编号
老师姓名
老师全天没课
老师上机指导的班级
班级编号
1
陈英
周3,周5
材控1103(35)
1
材控1104(37)
2
物理1101(31)
要求:
(1)为了保证授课效果,学院规定每个老师在同一个时间段只能为1个班级进行指导;而同一时段允许有两名教师在同一个机房分别指导一个班级;
(2)上机指导老师尽可能指导自己授课班级的学生;
(3)周末尽可能不安排上机;其次晚上尽可能不安排上机。
(4)为了减少教师到新校区的次数,上机时间尽可能与其授课时间安排在同一天。
五六
计算机程序设计基础
七八
计算机程序设计基础
九 十
老师有课时不能指导学生上机,在一周25节课中老师没课改为1,有课改为0则第一位老师的课表转换为0-1则得到:
陈英教师课表
星期一
星期二
星期三
星期四
星期五
一二
1
1
1
1
1
三四
1
0
1
0
1
五六
1
1
1
0
1
七八
0
1
1
1
1
九 十
1
1
1
1
1
将表格转换为一维数组有25列(对应25节课),则A1=(11101 10111 11111 10011 11111 ),同理第二位老师的课表转换为0-1,则得到A2=(11111 00011 11111 00011 11111),那么20位老师是否有空指导学生上机组成了一个20行25列的矩阵A,如下:
3.根据要求(3),可假设周末不安排上机,这样老师学生都愿意,并假设晚上可以安排上机。
4.将要求(4)作为目标函数,(1)(2)(3)为约束条件。
3 符号说明
在模型的求解过程中有说明
4 问题分析
1,通过对所给附件中课表的安排发现影响排课的因素主要有以下几项:
其中时间又有面授时间和上机时间之分
分别以单箭头左边的为行右边的为列建立两关系间的有效矩阵A、B、D,由 得矩阵C,再由 得矩阵E,确定其中的时间课程矩阵B为目标矩阵,以A、C、D影响矩阵为约束对目标矩阵进行修改即可得所求的最优目标矩阵B,以最优目标矩阵B初排课表,再根据修正矩阵E对初排课表进行修正即可得最优排课表。
令m2= + (i=6,7,8,9,10,11,12)
以此类推,可得m3,m4……m20.
因为在lingo中@sign表示当x<0时返回-1,x>=0返回1
所以令
M=sign(-mi)+sign(-m2)+……..+sign(-m20)
因为m1 为0或1,在其前加一个负号,所以-m1取0或-1,再用数值函数,可得目标函数: max=M (即老师全天没课时尽可能不来指导上机)
只有当老师学生同时有空时才能上机:
根据假设在同一时间最多只有10个班课以上机,即 的每列之和小于等于10
确定目标函数
第一位老师周三周五全天没课,即第11到15节,20到25节没课,i为1,2,3,4表示第一个老师指导标号为1,2,3,4的4个班上机,所以
令m1= (i=1,2,3,4)
第二位老师周一周三周五全天没课,i为5,6,7,8,9,10,11,12表示表示第二个老师指导标号为5,6,7,8,9,10,11,12的8个班上机
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)
7.模型的推广与评价
优点:
1,用0-1规划解决相互约束问题。形成“时间段-课程-教师-机房“组合,科学合理;
先将123班级课表和20张老师课表转换为0-1变量,有课改为0,没课改为1,组成两个矩阵,然后可用VB编程得到一个新的矩阵,两矩阵中元素都为1时,新的矩阵对应的元素就为1,即老师和班级同时有空时为1。将多目标函数转换为单目标函数,其他的要求可直接在约束条件中满足。然后用lingo软件编程解决(其约束条件和目标函数都可用lingo的语句表示出来)
同理将每个班级课表也转换为0-1变量,第一个老师教了4个班:材控1103(35)、材控1104(37) 物理1101(31)、物理1102(31)。
第一个老师教的4个班组成一个4行(按顺序对应4个班)和25列(对应25节课)的矩阵:
第二个老师教了8个班,这8个班的的课表转换为0-1后组成一个8行25列的矩阵:
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)
土木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)
同理可得B3,B4…….B20(B20为第20个老师所教的班组成的矩阵)。
那么这20个老师教的123个班级组成一个123行25列的矩阵:
只有老师和学生同时有空,学生才能上机。矩阵A1中1表示老师有空,B1表示老师所教的班有空。由矩阵A1和B1可得矩阵C1。
矩阵C1表示老师和其所教的班级同时有空
A1=(11101 10111 11111 10011 11111 )
财务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)
课程时间安排的优化模型
摘 要
排课是教务运作中的一项重要工作,同时排课问题也是一个复杂的组合优化问题,对此问题的建模和求解,难度都非常大。多数情况下我们只是满足于求解问题的一个可行解,而对此可行解的进一步优化往往通过手工完成,效率很低。目前有很多计算机专家和数学专家都致力于对大规模排课问题的研究,在此我们给出一个规模相对较少,约束相对较少的较为简单的排课问题。解决排课中的问题,既能满足老师授课上机的要求又能满足学生对上机时间的合理安排。让学校、老师和同学的满意。
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
116
药学1102(35)
117
临床1101(44)
118
临床1102(43)
119
临床1103(43)
120
临床1104(44)
121
临床1105(44)
122
临床1106(45)
123
以第一位老师为例,第一位老师陈英课表如下:
陈英教师课表
星期一
星期二
星期三
星期四
星期五
一二
三四
计算机程序设计基础
计算机程序设计基础
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)
让老师满意,就是安排尽量少出现像同一天同一位老师上1-2节,7-8节,最好是1-2节面授然后4-5节课上机;让同学们满意,可从以下几方面考虑,比如,同一班级同一门课程,至少应隔一天上一次,另外对学生感到比较难学的课程尽量安排在最好的时段,上机时间要安排在面授课之后;让学校满意,就是尽量减少因出现问题而不得不为老师调课的次数。根据实际情况在具体模型建立过程中采用了0-1矩阵法,矩阵的乘法等数学方法,建立优化类数学模型来求解有效矩阵,根据有效矩阵初排课表,结合多方面因素建立修正矩阵,对初排课表逐层修改,得出最优排课表。并通过matlab实现算法和给出模型的解。
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)
(5)还有其它要求可根据高校教学的情况,酌情给出,给出时要充分考虑教学规律、教学效果和大部分老师、学生的要求。
2 条件假设
1.每个机房大约容纳90人,每个班都在45人以下,所以假设每个机房在同一时间可容纳2个班,有5个机房。所以有2*5=10个班可同时上机。
2.题目中要求(1)很容易满足,班级老师一对一。根据要求(2),可假设上机指导老师必须指导自己授课班级的学生。
生物1101(40)
106
城乡1101(34)
107
车辆1103(37)
108
汽服1101(38)
109
汽服1102(38)
110
19
黄莉
2,5
机工1103(40)
111
机工1104(40)
112
20
余志兵
1,3,4
预防1101(40)
113
预防1102(40)
114
预防1103(37)
115
药学1101(34)
2,运用我们建立的模型,对所给学校专业的课表进行了重排,并和现有的该专业的课表进行了对比分析;
3,通过我们建立的排课模型,综合优缺点分析,对学校教务处排课表问题中出现的问题给出合理的、可行性的建议。
5-6.模型的建立与求解
因为周末不安排上机,晚上可安排上机,所以一周有25节课可以上机。
每节课序号如下:
所以A1和B1中的对应的元素同时为1是,C1中相应的元素才为1,根据VB编程可得C1(见附表1),所以
同理由A2,B2可得C2,将C1,C2…….C20组成一个123行25列的矩阵,得:
确定约束条件
设x是一个123行25列的矩阵
一周25节课中每个班只需要一个老师指导一次,所以矩阵每行中只需要一个1,约束条件(1)如下
96
15
何亨
2,3,5
营销1101(36)
97
营销1102(34)
98
英语1104(30)
Fra Baidu bibliotek99
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
目前,某校的计算机上机课大都安排在计算机学院,计算机学院有5个机房用于学生上机,每个机房大约容纳90人。安排上机的课程共有4门,指导上机的教师共有24人,其中20人为课程的授课教师,见附件1,其他四人为机房的管理人员,依次为陆老师,章老师,张老师和彭老师,其中陆老师负责2个机房。共有123个班级需要上机,详细名单见附件1。教师和学生的上机时间不能和他们的授课课程时间冲突,为此我们给出了各位教师和各个班级学生的课程表,见文件夹附件2。四名管理人员可全天进行上机指导,但只能在自己负责的机房进行.
关键词:排课问题 0-1矩阵 矩阵的乘法 优化目标矩阵lingo VB
1 问题重述
排课是教务运作中的一项重要工作,同时排课问题也是一个复杂的组合优化问题,对此问题的建模和求解,难度都非常大。多数情况下我们只是满足于求解问题的一个可行解,而对此可行解的进一步优化往往通过手工完成,效率很低。目前有很多计算机专家和数学专家都致力于对大规模排课问题的研究,在此我们给出一个规模相对较少,约束相对较少的较为简单的排课问题,请同学们加以解决。
周一
周二
周三
周四
周五
1-2节
1
6
11
16
21
3-4节
2
7
12
17
22
5-6节
3
8
13
18
23
7-8节
4
9
14
19
24
9-10节(晚上)
5
10
15
20
25
老师编号和班级编号如下:
老师编号
老师姓名
老师全天没课
老师上机指导的班级
班级编号
1
陈英
周3,周5
材控1103(35)
1
材控1104(37)
2
物理1101(31)
要求:
(1)为了保证授课效果,学院规定每个老师在同一个时间段只能为1个班级进行指导;而同一时段允许有两名教师在同一个机房分别指导一个班级;
(2)上机指导老师尽可能指导自己授课班级的学生;
(3)周末尽可能不安排上机;其次晚上尽可能不安排上机。
(4)为了减少教师到新校区的次数,上机时间尽可能与其授课时间安排在同一天。
五六
计算机程序设计基础
七八
计算机程序设计基础
九 十
老师有课时不能指导学生上机,在一周25节课中老师没课改为1,有课改为0则第一位老师的课表转换为0-1则得到:
陈英教师课表
星期一
星期二
星期三
星期四
星期五
一二
1
1
1
1
1
三四
1
0
1
0
1
五六
1
1
1
0
1
七八
0
1
1
1
1
九 十
1
1
1
1
1
将表格转换为一维数组有25列(对应25节课),则A1=(11101 10111 11111 10011 11111 ),同理第二位老师的课表转换为0-1,则得到A2=(11111 00011 11111 00011 11111),那么20位老师是否有空指导学生上机组成了一个20行25列的矩阵A,如下:
3.根据要求(3),可假设周末不安排上机,这样老师学生都愿意,并假设晚上可以安排上机。
4.将要求(4)作为目标函数,(1)(2)(3)为约束条件。
3 符号说明
在模型的求解过程中有说明
4 问题分析
1,通过对所给附件中课表的安排发现影响排课的因素主要有以下几项:
其中时间又有面授时间和上机时间之分
分别以单箭头左边的为行右边的为列建立两关系间的有效矩阵A、B、D,由 得矩阵C,再由 得矩阵E,确定其中的时间课程矩阵B为目标矩阵,以A、C、D影响矩阵为约束对目标矩阵进行修改即可得所求的最优目标矩阵B,以最优目标矩阵B初排课表,再根据修正矩阵E对初排课表进行修正即可得最优排课表。
令m2= + (i=6,7,8,9,10,11,12)
以此类推,可得m3,m4……m20.
因为在lingo中@sign表示当x<0时返回-1,x>=0返回1
所以令
M=sign(-mi)+sign(-m2)+……..+sign(-m20)
因为m1 为0或1,在其前加一个负号,所以-m1取0或-1,再用数值函数,可得目标函数: max=M (即老师全天没课时尽可能不来指导上机)
只有当老师学生同时有空时才能上机:
根据假设在同一时间最多只有10个班课以上机,即 的每列之和小于等于10
确定目标函数
第一位老师周三周五全天没课,即第11到15节,20到25节没课,i为1,2,3,4表示第一个老师指导标号为1,2,3,4的4个班上机,所以
令m1= (i=1,2,3,4)
第二位老师周一周三周五全天没课,i为5,6,7,8,9,10,11,12表示表示第二个老师指导标号为5,6,7,8,9,10,11,12的8个班上机
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)
7.模型的推广与评价
优点:
1,用0-1规划解决相互约束问题。形成“时间段-课程-教师-机房“组合,科学合理;
先将123班级课表和20张老师课表转换为0-1变量,有课改为0,没课改为1,组成两个矩阵,然后可用VB编程得到一个新的矩阵,两矩阵中元素都为1时,新的矩阵对应的元素就为1,即老师和班级同时有空时为1。将多目标函数转换为单目标函数,其他的要求可直接在约束条件中满足。然后用lingo软件编程解决(其约束条件和目标函数都可用lingo的语句表示出来)
同理将每个班级课表也转换为0-1变量,第一个老师教了4个班:材控1103(35)、材控1104(37) 物理1101(31)、物理1102(31)。
第一个老师教的4个班组成一个4行(按顺序对应4个班)和25列(对应25节课)的矩阵:
第二个老师教了8个班,这8个班的的课表转换为0-1后组成一个8行25列的矩阵:
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)