选课问题建模作业.docx
- 文档编号:16676043
- 上传时间:2023-07-16
- 格式:DOCX
- 页数:19
- 大小:64.88KB
选课问题建模作业.docx
《选课问题建模作业.docx》由会员分享,可在线阅读,更多相关《选课问题建模作业.docx(19页珍藏版)》请在冰点文库上搜索。
选课问题建模作业
选课问题
摘要
随着教育事业在中国的不断发展,大学在选修课上与限选课可的选修程序做了进一步调整,将传统的选课进行细化,针对每个专业都有不同的要求,通过不同的选课要求对不同专业的学生进行定向培养。
针对问题一,首先对问题进行分析,找到问题要求不同科目之间的联系,然后建立
规划模型,通过matlab软件编程求解,最终得出至少选5门课,以及5门课的组合方式。
针对问题二,以选修最少的学分为目标函数,通过分析各门课之间的连系,建立整数规划模型,再通过matlab编程最终得出得出了选修课的8门的29种组合选课模式。
针对问题三,在前两问的基础上,首先对问题进行综合分析,且要考虑公众心理对不同选修课的偏好程度,以及把不同选修课进行分级,把限选课最多,次之,限选人数最少的情况要考虑进去,对此提出了三种选课方案,通过matlab软件进行编程得出了每种方案按对应的选课组合模式,且在选课过程中以编号为6的课为选课中心。
关键词:
规划模型;matlab;整数规划;组合模式
1、问题的重述
某同学考虑下学期的选课,其中必修课只有一门(2学分),可供选修的限定选修课(限选课)有8门,任意选修课(任选课)有10门。
由于有些课程之间相互关联,所以可能在选修某门课程时必须同时选修其他某门课程,课程信息见下表:
限选课课号
1
2
3
4
5
6
7
8
学分
5
5
4
4
3
3
3
2
同时选修要求
1
2
任选课课号
9
10
11
12
13
14
15
16
17
18
学分
3
3
3
2
2
2
1
1
1
1
同时选修要求
8
6
4
5
7
6
按学校规定,学生每个学期选修的总学分数不能少于20学分,因此该同学必须在上述18门课中至少选修18个学分,学校还规定学生每学期选修任选课的比例不能少于所修总学分(包括2个必修学分)的1/6,也不能超过所修总学分的1/3。
学院也规定,课号为5,6,7,8的课程必须至少选一门。
试问:
1)为了达到学校和院系的规定,该同学下学期最少应该选几门课?
应该选哪几门课?
2)若考虑在选修最少学分的情况下,该同学最多可以选修几门课?
选哪几门?
3)若考虑到选修时课程能否如愿选上的问题,请多准备几套选择方案。
已知课程限选人数为1,2,3,4限选人数最多,5,6,7,8次之,13、17、18限选人数最少。
请考虑选课时的先后顺序(先选者先录,人满停选)。
2、问题的分析
根据提出的问题,学生要选修的课程必须同时满足下列四条:
任何学生每个学期选修的总学分数不能少于20学分(包括2个必修学分),所以除了必修课程外,任何学生必须在上述18门课中至少选修18个学分
学校规定,课号为5,6,7,8的课程必须至少选一门。
学校规定学生每学期选修任选课的比例不能少于所修总学分(包括2个必修学分)的1/6,也不能超过所修总学分的1/3。
即
。
注意,总修学分包括必修课的2学分。
三个问题都需要选课方案。
比如第一个问题,“为了达到学校和院系的规定,该同学下学期最少应该选几门课?
应该选哪几门课?
”学校规定最少学分是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时表示不选;
:
表示所选课的总门数;
:
表示选公选课所得的学分;
;表示限选课所得的学分;
4、合理性假设
假设题中所给的数据正确合理;
课程都是随机的,不存在主观意图。
假设在选课时各线路网速相同,不因位置时间的不同而变化;学生选修任何
学生只要选修某门课程,就认为他能够获得该门课程的学分,不考虑实际生活中的考试不及格得不到学分的情况。
学校所给的课程,不管任何课程,都应当是做过调研,一般情况下学生只要选择,就能选上,而不会出现连选几门都选不上的局面。
5、问题一的求解
5.1模型的建立
规划模型建立
以最小选修科目为目标函数,在选修科目最少的条件下满足学校规定,即是:
学生每学期选修任选课的比例不能少于所修总学分(包括2个必修学分)的1/6,也不能超过所修总学分的1/3。
同时,课号为5,6,7,8的课程必须至少选一门。
且
任选课学分
,但是每门课的学分都是整数,
故
在满足学校要求的条件下,所修课程们数最少,这限选课学分最少12,最多为14,即
由于课号为5,6,7,8的课程必须至少选一门,
另外所选选修课与限选课总和大于或等于18个学分,
且
为了求解方便对问题进一步处理,首先说明一点,因为课程有的与学分值的数目相同,为了避免在计算机上处理过程中出现紊乱,我们统一把课程加上10,课号1-18,就变成了11-28。
假设这个同学在符合学校规定要求的前提下要选n门课,
:
第一步,首先把11-28门课程抽出n门课进行组合,共有
种。
利用Matlab的命令就是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至少一门课的组合
第三个模块是c模块,用来存放满足同时选修要求的n门课的组合数据。
同时选修的矩阵是
。
先分析以下同时选修的要求,在一个n门课的组合中,比如有15号课,就必须有11号课;有17号课,就必须有12号课;有19号课,就必须有18号课等等。
一方面,要判断任意一个n门课组合是不是符合上述要求,比如它含有15号课,又同时含有11号课,那么就保留这个n门课组合;另一方面,经过上述的判断保留,b矩阵就删除了一部分不符合要求的,但是保留的却也不是都适合,比如一个记录,含有15号课且含有11号课,保留下来了,但是如果这个记录同时含有17号课且不含有
12号课,那么这个记录就不适合,需要再次删除。
因此,第三个模块需要分成两个子模块来判断,就是上面的两个方面。
第一个子模块先大围的保留基本适合的,8对同时选修课,只要含有至少一对就保留。
第二个模块是分别对每对选修课进行检验,含有15号课不含有11号课的或者含有17号课不含有12号课的或者含有19号课不含有18号课的或者含有20号课不含有16号课的……等等,都全部删除。
经过这两个子模块的判断,剩下的数据给c矩阵。
第四个模块是判断上述c矩阵的数据是否适合
的规定。
注意,总修学分包括必修课的2学分。
适合的就保留下来给d矩阵。
5.2模型的求解
首先对位的问题进行综合性分析,“为了达到学校和院系的规定,该同学下学期最少应该选几门课?
应该选哪几门课?
”,对此我们运用整数动态规划模型对问题进行分析求解。
通过问题的分析知,最少应该选5门课,再利用matlab进行编程求解,在筛选程序给定n=5,可得到应该选的5门的组合:
表1,5门选修课的组合表
1
2
6
10
14
1
4
6
10
11
2
4
6
10
11
6、问题二的求解
6.1模型的建立与求解
由于第二个问题若考虑在选修最少学分的情况下,该同学最多可以选修几门课,以及选哪几门。
对此我们再次运用matlab进行编程求解,通过约束可知当n=18时为最大值
因此把程序里面的s>=18改成s=18,然后依次把选课门数改成5、6、7、8等,可以看出最多选8门课,8门课的组合是:
表2.合理选修课组合表
1
3
5
12
15
16
17
18
1
3
6
14
15
16
17
18
1
4
5
12
15
16
17
18
1
4
6
14
15
16
17
18
1
5
6
8
12
15
16
17
1
5
6
8
12
15
16
18
1
5
6
8
12
15
17
18
1
5
6
8
12
16
17
18
1
5
6
8
14
15
16
17
1
5
6
8
14
15
16
18
1
5
6
8
14
15
17
18
1
5
6
8
14
16
17
18
2
3
7
8
15
16
17
18
2
3
7
13
15
16
17
18
2
4
6
14
15
16
17
18
2
4
7
8
15
16
17
18
2
4
7
13
15
16
17
18
2
6
7
8
13
15
16
17
2
6
7
8
13
15
16
18
2
6
7
8
13
15
17
18
2
6
7
8
13
16
17
18
2
6
7
8
14
15
16
17
2
6
7
8
14
15
16
18
2
6
7
8
14
15
17
18
2
6
7
8
14
16
17
18
3
4
6
8
14
15
16
17
3
4
6
8
14
15
16
18
3
4
6
8
14
15
17
18
3
4
6
8
14
16
17
18
通过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七门课不用管,因为他们一选就选上。
根据假设,1、2、3、4、5、6、7、8这8门课所设置的限选人数是合情合理的,并不是让学生们大量选不上,大部分课时能够选上的。
以下方案是基于这个前提假设提供的。
13、17、18三门课尽量少,甚至不含有。
7.3候选方案
表3,5门课的方案组合表
1
2
6
10
14
1
4
6
10
11
2
4
6
10
11
表4,选6门课的候选方案表
1
2
3
6
10
14
1
2
4
5
11
12
1
2
4
8
9
15
2
3
7
8
9
16
3
4
6
8
11
14
1
3
5
6
17
14
1
2
7
8
9
16
2
4
6
8
9
15
1
4
5
6
10
11
2
6
7
8
10
14
1
2
5
7
12
13
表5,选7门课的候选方案
1
2
3
4
5
11
12
1
2
3
6
14
15
16
2
3
7
8
9
15
16
2
4
6
8
10
11
15
3
4
6
8
11
14
15
3
4
6
8
9
15
16
1
4
5
11
12
15
16
这三种方案是唯一满足学校要求的方案,但是对于必须含有5、6、7、8中至少一门的规定这三套方案只含有6号课,6号课一旦选不上就失败了,所以选6号课很重要。
八、参考文献
[1]姜启源谢金星叶俊数学模型(第三版):
高等教育
[2]韩中庚数学建模竞赛—或经论文精选与点评[M]科学2007
[3]亚平裴玉龙.道路通行能力研究现状及发展综述[J].交通运输报,2002,2
(2)t94-97.
[4]市限行政策效果评估
[5]陆化普史其信殷亚峰.交通影响评价的基本思想与方法[J].城市规划,1996,20(4)
9、附录
问题对应程序:
Matlab筛选程序如下:
n=input('请输入选课的门数:
','s');
xk=[111213141516171819202122232425262728;554433323332221111];
xkzuhe=combntns([11:
28],n);
[hang,lie]=size(xkzuhe);
a=zeros(1,lie);
fori=1:
hang
s=0;
forj=1:
lie
[xkhang,xklie]=find(xk==xkzuhe(i,j));
s=s+xk(2,xklie);
end;
ifs>=18
a=[a;xkzuhe(i,:
)];
end;
end;
[ahang,alie]=size(a);
a=a(2:
1:
ahang,:
);
*************以上第一模块
[ahang,alie]=size(a);
b=zeros(1,alie);
fori=1:
ahang
p=0;
forj=1:
alie
ifa(i,j)==15||a(i,j)==16||a(i,j)==17||a(i,j)==18
p=p+1;
end;
end;
ifp>=1
b=[b;a(i,:
)];
end;
end;
[bhang,blie]=size(b);
b=b(2:
1:
bhang,:
);
*************以上第二模块
[bhang,blie]=size(b);
c=zeros(1,blie);
fori=1:
bhang
p1=-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;
forj=1:
blie
ifb(i,j)==15
p1=1;
end;
ifb(i,j)==10
p2=1;
end;
ifb(i,j)==17
p3=1;
end;
ifb(i,j)==12
p4=1;
end;
ifb(i,j)==19
p5=1;
end;
ifb(i,j)==18
p6=1;
end;
ifb(i,j)==20
p7=1;
end;
ifb(i,j)==16
p8=1;
end;
ifb(i,j)==21
p9=1;
end;
ifb(i,j)==14
p10=1;
end;
ifb(i,j)==22
p11=1;
end;
ifb(i,j)==15
p12=1;
end;
ifb(i,j)==23
p13=1;
end;
ifb(i,j)==17
p14=1;
end;
ifb(i,j)==24
p15=1;
end;
ifb(i,j)==16
p16=1;
end;
end;
ifp1==p2||p3==p4||p5==p6||p7==p8||p9==p10||p11==p12||p13==p14||p15==p16
c=[c;b(i,:
)];
end;
end;
[chang,clie]=size(c);
c=c(2:
1:
chang,:
);
…………..以上第三模块的第一子模块
[chang,clie]=size(c);
i=1;
whilei<=chang
p1=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;
forj=1:
clie
ifc(i,j)==15
p1=1;
end;
ifc(i,j)==11
p2=1;
end;
ifc(i,j)==17
p3=1;
end;
ifc(i,j)==12
p4=1;
end;
ifc(i,j)==19
p5=1;
end;
ifc(i,j)==18
p6=1;
end;
ifc(i,j)==20
p7=1;
end;
ifc(i,j)==16
p8=1;
end;
ifc(i,j)==21
p9=1;
end;
ifc(i,j)==14
p10=1;
end;
ifc(i,j)==22
p11=1;
end;
ifc(i,j)==15
p12=1;
end;
ifc(i,j)==23
p13=1;
end;
ifc(i,j)==17
p14=1;
end;
ifc(i,j)==24
p15=1;
end;
ifc(i,j)==16
p16=1;
end;
end;
if(p1==1&p2==0)||(p3==1&p4==0)||(p5==1&p6==0)||(p7==1&p8==0)||(p9==1&p10==0)||(p11==1&p12==0)||(p13==1&p14==0)||(p15==1&p16==0)
c(i,:
)=[];
[chang,clie]=size(c);
i=i-1;
end;
i=i+1;
end;
****************以上第三模块的第二子模块
[chang,clie]=size(c);
d=zeros(1,clie);
fori=1:
chang
zxf=0;zrxf=0;
forj=1:
clie
[h,l]=find(xk==c(i,j));
zxf=zxf+xk(2,l);
ifc(i,j)>=19
zrxf=zrxf+xk(2,l);
end;
end;
ifzrxf>=(zxf+2)/6&&zrxf<=(zxf+2)/3
d=[d;c(i,:
)];
end;
end;
[dhang,dlie]=size(d);
d=d(2:
1:
dhang,:
);
f=ones(size(d));
zh=d-f*10
*****************以上第四模块
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 选课 问题 建模 作业