数学选课策略建模论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目:选课策略数学模型
班级: xxxxx
2022年4月27日
姓名: xxx
学号:xxx
目录
一.摘要 (1)
二.问题描述 (2)
三.符号说明 (2)
四.模型的假设 (2)
五.问题分析 (3)
六.模型的建立与求解 (3)
七.模型的检验 (4)
八.参考文献 (5)
摘要
条件为解决学生选课问题最优解,本文利用0-1规划模型先找出目标函数,再列出约束条件,分三步骤对最终问题逐层分析化多目标规划为单目标规划,分别建立不同的模型,运用Matlab函数bintprog软件求解。从而解决学生既希望选修课程的数量少,又希望所获得的学分多的问题。
特点:根据以上分析,将模型分为以下两个
(1)只为了选修课程门数最少,而不管学分的多少,可建立单目标规划模型。
(2)在考虑课程最少的情况下,使学分最多;
模型一,选修课的课程最少,不考虑学分多少;约束条件只有:每人至少学习过2们数学课,3门运筹学课,2门计算机课和先修课。依此约束条件建立模型一。
模型二:在科目最少的基本前提下,使获得的学分尽可能得多,约束没变,化单目标为多目标求解。
关键词:0-1规划选修课要求单目标规划多目标规划
二.问题描述
某学校规定,运筹学专业的学生毕业时必须至少学习过2门数学课、3门运筹学课和2门计算机课,这些课程的编号、名称、学分、所属类别和先修课要求如下表所示。
1、这些学生毕业时最少学习过这些课程中的哪些课程?
2、如果某个学生既希望选修课程的数量少,又希望所获得的学分多,他可以选择哪些课程?
x i:表示选修的课程(x i=0表示不选,x i=1表示选i=1,2,3,4,5,6,7,8,9)。
四.模型的假设
1.学生只要选修就能通过;
2.每个学生都必须遵守规定。
五.问题分析
问题一,在忽略所获得学分的高低,只考虑课程最少,分析题目,有先修课要求,和最少科目限制,建立模型一,计算求出结果;
问题二,在模型一的条件下,考虑分数最高,把模型一的结果当做约束条件,建立模型二,计算求出结果。
六.模型的建立及求解
1.模型一
用x i=1(0)表示选修(不选)按上表中编号顺序的9门课程的第i门课。
问题(1)决策目标为选修课程门数最少,即
Min z=Σj=19x i①
其约束条件包括
首先,每人最少要选2门数学课,3门运筹学课和2门计算机课,按表中课程类别划分可将此约束表示为
x1+x2+x3+x4+x5≥2 ②
x3+x5+x6+x8+x9≥3 ③
x4+x6+x7+x9≥2 ④
其次,某些课有先修课的要求,例如,数据结构的先修课是计算机编程,这意味着x4=1蕴涵x7=1,这个条件可表示为
x4≤x7或x4-x7≤0. ⑤
同理,最优化方法的先修课是微积分和线性代数的条件可表示为x3≤x1,x3≤x2,此二式可合并为一个不等式
2x3-x1-x2≤0. ⑥
另外有2x5-x1-x2≤0 ⑦
x6-x7≤0 ⑧
x8-x5≤0 ⑨
2x9-x1-x2≤0 ⑩
所以,选课策略问题(1)的数学模型就是:只取值0或1的9个决策变量x1, (x9)
满足约束条件②-⑩,并使目标函数①取最小值的0-1线性规划模型。
运用Matlab函数bintprog求解:
首先,把约束条件②-④标准化为
-x1-x2-x3-x4-x5≤-2 ②′
-x3-x5-x6-x8-x9≤-3 ③′?
-x4-x6-x7-x9≤-2 ④′?
其次,输入数据
A=[-1 -1 -1 -1 -1 0 0 0 0;0 0 -1 0 -1 -1 0 -1 -1;0 0 0 -1 0 -1 -1 0 -1;-1 -1 2 0 0 0 0 0 0; 0 0 0 1 0 0 -1 0 0;-1 -1 0 0 2 0 0 0 0; 0 0 0 0 0 1 -1 0 0;
0 0 0 0 -1 0 0 1 0;-1 -1 0 0 0 0 0 0 2];
b=[-2 -3 -2 0 0 0 0 0 0]′,Aeq=[];beq=[];
f=[1 1 1 1 1 1 1 1 1];
核对输入数据正确之后,键入下列行命令:
[x z]=bintprog(f,A,b,Aeq,beq)
由屏幕最后显示结果得:
最优解 x1=x2=x5=x6=x7=x8=1, x3=x4=x9=0
目标函数最小值 z=6
即应该选修微积分,线性代数,应用统计,计算机模拟,计算机编程,预测理论等6门课,最小选课门数是6。
2.模型二
问题(2)的数学模型与选课策略问题(1)的数学模型的约束条件完全一样;只是目标函数不同。要求“选课门数少而学分多”意味着同时要求两个决策目标:
Min z=Σj=19x i
Max w=5x1+4x2+4x3+3x4+4x5+3x6+2x7+2x8+3x9
所以,问题(2)的数学模型是满足约束条件②-⑩并有双目标Min z和Max w 的0-1线性规划。
把双目标归结为一个单目标,即令y=? z+(1-?)w,?为闭区间[0,1]中任一数,并取决策目标为(Max w=Min(-w))
Min y=? z-(1-?)w
值的大小体现决策者对每个目标的重视程度,例如,某同学觉得学分数和课程数是三七开,故把?取为0.7,决策目标为
Min y=0.7z-0.3w
=-0.1(8x1+5x2+5x3+2x4+5x5+2x6-x7-x8+2x9)
用Matlab函数bintprog求解这个问题时,与前面求解问题(1)时的 A,b,Aeq,beq数据完全一样,只需把f改为
f=-0.1[8 5 5 2 5 2 -1 -1 2];
后,再执行行命令bintprog=(f,A,b,Aeq,beq)
即可得出
最优解 x=[1 1 1 1 1 1 1 0 1],
目标函数最小值 z=-2.8
即选修除预测理论外的8门课,共计28学分。
七.模型的检验
经过检验输入式子正确,结果多次验证一样。结果分析:
1.模型一的结果为x1=x2=x5=x6=x7=x8=1, x3=x4=x9=0即选修编号为1,2,5,6,7,8的选修课时,达到了选修课程门数最少的目标。应学习微积分,线性代数,应用统计,计算机模拟,计算机编程,预测理论等6门课程。
2.模型二的结果为x=[1 1 1 1 1 1 1 0 1],目标函数最小值 z=-2.8即选修除预测理论外的8门课,共计28学分。
八.参考文献
【1】母丽华周永芳,数学建模,科学出版社
【2】百度文库