数学建模层次分析问题

来源:百度知道 编辑:UC知道 时间:2024/09/22 16:42:00
某学校规定,运筹学专业的学生毕业时必须至少学习过两门数学课、三门运筹学课和两门计算机课。这些课程的编号、名称、学分、所属类别和先修课要求如表所示。那末,毕业时学生最少可以学习这些课程中的哪些课程?
如果某个学生既希望选修课的数量少,又希望所获得的学分多,他可以选修哪些课程?
课程编号 课程名称 学分 所属类别 先修课要求
1 微积分 5 数学
2 线性代数 4 数学
3 最优化方法4 数学、运筹学 微积分、线性代数
4 数据结构 3 数学、计算机 计算机编程
5 应用统计 4 数学、运筹学 微积分、线性代数
6 计算机模拟3 计算机、运筹学 计算机编程
7 计算机编程2 计算机
8 预测理论 2 运筹学 应用统计
9 数学实验 3 运筹学、计算机 微积分、线性代数

好像是用双线性规划做的
先考虑希望选修课的数量少的情况:
设这九门课程x1~x9
其中xi只可以是0或者1
那么目标函数就是min x1+x2+……+x9
由毕业时必须至少学习过两门数学课、三门运筹学课和两门计算机课
所以约束条件是
x1+x2+x3+x4+x5>=2
x3+x5+x6+x8+x9>=3
x4+x6+x7+x9>=2
另外像学x3必须学x1x2,可以用x3<=0.5*(x1+x2)来做
其他的一样的道理写入约束条件
这是0-1线性规划,应该可以用lingo来做
算出结果后再在这个基础上以学分多为目标再做线性规划
就是目标函数是max 5x1+4x2+……3x9

其实你可以去找找数学建模的书,我这是凭印象写的可能不太清楚,但我记得当初书上又一模一样的例题