基于线性规划的高校排课系统的研究.docx
《基于线性规划的高校排课系统的研究.docx》由会员分享,可在线阅读,更多相关《基于线性规划的高校排课系统的研究.docx(25页珍藏版)》请在冰豆网上搜索。
基于线性规划的高校排课系统的研究
摘要
本文建立了一个关于昆虫运动轨迹的微分方程模型,通过求解微分方程得到昆虫的运动轨迹方程,由昆虫的轨迹方程与圆盘边界相交处(-15,0)即为昆虫的离开点。
同时本文还运用matlab软件对昆虫运动轨迹和圆盘的圆周之间的图像进行了比较,更进一步对模型的结果进行了分析与检测,并对模型进行适当的推广。
关健字:
微分方程,matlab,轨迹方程
一.问题重述及分析
有一水平放置的直径为30厘米的圆盘,正在按每分钟四周的匀角速度旋转,离圆盘较远但在同一水平面上有一点光源在发光,一只昆虫在距离光源最远处的圆盘边,头对光源,这时它立即惊起按每秒1厘米的速度爬行,爬行中头总是对着光源。
试建立昆虫运动的微分方程,并问昆虫在圆盘边得哪点处离开圆盘?
问题基本分析:
本问题通过建立微分关系模型来解决实际问题。
建立平面直角坐标系,通过对昆虫运动轨迹的分析,昆虫始终都是对着光源运动,当昆虫的运动轨迹与圆盘边缘相交时即昆虫在此处离开圆盘,由此建立数学模型。
二.模型的基本假设与符号约定
(1):
基本假设
1.假设圆盘的中心为坐标原点;
2.假设昆虫本身的尺度大小对我们要研究的问题可以忽略,因此可以把昆虫看成质点来对待;
3.假设圆盘的转速始终均匀;
4.假设昆虫的运动方向始终指向光源。
(2):
符号约定
符号
变量的定义
表示圆盘的转速;
表示圆盘转动角速度;
表示圆盘转动线速度;
表示线速度在水平方向的分量;
表示线速度在垂直方向的分量;
表示昆虫运动的速度在水平方向的分量;
表示昆虫运动的速度在垂直方向的分量;
表示圆盘的半径。
三.模型建立与求解
选取直角坐标系与极坐标系,取圆盘中心为原点,昆虫开始在(15,0)处,光源在(
)处,圆盘逆时针方向旋转,如下图所示:
假设在时间
时刻,昆虫位于(
)即(
),由匀速圆周运动知识知:
角速度:
(1)
切线方向的线速度:
(2)
首先,线速度在水平与垂直方向上的分量为:
(3)
(4)
由直角坐标与极坐标转换公式
故昆虫运动的速度在水平与垂直方向的分速度分别为:
(5)
(6)
由(6)/(5)得:
(7)
对上式方程左右两边积分得:
故
(8)
当
时,有初始值:
,解得有:
(9)
即可得昆虫的运动是沿着圆心在(
),半径为
的圆作匀速圆周运动。
四.模型的计算结果检测及分析
本题所要求的是求昆虫在圆盘边哪点处离开圆盘。
由昆虫的运动轨迹方程与圆周的方程得:
二者的方程交于(-15,0)点,由此可知昆虫从这点离开圆盘。
由上述方程写出matlab程序和由程序得出二者之间的轨迹图像分别如下:
R1=15
Theta=linspace(pi,0,1000);%改变范围可控制圆的那一部分被画出来。
x=cos(Theta)*R1;
y=sin(Theta)*R1;
line(x,y,'Color','red','LineWidth',1.5);
hold
x0=0;
y0=-15/(2*pi);
R0=15*sqrt(1+1/(4*pi^2));
Theta=linspace(pi,0,1000);%改变范围可控制圆的那一部分被画出来。
x=x0+cos(Theta)*R0;
y=y0+sin(Theta)*R0;
line(x,y,'Color','black','LineWidth',0.5);
grid
legend('圆盘的圆周','昆虫的运动轨迹')
gtext('昆虫的进入点')
gtext('昆虫的离开点')
由图像可以简单的分析,昆虫从进入点到离开点一直都处在圆盘上,二者的运动轨迹相交于(-15,0)一点。
若不考虑昆虫在圆盘上发生滑动,昆虫即可以从(-15,0)这点离开圆盘。
实际上,昆虫的运动始终对着光源
以
的速度运动,在竖直方向总是会产生一个向下的分量,而线速度的竖直方向的分量向上,这就保证了昆虫在前半个周期不至于离开圆盘。
同时在水平方向会产生一个向左的分量,而圆盘的线速度在水平方向的分量向左,当昆虫在半个周期时最有可能离开圆盘。
由此我们得出的结论与实际是相符的。
五.模型的评价与推广
该模型在基本合理的简化假设下,运用数学工具解决了实际问题,从提出假设,引入基本函数,到建立微分方程,从而画出昆虫的运动轨迹图像模型,最后进一步对模型的结果进行了检测和分析。
在整个过程中,该模型可以说是用建模方法解决实际问题的一个范例。
实际上,昆虫在圆盘上的运动不仅仅局限于上述模型的情况,昆虫在圆盘上可能会发生滑动,这就要我们不得不考虑到昆虫的质量,与昆虫与圆盘间的摩擦力作用。
这样我们得出的昆虫的运动轨迹或许又会是另外一种情况,实际上这样一种模型在实际生活中有着许多应用,如:
汽车在公路转弯处得限速问题。
我们都可以在上述模型的基础上加以推广。
2012年第七届湖南工学院数学建模竞赛
题目基于线性规划的高校排课系统的研究
摘要
排课是教务运作中的一项重要工作,同时排课问题也是一个复杂的组合优化问题。
排课需要考虑时间、课程、教学区域、教师院系、班级、教师等因素。
本文对排课资源的约束条件和自身需求进行分析,将问题归结为优化问题,确定了“将教师、班级、课程三个因素优化组合,并分配到不同的时间段上,形成最终的课表”的解决方案。
首先建立各因素间的关系矩阵,再根据题设要求及日常的教学规律分别建立目标函数方程与多重约束方程。
其次,以0-1规划、矩阵乘法的方法分别将教师、班级分配到课表上的不同时间段上,形成时间+班级+教师的组合。
建立起了一个系统的线性规划模型,该模型具有直观性、易理解性可操作性强等特点。
在此基础上,运用lingo软件进行计算机编程计算,实现资源分配的优化处理。
最终,编排出一份尽可能多地满足班级、教师、课程的要求的课表。
关键字:
组合优化,0-1规划,线性规划模型,lingo
一.问题重述
排课是教务运作中的一项重要工作,同时排课问题也是一个复杂的组合优化问题,对此问题的建模和求解,难度都非常大。
多数情况下我们只是满足于求解问题的一个可行解,而对此可行解的进一步优化往往通过手工完成,效率很低。
目前有很多计算机专家和数学专家都致力于对大规模排课问题的研究,在此我们给出一个规模相对较少,约束相对较少的较为简单的排课问题,请同学们加以解决。
目前某校的计算机上机课大都安排在计算机学院,计算机学院有5个机房用于学生上机,每个机房大约容纳90人。
安排上机的课程共有4门,指导上机的教师共有24人,其中20人为课程的授课教师,见附件1,其他四人为机房的管理人员,依次为陆老师,章老师,张老师和彭老师,其中陆老师负责2个机房。
共有123个班级需要上机,详细名单见附件1。
教师和学生的上机时间不能和他们的授课课程时间冲突,为此我们给出了各位教师和各个班级学生的课程表,见文件夹附件2。
四名管理人员可全天进行上机指导,但只能在自己负责的机房进行.
要求:
(1)为了保证授课效果,学院规定每个老师在同一个时间段只能为1个班级进行指导;而同一时段允许有两名教师在同一个机房分别指导一个班级;
(2)上机指导老师尽可能指导自己授课班级的学生;
(3)周末尽可能不安排上机;其次晚上尽可能不安排上机。
(4)为了减少教师到新校区的次数,上机时间尽可能与其授课时间安排在同一天。
(5)还有其它要求可根据我校的情况,酌情给出,给出时要充分考虑教学规律、教学效果和大部分老师、学生的要求。
你要解决的问题:
(1)根据你提出的要求(可以是上述要求的某个或多个,也可以是你自己合理设定的),确定约束条件,给出目标函数,建立数学模型;
(2)设法求出满足约束条件的一个可行解,详细给出你的求解步骤;
(3)根据你的目标,设计算法,求解问题的一个最优解或近似最优解。
二.问题分析
排课需要考虑的方面比较多,要确保教师、教室、课程、班级时间等资源部发生冲突。
课表安排的主要任务是把各班级的课表汇总,然后根据教学计划或教学环节制订实验室的课表、全校各班级的课表。
根据学校的实际情况和学校所面临的问题,可以将这类题归结为以老师的满意情况为目标的函数的多约束的规划问题。
为了使课表的编排准确、合理、快速、高效,充分利用学校资源,根据已知条件提出以下可行性要求:
1、老师的优先级:
不妨按照老师的课表进行分析,分为老师在某个时间段有课、老师在某个时间段没课,但是在这一天内有课、老师在整体都没课(此时对于老师而言可供选择的空间相对而言可能更大)三种情况,再分别为这三种情况赋0、1、2三种不同的权值。
2、课程时段的规定:
将每天分为4个时间段(上午两个,下午两个),周末以及晚上不上课。
同时,每个班级每个星期只上一次上机课。
由于周课时数为20个,五个机房要想将所有的123个班级的上机时间排成机房的课表安排,只能适当对一些班级进行合班。
考虑到实际的教学进度情况,对每个班的课表进行分析,将本来在一起上课的两个大班作为一个合班的对象。
问题一:
通过对题设所给数据及要求进行分析建立各因素间的关系矩阵,以所有老师上机课的优先选择的时间的最大值,即老师对于课表的满意度作为模型的目标函数,建立多重约束方程,再以0-1规划、矩阵乘法的方法分别将教师、班级分配到课表上的不同时间段上,形成时间+班级+教师的组合。
问题二:
通过运用lingo软件对模型进行求解计算,实现资源分配的优化处理。
最终,编排出一份尽可能多地满足班级、教师、课程的要求的课表。
并对结果进行分析。
问题三:
根据计算得出的可行课表安排做适当的调整,得出模型的一个近似最优解。
三.模型假设
1.不考虑节日等因素对课程安排的影响;
2.假设晚上、星期六与星期日不排课;
3.假设每个班每个星期只安排一次上机课;
4.假设排课班级完全服从课表的安排;
5.假设所上机的课程对这五个机房没有任何要求。
四.符号说明
符号
变量说明
表示第
个教师;
表示第
个时间段;
表示第
个教师所教的第
个班级;
表示第
个教师在
时间段优先级矩阵表;
表示第
个教师与所带班级
在
时间段是否有空;
表示第
个教师所教的第
个班级在
时间段是否上课;
表示第
个教师在
时间段是否有多个班级上课;
表示第
个教师在
时间段是否上课;
表示在第
个时间段有多少个理论课教师上课;
表示第
个教师所教的班级进行分班(单班与合班)的个数;
五.模型建立和求解
5.1系统模型
5.1.1资源设置
不妨对老师的课表进行分析,可分为:
1.老师在某个时间段有课表示老师在此时间段没空;
2.老师在某一天有理论课,但是这天其他时间没课,表示老师有空安排上机课;
3.老师整天没课(此时相对于老师而言可供选择的空间可能更大),表示老师在此时间段优先安排上机课。
1)老师可用时间表
表示第
个教师可用以及优先选择的时间段:
(1)
2)用矩阵
表示老师可以给班级上课的时间段:
(2)
3)班级可用时间表
表示班级可用的时间段:
(3)
4)班级的合班情况用时间表
表示:
(4)
5)老师的上课情况用时间表
表示:
(5)
5.1.2模型设计
排课系统变成一个线性规划问题,其目标函数可以叙述为:
在符合条件的情况下,使得那些需要安排上机课的老师有足够多的优先时间总量,即所有老师安排上机课的优先时间的最大值。
其目标函数可以表示为:
根据排课系统的要求,我们可以将目标函数的约束条件表示如下:
1.约束条件表示第
个老师所教的所有班级中在同一时间段最多只能有两个班同时上课(合班)
(6)
2.该约束条件表示第
个老师第
个班级在每个星期只上一次课:
表示第
个老师所教的班级的总班数。
(7)
3.判断条件:
4.该约束表示在每个时间段上课的理论课老师数目最多不超过5位。
(8)
5.该约束表示同一时间最多只能有9个班级分别在五个机房上课。
考虑到合班的情况,合班时每个机房可以采用一个理论课老师与一个机房管理员一起上课的搭配(若用两位理论课老师一起上课,就可能出现三位老师一起上课的局面,造成不必要的浪费),由于考虑到陆老师负责两个机房,这样便出现其中一个机房必须只能一个班级上课,所以在同一时间段上上课的总班级数最多不能超过9个。
(9)
5.2求可行解
排课系统模型设计后,我们采用Lingo软件对我们所求的模型进行求解,求出满足满足约束条件的一组可行解。
理论课老师上机时间表
课节
星期
星期一
星期二
星期三
星期四
星期五
1.2节
丁胜,刘琼,胡慧君,王磊,乔瑞,
黄远林,刘琼,欧阳琳,
3.4节
丁胜,黄远林,欧阳琳,
张葵,李琳,
王思鹏,杨治,胡慧君,涂新辉,何亨,余志兵,
张葵,
黄远林,王思鹏,胡慧君,王磊,欧阳琳,
5.6节
陈英,田萍芳,杨治,胡慧君,余志兵,
廖建平,田萍芳,李琳,何亨,黄莉,
陈英,丁胜,王思鹏,田萍芳,黄莉,余志兵,
廖建平,田萍芳,张志辉,欧阳琳,余志兵,
王思鹏,廖建平,吴志祥,胡慧君,涂新辉,
7.8节
黄远林,张葵,刘琼,杨治,王磊,张志辉,余志兵,
陈英,丁胜,廖建平,田萍芳,杨治,
黄远林,廖建平,杨治,李琳,王磊,余志兵,
黄远林,王思鹏,刘琼,田萍芳,吴志祥,
丁胜,张葵,廖建平,吴志祥,乔瑞,余志兵,
由上述所得,此表为理论课老师的上机时间安排表,由问题重述可知“四名机房管理员课可全天候进行上机指导,但只能在自己负责的机房进行指导。
”又因为老师对于5个机房没有具体的要求在那个机房上课,不妨将每个时间段的老师分别分配到五个机房,自己或与管理员一起合作进行上机指导。
在上述表格中就不对其理论课老师在哪个机房进行区分了。
经分析对于陆老师所负责的两个机房,至多只能有一个合班上课(由于陆老师要负责两个机房)。
很显然对于星期一7.8节课的杨治、王磊老师,星期三3.4节课的何享老师,5.6节课的黄莉老师,7.8节课的杨治老师,以及星期五7.8节课的乔瑞老师(即上表中带下标的)的上机课时间并不能很好的安排出来,所以这些老师可以在每天的晚上或星期六或星期日安排上机课。
在排课的过程中,首先声明这五个机房没有任何区别,不同的课程对不同机房没有优先选择,下列是Lingo程序运行的结果:
机房上机课安排表
课节
星期
星期一
星期二
星期三
星期四
星期五
1.2节
机工1106,法学1102国贸1103,车辆1102,机工1102,机工1108,
采矿1102,德语1101,热能1101,
3.4节
金材1101,采矿1101采矿1103,城乡1101汽服1102
机电1101,工业1102
交工1101交工1103,无材1101,环设1103冶金1103,冶金1101(英才)冶金1101,英语1104,临床1104,
机电1103,
环工1101环工1102,化工1103矿加1103,车辆1101,交运1102,车辆1103,汽服1101,
5.6节
材控1104,工管1101工管1103,给排水1102土木1105,环设1101冶金1102,临床1105临床1106,
人力1101人力1102,财务1101财务1103,给排水1103给排水1104,营销1101营销1102,机工1104,
材控1103,机工1105金材1103,材控1101矿加1101,财务1102,机工1103,临床1101临床1103,
英语1102英语1103,会计1101,国贸1101,热能1102生物1101,药学1101药学1102,
材控1102化工1102,英语1101,建筑1101建筑1102,环设1102冶金1104,土木1106土木1107,
7.8节
安全1102安全1103,化工1101,工商1101工商1102,无材1103,交运1101,国贸1102,临床1102,
物理1101物理1102,土木1102土木1103,社保1102信息(电专)1101,会计1103,土木1104无材1102,
安全1101化工1106,行管1101信息(电专)1102,给排水1101,工业1101,机工1101,预防1101预防1103,
化工1104化工1105,交工1102矿加1102,法学1101国贸1104,工管1102会计1102,装饰(专)1001,
金材1102土木1101,机电1102机电1104,行管1102社保1101,建艺1101,机工1107,预防1102,
对于星期一7.8节课的无材1103、交运1101班,星期三3.4节课的英语1104班,5.6节课的机工1103班以及7.8节课的给排水1101班,星期五7.8节课的机工1107班,这六个班级不符合实际要求是由于班级的课表和机房决定的,所以时间上的冲突可以进行调整的,可以把这六个班级分别安排到晚上或星期六或星期日上机。
5.3求解最优解
由上述模型所得可行解,对于星期一7.8节课的杨治教的无材1103班、王磊老师教的交运1101班,星期三3.4节课的何享老师教的英语1104班,5.6节课的黄莉老师教的机工1103班,7.8节课的杨治老师教的给排水1101班,以及星期五7.8节课的乔瑞老师教的机工1107班(即上表中带下标的),不妨做如下调整:
可以通过调查他们自己的具体要求,讨论出他们在哪一个时间段有空余时间,可以在晚上或者星期六、星期天的时间进行安排上机,以此调整为一个近似最优的课表。
5.4结论
本系统采用了线性规划的模型,较全面地考虑了排课系统的必备约束条件和补充约束条件,使得系统的可行度以及人性化度更高。
随着教育事业的不断发展,排课系统越来越重要,成为高校教务系统管理中一个重要的任务,排课已经不仅仅是管理员一个人就能完成的,需要教师、学生一起参与,改变原有的人工排课方式,常用互联网上的web方式实现数据的提交、查询、修改和相关信息的发布,使得排课系统更加透明化。
课表编排是一个典型的问题,合理性和可靠性都是要求考虑的指标。
对于排课系统中的其他问题还是一个继续研究的过程,在不久的将来,我们一定会有新的突破,新的创新,这需要我们大家的一起努力。
六.模型改进和评价
模型的缺点:
1、模型对于目标函数的建立过于单一,仅考虑老师对于课表的满意度,并不能够反应学生对于课表的安排的要求;
2、模型考虑的约束条件过少,其次对于变量的定义及时间、课程、班级、老师四者间的关系的定义过于混乱;
3、模型存在一些班级、老师的课表并不满足上述所得课表的安排。
模型的优点:
1、建立关联关系,使模型建立更清晰、明确、具有条理性;
2、用0-1规划解决相互约束问题。
形成“时间段-课程-教师-教室“组合,科学合理;
3、逐步优化,层层递进,思路清晰,简单易懂;
4、充分考虑各个教师、教室、课程的要求,具有良好的实用性。
模型的推广
很显然由于机房管理员老师是可以全天进行上机指导,对于上述所给模型中我们便没有对于管理员所负责的机房加以区分了,对于实际上机机房进行安排时我们是任意的进行排列,这显然是不合理的,这样就可能导致部分管理员总是处于工作状态而其他管理员却总是处在休息状态的不公平的情况。
在此不妨做如下推广:
不妨将每个管理员负责的机房分别进行编号,根据具体的约束条件(可以是管理员自己的要求)建立模型,相对而言更加均衡的去分配管理员的轮班时间,同时也将各班级、各老师的上课教室也给顺势的安排出来。
七.参考文献
[1]苏杰明,陈建勋,基于线性规划模型的高校排课系统,
2012.4.20
[2]阎威,排课系统中遗传算法的应用研究,
2012.4.20
[3]张林,基于蚁群算法的排课系统的研究与设计,
2012.4.20
[4]姜启源,数学模型,北京:
高等教育出版社,2003年
八.附录
model:
sets:
plane/1..20/:
C,D,X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12,X13,X14,X15,X16,X17,X18,X19,X20,K1,K2,K3,K4,K5,K6,K7,K8,K9,K10,K11,K12,K13,K14,K15,K16,K17,K18,K19,K20;
num1/1..4/;num2/1..8/;num3/1..11/;num4/1..11/;num5/1..4/;num6/1..11/;num7/1..7/;num8/1..9/;num9/1..4/;num10/1..7/;num11/1..8/;num12/1..4/;num13/1..4/;num14/1..4/;num15/1..3/;num16/1..2/;num17/1..2/;num18/1..7/;num19/1..2/;num20/1..11/;
link1(num1,plane):
B1,Y1;link2(num2,plane):
B2,Y2;link3(num3,plane):
B3,Y3;link4(num4,plane):
B4,Y4;link5(num5,plane):
B5,Y5;link6(num6,plane):
B6,Y6;link7(num7,plane):
B7,Y7;link8(num8,plane):
B8,Y8;link9(num9,plane):
B9,Y9;link10(num10,plane):
B10,Y10;link11(num11,plane):
B11,Y11;link12(num12,plane):
B12,Y12;link13(num13,plane):
B13,Y13;link14(num14,plane):
B14,Y14;link15(num15,plane):
B15,Y15;
link16(num16,plane):
B16,Y16;link17(num17,plane):
B17,Y17;link18(num18,plane):
B18,Y18;link19(num19,plane):
B19,Y19;link20(num20,plane):
B20,Y20;
link(plane,plane):
A;
endsets
data:
A=@file('LS.txt');
B1=@file('B1.txt');B2=@file('B2.txt');B3=@file('B3.txt');B4=@file('B4.txt');B5=@file('B5.txt');B6=@file('B6