课程时间安排数学建模.docx
- 文档编号:26375301
- 上传时间:2023-06-18
- 格式:DOCX
- 页数:31
- 大小:57.34KB
课程时间安排数学建模.docx
《课程时间安排数学建模.docx》由会员分享,可在线阅读,更多相关《课程时间安排数学建模.docx(31页珍藏版)》请在冰豆网上搜索。
课程时间安排数学建模
公司内部档案编码:
[OPPTR-OPPT28-OPPTL98-OPPNN08]
课程时间安排数学建模
课程时间安排的优化模型
摘要
排课是教务运作中的一项重要工作,同时排课问题也是一个复杂的组合优化问题,对此问题的建模和求解,难度都非常大。
多数情况下我们只是满足于求解问题的一个可行解,而对此可行解的进一步优化往往通过手工完成,效率很低。
目前有很多计算机专家和数学专家都致力于对大规模排课问题的研究,在此我们给出一个规模相对较少,约束相对较少的较为简单的排课问题。
解决排课中的问题,既能满足老师授课上机的要求又能满足学生对上机时间的合理安排。
让学校、老师和同学的满意。
让老师满意,就是安排尽量少出现像同一天同一位老师上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矩阵矩阵的乘法优化目标矩阵lingoVB
1问题重述
排课是教务运作中的一项重要工作,同时排课问题也是一个复杂的组合优化问题,对此问题的建模和求解,难度都非常大。
多数情况下我们只是满足于求解问题的一个可行解,而对此可行解的进一步优化往往通过手工完成,效率很低。
目前有很多计算机专家和数学专家都致力于对大规模排课问题的研究,在此我们给出一个规模相对较少,约束相对较少的较为简单的排课问题,请同学们加以解决。
目前,某校的计算机上机课大都安排在计算机学院,计算机学院有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,由
得矩阵C,再由
得矩阵E,确定其中的时间课程矩阵B为目标矩阵,以A、C、D影响矩阵为约束对目标矩阵进行修改即可得所求的最优目标矩阵B,以最优目标矩阵B初排课表,再根据修正矩阵E对初排课表进行修正即可得最优排课表。
2,运用我们建立的模型,对所给学校专业的课表进行了重排,并和现有的该专业的课表进行了对比分析;
3,通过我们建立的排课模型,综合优缺点分析,对学校教务处排课表问题中出现的问题给出合理的、可行性的建议。
5-6.模型的建立与求解
因为周末不安排上机,晚上可安排上机,所以一周有25节课可以上机。
每节课序号如下:
周一
周二
周三
周四
周五
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)
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)
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)
116
药学1102(35)
117
临床1101(44)
118
临床1102(43)
119
临床1103(43)
120
临床1104(44)
121
临床1105(44)
122
临床1106(45)
123
以第一位老师为例,第一位老师陈英课表如下:
陈英教师课表
星期一
星期二
星期三
星期四
星期五
一二
三四
计算机程序设计基础
计算机程序设计基础
五六
计算机程序设计基础
七八
计算机程序设计基础
九十
老师有课时不能指导学生上机,在一周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=(1110110111111111001111111),同理第二位老师的课表转换为0-1,则得到A2=(1111100011111110001111111),那么20位老师是否有空指导学生上机组成了一个20行25列的矩阵A,如下:
同理将每个班级课表也转换为0-1变量,第一个老师教了4个班:
材控1103(35)、材控1104(37)物理1101(31)、物理1102(31)。
第一个老师教的4个班组成一个4行(按顺序对应4个班)和25列(对应25节课)的矩阵:
第二个老师教了8个班,这8个班的的课表转换为0-1后组成一个8行25列的矩阵:
同理可得B3,B4…….B20(B20为第20个老师所教的班组成的矩阵)。
那么这20个老师教的123个班级组成一个123行25列的矩阵:
只有老师和学生同时有空,学生才能上机。
矩阵A1中1表示老师有空,B1表示老师所教的班有空。
由矩阵A1和B1可得矩阵C1。
矩阵C1表示老师和其所教的班级同时有空
A1=(1110110111111111001111111)
所以A1和B1中的对应的元素同时为1是,C1中相应的元素才为1,根据VB编程可得C1(见附表1),所以
同理由A2,B2可得C2,将C1,C2…….C20组成一个123行25列的矩阵,得:
确定约束条件
设x是一个123行25列的矩阵
一周25节课中每个班只需要一个老师指导一次,所以矩阵每行中只需要一个1,约束条件
(1)如下
只有当老师学生同时有空时才能上机:
根据假设在同一时间最多只有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个班上机
令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(即老师全天没课时尽可能不来指导上机)
7.模型的推广与评价
优点:
1,用0-1规划解决相互约束问题。
形成“时间段-课程-教师-机房“组合,科学合理;
2,逐步优化,层层递进,思路清晰,简单易懂;
3,本模型充分考虑教师、学生和学校的满意度要求,课表的设置更加合理和人性化;
4.本模型在建立过程中对上课时间巧妙赋值,将实际问题数值化。
缺点:
本模型在建立时,未考虑单双周排课问题,若把此因素加以考虑,将使模型更加的完整。
8.参考文献
[1]姜启源,谢金星,叶俊.数学模型(第三版).北京:
高等教育出版社2008.
[2]雷英杰,MATLAB遗传算法工具箱及应用,西安电子科技大学出版社,2005
[3]林志雄,排课数学模型及其算法,龙岩学院学报第六期,2006年12月。
9.附录:
附录一:
VB编程代码
PrivateSubcommand1_click()
Dima(25),b(25),c(25)
X1=Replace,"","")
X2=Replace,"","")
q=Len(X2)
PrintLen(X2)
Fork=0Toq\25-1
PrintLen(X2)
h=25*k
Fori=1To25
a(i)=Mid(X1,i,1)
b(i)=Mid(X2,i+h+2*k,1)
a(i)=Val(a(i))
b(i)=Val(b(i))
c(i)=a(i)*b(i)
n=n+1
Printc(i);
Next
Next
EndSub
输入数据得到的结果:
老师01
1110110111111111001111111
学生
0010100111011010101100111
0010100111011010101100111
0001100011000110011100011
0001100011000110011100011
0000100111011010001100111
0010100111011010101100111
0000100011000110001100011
0000100011000110001100011
老师02
1111100011111110001111111
学生
0001100011011010001100111
0001100011011110001100011
0001100011011010001100111
0010100011000010001100111
0000100011000110001100111
0000100011000110001100111
0000100001001110001100011
1000100001001110000100011
老师3
0111100011110110001111111
学生
0001100111001110011100001
0101101011001110011100011
0101100101001110011110011
0001100011000110001100011
0001100011000110001100011
0001100011000110001100011
0101100111100110100100111
1101100011100110010100111
1101100011000110001100111
0101101011001110001101011
0001100011000110001100001
0101100001000110001100011
0101100001000110001110011
0001100011000110001100011
0001100011000110001100011
0001100011000110001100011
0101100011100110000100111
0101100011100110000100111
0101100011000110001100111
0101100011000110001101011
老师4
0011101001111110001111111
学生
0100100001001110001100011
0100100001000110011100011
0100100001000110011100011
0001100011010111001101111
0001100111000111001101111
0001100111010110001101111
0001100001000110001100111
0001100001000110001100111
0001100001000110001101011
0000110011011110011100111
0011110011011110000100111
老师5
0001111111100111101111111
学生
0001101001000110001100011
0001100011000110001100011
0111011110001110100100011
0001100011001111001111100
0,0,0,1,1,0,1,0,0,1,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,
0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,
0,0,0,1,0,1,1,1,1,0,0,0,0,1,1,0,1,0,0,1,0,0,0,1,1,
0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,1,0,0,1,1,1,1,1,0,0,
老师6
1110100111111110010100111
学生
0000100111001010001100011
0000100111001010001100011
0100110011111100100100011
0000100011000110111111000
0000100011101011011100011
0100100101000110111101001
0000110011000111000100011
0000101011000011001100011
0000100011010011000100011
0001100011010010000100111
0000100011000110100100111
老师7
1111100011111111001111101
学生
0001100111000110011100001
1001100011000110011100001
00001000111000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程 时间 安排 数学 建模