选课问题建模作业_第1页
选课问题建模作业_第2页
选课问题建模作业_第3页
选课问题建模作业_第4页
选课问题建模作业_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、选课问题摘要随着教育事业在中国的不断发展,大学在选修课上与限选课可的选修程序做了进一步调整,将传统的选课进行细化,针对每个专业都有不同的要求,通过不同的选课要求对不同专业的学生进行定向培养。针对问题一,首先对问题进行分析,找到问题要求不同科目之间的联系,然后建立规划模型,通过matlab软件编程求解,最终得出至少选5门课,以及5门课的组合方式。针对问题二,以选修最少的学分为目标函数,通过分析各门课之间的连系,建立整数规划模型,再通过matlab编程最终得出得出了选修课的8门的29种组合选课模式。针对问题三,在前两问的基础上,首先对问题进行综合分析,且要考虑公众心理对不同选修课的偏好程度,以及把

2、不同选修课进行分级,把限选课最多,次之,限选人数最少的情况要考虑进去,对此提出了三种选课方案,通过matlab软件进行编程得出了每种方案按对应的选课组合模式,且在选课过程中以编号为6的课为选课中心。关键词: 规划模型 ; matlab ;整数规划 ;组合模式1、 问题的重述 某同学考虑下学期的选课,其中必修课只有一门(2学分),可供选修的限定选修课(限选课)有8门,任意选修课(任选课)有10门。由于有些课程之间相互关联,所以可能在选修某门课程时必须同时选修其他某门课程,课程信息见下表:限选课课号12345678学分55443332同时选修要求12任选课课号9101112131415161718

3、学分3332221111同时选修要求864576按学校规定,学生每个学期选修的总学分数不能少于20学分,因此该同学必须在上述18门课中至少选修18个学分,学校还规定学生每学期选修任选课的比例不能少于所修总学分(包括2个必修学分)的1/6,也不能超过所修总学分的1/3。学院也规定,课号为5,6,7,8的课程必须至少选一门。试问:1)为了达到学校和院系的规定,该同学下学期最少应该选几门课?应该选哪几门课?2)若考虑在选修最少学分的情况下,该同学最多可以选修几门课?选哪几门?3)若考虑到选修时课程能否如愿选上的问题,请多准备几套选择方案。已知课程限选人数为1,2,3,4限选人数最多,5,6,7,8次

4、之,13、17、18限选人数最少。请考虑选课时的先后顺序(先选者先录,人满停选)。2、 问题的分析根据提出的问题,学生要选修的课程必须同时满足下列四条:任何学生每个学期选修的总学分数不能少于20学分(包括2个必修学分),所以除了必修课程外,任何学生必须在上述18门课中至少选修18个学分学校规定,课号为5,6,7,8的课程必须至少选一门。学校规定学生每学期选修任选课的比例不能少于所修总学分(包括2个必修学分)的1/6,也不能超过所修总学分的1/3。即。注意,总修学分包括必修课的2学分。三个问题都需要选课方案。比如第一个问题,“为了达到学校和院系的规定,该同学下学期最少应该选几门课?应该选哪几门课

5、?”学校规定最少学分是20分,去掉2分的必修学分,那么要从剩下18门课程中选择至少18个学分。问题问的是“最少应选几门课?”按照最少18分的限制,从1门、2门、3门、4门、5门收入来思考,发现至少应该选5门课,因为如果选4门课,要达到最少学分势必需要选那些学分值大的课,只能选1、2、3、4这四门课,这四门课的学分加了起来正好是18分,但虽然学分数满足了,可是并不满足其余的三条,所以这种选法是不对的。选5门课就能得到要求。例如选1、2、3、6、10、14就其中一种选课方案,它满足上述4条。3、 符号说明:第门课的学分;:为0、1变量,当为1是表示选第门课,当为0时表示不选;:表示所选课的总门数;

6、:表示选公选课所得的学分;;表示限选课所得的学分;4、 合理性假设假设题中所给的数据正确合理;课程都是随机的,不存在主观意图。假设在选课时各线路网速相同,不因位置时间的不同而变化;学生选修任何学生只要选修某门课程,就认为他能够获得该门课程的学分,不考虑实际生活中的考试不及格得不到学分的情况。学校所给的课程,不管任何课程,都应当是做过调研,一般情况下学生只要选择,就能选上,而不会出现连选几门都选不上的局面。5、 问题一的求解5.1模型的建立规划模型建立以最小选修科目为目标函数,在选修科目最少的条件下满足学校规定,即是:学生每学期选修任选课的比例不能少于所修总学分(包括2个必修学分)的1/6,也不

7、能超过所修总学分的1/3。同时,课号为5,6,7,8的课程必须至少选一门。且任选课学分,但是每门课的学分都是整数,故在满足学校要求的条件下,所修课程们数最少,这限选课学分最少12,最多为14,即由于课号为5,6,7,8的课程必须至少选一门,另外所选选修课与限选课总和大于或等于18个学分,且为了求解方便对问题进一步处理,首先说明一点,因为课程号码有的与学分值的数目相同,为了避免在计算机上处理过程中出现紊乱,我们统一把课程号码加上10,课号1-18,就变成了11-28。假设这个同学在符合学校规定要求的前提下要选n门课,:第一步,首先把11-28门课程抽出n门课进行组合,共有种。利用Matlab的命

8、令就是combntns(11:28,n),这个命令产生的结果是一个矩阵,每一行就是n门课的一个组合。令选课组合xkzuhe=combntns(11:28,n)第二步 以下分四个模块,每个模块使用一个矩阵来存储该模块筛选合格的数据。第一个模块是判断每个n门课组合的学分总和是否大于18分,如果大于等于18分,就保留,并且把该条n门课组合添加到矩阵a中。矩阵a用来存储满足了大于18分的n门课的组合。第二个模块是判断矩阵a中每个n门课的组合是否是含有5,6,7,8至少一门课。如果是至少含有5,6,7,8至少一门课,就把该行记录添加到b矩阵里,矩阵b用来存储满足了含有5,6,7,8至少一门课的组合第三个

9、模块是c模块,用来存放满足同时选修要求的n门课的组合数据。同时选修的矩阵是。先分析以下同时选修的要求,在一个n门课的组合中,比如有15号课,就必须有11号课;有17号课,就必须有12号课;有19号课,就必须有18号课等等。一方面,要判断任意一个n门课组合是不是符合上述要求,比如它含有15号课,又同时含有11号课,那么就保留这个n门课组合;另一方面,经过上述的判断保留,b矩阵就删除了一部分不符合要求的,但是保留的却也不是都适合,比如一个记录,含有15号课且含有11号课,保留下来了,但是如果这个记录同时含有17号课且不含有12号课,那么这个记录就不适合,需要再次删除。因此,第三个模块需要分成两个子

10、模块来判断,就是上面的两个方面。第一个子模块先大范围的保留基本适合的,8对同时选修课,只要含有至少一对就保留。第二个模块是分别对每对选修课进行检验,含有15号课不含有11号课的或者含有17号课不含有12号课的或者含有19号课不含有18号课的或者含有20号课不含有16号课的等等,都全部删除。经过这两个子模块的判断,剩下的数据给c矩阵。第四个模块是判断上述c矩阵内的数据是否适合的规定。注意,总修学分包括必修课的2学分。适合的就保留下来给d矩阵。5.2模型的求解首先对位的问题进行综合性分析,“为了达到学校和院系的规定,该同学下学期最少应该选几门课?应该选哪几门课?”,对此我们运用整数动态规划模型对问

11、题进行分析求解。通过问题的分析知,最少应该选5门课,再利用matlab进行编程求解,在筛选程序内给定n=5,可得到应该选的5门的组合:表1,5门选修课的组合表1261014146101124610116、 问题二的求解6.1模型的建立与求解由于第二个问题若考虑在选修最少学分的情况下,该同学最多可以选修几门课,以及选哪几门。对此我们再次运用matlab进行编程求解,通过约束可知当n=18时为最大值因此把程序里面的s>=18改成s=18,然后依次把选课门数改成5、6、7、8等,可以看出最多选8门课,8门课的组合是:表2.合理选修课组合表1351215161718136141516171814

12、5121516171814614151617181568121516171568121516181568121517181568121617181568141516171568141516181568141517181568141617182378 1516171823713151617182461415161718247815161718247131516171826781315161726781315161826781315171826781316171826781415161726781415161826781415171826781416171834681415161734681415

13、1618346814151718346814161718通过matlab编写程序得出了上表中选8门课的29种组合选课模式,这些科组合表每种模式都适合选课的要求。7、 问题三的求解7.1模型的建立与求解随着教育质量不断提高,教育方式的安排,也日臻完善,人们对选修课的爱好不尽相同,考虑到选修课程时是否有学生愿意选择的问题,需要建立整数规划模型,运用线性约束对问题进行规划处理,再通过matlab软件进行变成求解,得出适合问题的合理性方案。7.2方案具备的条件:重点关注方案中的1、2、3、4、5、6、7、8这8门课,其他除了13、17、18三门课外,9、10、11、12、14、15、16七门课不用管,

14、因为他们一选就选上。根据假设,1、2、3、4、5、6、7、8这8门课所设置的限选人数是合情合理的,并不是让学生们大量选不上,大部分课时能够选上的。以下方案是基于这个前提假设提供的。13、17、18三门课尽量少,甚至不含有。7.3候选方案表3,5门课的方案组合表126101414610112461011表4,选6门课的候选方案表123610141245111212489152378916346811141356171412789162468915145610112678101412571213表5,选7门课的候选方案1234511121236141516237891516246810111534

15、6811141534689151614511121516这三种方案是唯一满足学校要求的方案,但是对于必须含有5、6、7、8中至少一门的规定这三套方案只含有6号课,6号课一旦选不上就失败了,所以选6号课很重要。八、参考文献1姜启源 谢金星 叶俊 数学模型(第三版)北京:高等教育出版社2韩中庚 数学建模竞赛或经论文精选与点评M 北京 科学出版社 20073张亚平 裴玉龙.道路通行能力研究现状及发展综述J.交通运输报,2002,2(2)t94-97.4北京市限行政策效果评估5陆化普 史其信 殷亚峰.交通影响评价的基本思想与方法J.城市规划,1996,20(4)9、 附录问题对应程序:Matlab筛选

16、程序如下:n=input('请输入选课的门数:','s');xk=11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28;5 5 4 4 3 3 3 2 3 3 3 2 2 2 1 1 1 1;xkzuhe=combntns(11:28,n);hang,lie=size(xkzuhe);a=zeros(1,lie);for i=1:hangs=0; for j=1:lie xkhang,xklie=find(xk=xkzuhe(i,j); s=s+xk(2,xklie); end; if s>=18 a=

17、a;xkzuhe(i,:); end;end;ahang,alie=size(a);a=a(2:1:ahang,:);*以上第一模块ahang,alie=size(a);b=zeros(1,alie);for i=1:ahangp=0; for j=1:alie if a(i,j)=15|a(i,j)=16|a(i,j)=17|a(i,j)=18 p=p+1; end; end; if p>=1 b=b;a(i,:); end;end;bhang,blie=size(b);b=b(2:1:bhang,:);*以上第二模块bhang,blie=size(b);c=zeros(1,blie)

18、;for i=1:bhangp1=-1;p2=-2;p3=-1;p4=-2;p5=-1;p6=-2;p7=-1;p8=-2;p9=-1;p10=-2;p11=-1;p12=-2;p13=-1;p14=-2;p15=-1;p16=-2;p17=-1;p18=-2; for j=1:blie if b(i,j)=15 p1=1; end; if b(i,j)=10 p2=1; end; if b(i,j)=17 p3=1; end; if b(i,j)=12 p4=1; end; if b(i,j)=19 p5=1; end; if b(i,j)=18 p6=1; end; if b(i,j)=2

19、0 p7=1; end; if b(i,j)=16 p8=1; end; if b(i,j)=21 p9=1; end; if b(i,j)=14 p10=1; end; if b(i,j)=22 p11=1; end; if b(i,j)=15 p12=1; end; if b(i,j)=23 p13=1; end; if b(i,j)=17 p14=1; end; if b(i,j)=24 p15=1; end; if b(i,j)=16 p16=1; end; end; if p1=p2|p3=p4|p5=p6|p7=p8|p9=p10|p11=p12|p13=p14|p15=p16 c

20、=c;b(i,:); end;end;chang,clie=size(c);c=c(2:1:chang,:);.以上第三模块的第一子模块chang,clie=size(c);i=1;while i<=changp1=0;p2=0;p3=0;p4=0;p5=0;p6=0;p7=0;p8=0;p9=0;p10=0;p11=0;p12=0;p13=0;p14=0;p15=0;p16=0;p17=0;p18=0; for j=1:clie if c(i,j)=15 p1=1; end; if c(i,j)=11 p2=1; end; if c(i,j)=17 p3=1; end; if c(i,j)=12 p4=1; end; if c(i,j)=19 p5=1; end; if c(i,j)=18 p6=1; end; if c(i,j)=20 p7=1; end; if c(i,j)=16 p8=1; end; if c(i,j)=21 p9=1;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论