整数规划最优选课问题.docx
《整数规划最优选课问题.docx》由会员分享,可在线阅读,更多相关《整数规划最优选课问题.docx(33页珍藏版)》请在冰豆网上搜索。
整数规划最优选课问题
整数规划最优选课问题
摘要:
利用整数规划的相关理论,分别考虑选课量最少、学分最少、选课人数受限的单一目标约束型整数规划模型。
利用LINDO软件编程,给出了整数规划的解,研究了一个由0-1规划所描述的大学选课模型,从而得到该模型的最优方案。
关键词:
整数规划LINDO软件选课模型最优方案。
一、问题重述
某同学考虑下学期的选课,其中必修课只有一门(2学分),可供选修的限定选修课(限选课)有8门,任意选修课(任选课)有10门。
由于有些课程之间相互关联,所以可能在选修某门课程时必须同时选修其他某门课程。
根据所给数据以及学校对学生选课要求,建立数学模型研究要达到一定学分所选课程最少的整数规划的最优解;学分最少的情况能最多选课门数的模型;针对某些课程人数限制建立模型探讨出最优方案。
我们利用0-1整数规划建立选课模型。
二、符号说明
我们用
表示是否选修课程
;用
表示该课程被选修;
表示该课程被拒绝;用
表示选修课程
时必须同时选修课程
。
用变量
,
分别表示选修的限选课、任选课的学分数;
表示总的学分(包括2个必修学分)。
三、模型建立与求解
问题1
建立数学规划模型:
上述问题中的决策变量只取0或1,称为0-1规划,是一种特殊的整数规划,下面求解该问题。
程序1如下:
Minx1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12+x13+x14+x15+x16+x17+x18
Subjectto
5x1+5x2+4x3+4x4+3x5+3x6+3x7+2x8-y1=0
3x9+3x10+3x11+2x12+2x13+2x14+x15+x16+x17+x18-y2=0
y1+y2-y=-2
y>=20
6y2-y>=0
3y2-y<=0
x1-x5>=0
x2-x7>=0
x8-x9>=0
x6-x10>=0
x4-x11>=0
x5-x12>=0
x7-x13>=0
x6-x14>=0
x5+x6+x7+x8>=1
end
int18
运行结果为:
,其他
,
,
,
。
即至少要选课程编号为1,4,6,10,11。
该整数规划的最优解不唯一。
一般的,得到一个整数规划的全部最优解是很困难度的。
下面笔者通过对变量的约束进行了隐式枚举的方法给出具体解,方法如下:
在以上的程序中每次添加
这样经过36次运算,得到的解如下表所示:
表⑴:
约束变量
选课方案
限选课学分数
任选课学分数
所得总学分
x1=0
2,4,6,10,11
12
6
20
x1=1
1,2,6,10,14
13
5
20
x2=0
1,4,6,10,11
12
6
20
x2=1
1,2,6,10,14
13
5
20
x3=0
2,4,6,10,11
12
6
20
x3=1
1,3,4,11,15,16
13
5
20
x4=0
1,2,6,10,14
13
5
20
x4=1
2,4,6,10,11
12
6
20
x5=0
1,4,6,10,11
12
6
20
x5=1
1,4,5,11,12,18
12
6
20
x6=0
1,2,4,11,15
14
4
20
x6=1
1,2,6,10,14
13
5
20
x7=0
1,2,6,10,14
13
5
20
x7=1
2,4,7,11,13,18
12
6
20
x8=0
1,4,6,10,11
12
6
20
x8=1
1,2,4,8,9,11
16
6
24
x9=0
1,4,6,10,11
12
6
20
x9=1
1,4,6,8,9,10
14
6
22
x10=0
1,2,4,11,15
14
4
20
x10=1
2,4,6,10,11
12
6
20
x11=0
1,2,6,10,14
13
5
20
x11=1
2,4,6,10,11
12
6
20
x12=0
1,2,6,10,14
13
5
20
x12=1
1,4,5,11,12,18
12
6
20
x13=0
1,2,6,10,14
13
5
20
x13=1
2,4,7,11,13,18
12
6
20
x14=0
2,4,6,10,11
12
6
20
x14=1
1,2,6,10,14
13
5
20
x15=0
1,4,6,10,11
12
6
20
x15=1
1,2,4,11,15
14
4
20
x16=0
1,4,6,10,11
12
6
20
x16=1
1,2,4,11,16
14
4
20
x17=0
1,4,6,10,11
12
6
20
x17=1
1,2,4,11,17
14
4
20
x18=0
1,2,6,10,14
13
5
20
x18=1
1,2,4,11,18
14
4
20
注:
其中数字1,4,6,10,11表示该方案中所选课程的代号,以下表格中相同。
通过对比筛选得最优选课方案如下表所示:
表⑵:
序列号
选课方案
限选课学分数
任选课学分数
所得总学分
1
1,4,6,10,11
12
6
20
2
2,4,6,10,11
12
6
20
3
1,2,6,10,14
13
5
20
问题分析:
通过运行程序得到的最优选课方案共有3种,这3种方案所得学分恰好是20。
为了得到20学分选5门课程即可,即表二中的3种选课方案。
这些结果反映了课程1、2、4、6、10、11、14应比较优先考虑。
问题2
建立数学规划模型
程序2如下:
Maxx1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12+x13+x14+x15+x16+x17+x18
Subjectto
5x1+5x2+4x3+4x4+3x5+3x6+3x7+2x8-y1=0
3x9+3x10+3x11+2x12+2x13+2x14+x15+x16+x17+x18-y2=0
y1+y2-y=-2
y=20
6y2-y>=0
3y2-y<=0
x1-x5>=0
x2-x7>=0
x8-x9>=0
x6-x10>=0
x4-x11>=0
x5-x12>=0
x7-x13>=0
x6-x14>=0
x5+x6+x7+x8>=1
end
int18
运行结果为
,其他
,
,
,
。
即至多可选课程的代号为1,3,5,8,15,16,17,18。
该整数规划的最优解不唯一。
下面笔者如问题一样通过对变量的约束惊醒隐式枚举的方法给出具体解,结果如下:
表⑶:
约束变量
选课方案
限选课学分数
任选课学分数
所得总学分
x1=0
2,4,7,8,15,16,17,18
14
4
20
x1=1
1,5,6,8,12,15,16,17
13
5
20
x2=0
1,3,6,8,15,16,17,18
14
4
20
x2=1
2,3,7,8,15,16,17,18
14
4
20
x3=0
1,4,6,8,15,16,17,18
14
4
20
x3=1
2,3,6,8,15,16,17,18
14
4
20
x4=0
2,3,6,8,15,16,17,18
14
4
20
x4=1
2,4,6,8,15,16,17,18
14
4
20
x5=0
1,3,6,8,15,16,17,18
14
4
20
x5=1
1,5,6,8,14,15,16,17
13
5
20
x6=0
1,3,5,8,15,16,17,18
14
4
20
x6=1
2,3,6,8,15,16,17,18
14
4
20
x7=0
1,4,6,8,15,16,17,18
14
4
20
x7=1
2,6,7,8,14,15,16,17
13
5
20
x8=0
2,3,7,13,15,16,17,18
12
6
20
x8=1
2,4,7,8,15,16,17,18
14
4
20
x9=0
1,3,6,8,15,16,17,18
14
4
20
x9=1
3,4,6,8,9,16,18
13
5
20
x10=0
1,3,5,8,15,16,17,18
14
4
20
x10=1
3,4,6,8,10,16,18
13
5
20
x11=0
2,4,6,8,15,16,17,18
14
4
20
x11=1
3,4,6,8,11,16,18
13
5
20
x12=0
2,3,6,8,15,16,17,18
14
4
20
x12=1
1,4,5,12,15,16,17,18
12
6
20
x13=0
1,4,6,8,15,16,17,18
14
4
20
x13=1
2,4,7,13,15,16,17,18
12
6
20
x14=0
1,4,5,12,15,16,17,18
12
6
20
x14=1
1,4,6,14,15,16,17,18
12
6
20
x15=0
2,6,7,8,14,16,17,18
13
5
20
x15=1
2,4,6,8,15,16,17,18
14
4
20
x16=0
2,6,7,8,14,15,17,18
13
5
20
x16=1
2,4,6,8,15,16,17,18
14
4
20
x17=0
2,6,7,8,14,15,16,18
13
5
20
x17=1
1,3,5,8,15,16,17,18
14
4
20
x18=0
2,6,7,8,14,15,16,17
13
5
20
x18=1
1,3,5,8,15,16,17,18
14
4
20
通过筛选得得出18个最优解:
表⑷:
序列号
选课方案
限选课学分数
任选课学分数
所得总学分
1
1,3,5,8,15,16,17,18
14
4
20
2
2,3,6,8,15,16,17,18
14
4
20
3
1,5,6,8,12,15,16,17
13
5
20
4
1,3,6,8,15,16,17,18
14
4
20
5
2,6,7,8,13,15,16,17
14
4
20
6
1,4,5,8,15,16,17,18
14
4
20
7
2,3,7,8,15,16,17,18
14
4
20
8
1,4,6,8,15,16,17,18
14
4
20
9
1,5,6,8,14,15,16,17
13
5
20
10
2,3,7,13,15,16,17,18
13
5
20
11
2,3,6,14,15,16,17,18
12
6
20
12
1,4,6,14,15,16,17,18
12
6
20
13
2,4,6,8,15,16,17,18
14
4
20
14
1,4,5,12,15,16,17,18
12
6
20
15
2,4,7,13,15,16,17,18
12
6
20
16
1,3,5,12,15,16,17,18
12
6
20
17
2,6,7,8,14,15,17,18
13
5
20
18
2,6,7,8,14,15,16,17
13
5
20
注:
其中数字1,3,5,8,15,16,17,18表示该方案中所选课程的代号,以下表格中相同。
问题分析:
程序得到的最优选课方案共18种,这18种方案所得总学分是20,为了得到20学分最多可选8门课程,即表二中的18种选课方案。
这些结果还反映了课程在满足学校要求的前提下,学生能多学知识,课程15,16,17,18较容易被考虑。
问题3
我们作如下假设:
a)1、2、3、4四门课限选人数最多为第一层次;5,6,7,8为第二层次;9、10、11、12、14、15、16为第三层次;13、17、18限选人数最少为第四层次,且各层次所占权重依次为
,
,
,
(实际问题时:
计算每个层次各科限选人数总和与18门课程限选人数总和之比,并以此作为该层次所占的权重)。
b)每种方案中属于第
层的科目数为
,方案的课程总数为
(我们只考虑满足学校要求时
这四种情况)。
以
作为选课的衡量参数,其中
。
越大说明此方案越优,
越小此方案就越差。
c)第
层次先选人数要比第
层次限选人数少的多(
);
d)同层次之间各科限选人数相差几乎不大;
e)学生所修学分总数达到学校要求即可;
f)课程先选者先入,人数满时不能再选此课程。
由第二问可以知道,在学生所修学分总数达到学校要求即可的前提下选修课程最多为8门课,故只需讨论7门课和6门课两种情况,再依据前面问题1、问题2可得出此问题的解答。
学分为20分,选7门课程满足条件如下要求:
借助LINDO软件,程序3运用隐式枚举方法,通过筛选后得到如下最优解:
表⑸:
序列号
选课方案
限选课学分数
任选课学分数
所得总学分
1
2,4,7,11,16,17,18
12
6
20
2
3,4,6,8,11,17,18
13
5
20
3
1,4,6,11,15,16,18
12
6
20
4
1,5,6,8,12,14,16
12
6
20
5
2,3,6,8,14,16,17
14
4
20
6
1,2,7,13,16,17,18
13
5
20
7
1,4,5,11,16,17,18
12
6
20
8
2,4,6,11,16,17,18
12
6
20
9
1,4,6,11,16,17,18
12
6
20
10
3,4,6,8,11,16,18
13
5
20
11
1,4,6,11,15,17,18
12
6
20
12
3,4,6,8,9,17,18
13
5
20
13
2,4,6,10,16,17,18
12
6
20
14
3,4,6,8,9,16,17
13
5
20
15
1,2,5,12,16,17,18
13
5
20
16
2,6,7,8,13,14,15
13
5
20
17
1,2,7,13,15,17,18
12
6
20
18
2,4,7,11,15,17,18
12
6
20
19
1,2,7,13,16,17,18
12
6
20
20
2,4,7,11,15,16,18
12
6
20
同理选6门课情形的最优解,运用程序4筛选后得到如下最优解如下:
表⑹:
序列号
选课方案
限选课学分数
任选课学分数
所得总学分
1
1,4,7,8,9,18
14
4
20
2
2,4,7,8,11,18
14
4
20
3
1,4,6,11,14,15
12
6
20
4
1,4,5,11,12,17
12
6
20
5
2,4,7,11,13,18
12
6
20
6
2,3,7,8,9,18
14
4
20
7
2,4,7,8,9,18
14
4
20
8
1,4,6,11,14,18
12
6
20
9
1,4,5,8,11,18
14
4
20
10
2,4,6,8,10,18
14
4
20
11
2,4,6,11,14,18
12
6
20
12
2,4,7,11,13,17
12
6
20
13
1,2,6,10,17,18
13
5
20
14
1,3,6,10,14,18
12
6
20
15
1,4,5,11,12,18
12
6
20
16
2,6,7,8,9,13
13
5
20
17
2,4,6,10,14,18
12
6
20
18
1,2,6,10,15,17
13
5
20
19
1,2,6,10,16,17
13
5
20
20
2,4,7,8,9,17
14
4
20
21
1,2,6,10,16,18
13
5
20
下面通过公式:
计算各种方案下的
值:
表⑺:
层次数
科目数
方案
序列号
第一层次(1、2、3、4)
第二层次(5、6、7、8)
第三层次(9、10、11、12、14、15、16)
第四层次(13、17、18)
权重
0.4
0.3
0.2
0.1
五门课
1
2
1
2
0
0.3
五门课
2
2
1
2
0
0.3
五门课
3
2
1
2
0
0.3
六门课
6
2
3
1
1
0.333333333
六门课
1
2
2
1
1
0.283333333
六门课
2
2
2
1
1
0.283333333
六门课
3
2
1
3
0
0.283333333
六门课
7
2
2
1
1
0.283333333
六门课
9
2
2
1
1
0.283333333
六门课
10
2
2
1
1
0.283333333
六门课
20
2
2
1
1
0.283333333
六门课
4
2
1
2
1
0.266666667
六门课
8
2
1
2
1
0.266666667
六门课
11
2
1
2
1
0.266666667
六门课
12
2
1
2
1
0.266666667
六门课
14
2
1
2
1
0.266666667
六门课
15
2
1
2
1
0.266666667
六门课
16
1
3
1
1
0.266666667
六门课
17
2
1
2
1
0.266666667
六门课
18
2
1
2
1
0.266666667
六门课
19
2
1
2
1
0.266666667
六门课
21
2
1
2
1
0.266666667
六门课
5
2
1
1
2
0.25
六门课
13
2
1
1
2
0.25
七门课
4
1
3
3
0
0.271428571
七门课
5
2
2
2
1
0.271428571
七门课
10
2
2
2
1
0.271428571
七门课
14
2
2
2
1
0.271428571
七门课
2
2
2
1
2
0.257142857
七门课
3
2
1
3
1
0.257142857
七门课
12
2
2
1
2
0.257142857
七门课
16
1
3
2
1
0.257142857
七门课
20
2
1
3
1
0.257142857
七门课
1
2
1
2
2
0.242857143
七门课
7
2
1
2
2
0.242857143
七门课
8
2
1
2
2
0.242857143
七门课
9
2
1
2
2
0.242857143
七门课
11
2
1
2
2
0.242857143
七门课
13
2
1
2
2
0.242857143
七门课
15
2
1
2
2
0.242857143
七门课
17
2
1
2
2
0.242857143
七门课
18
2
1
2
2
0.242857143
七门课
6
2
1
1
3
0.228571429
七门课
19
2
1
1
3
0.228571429
八门课
3
1
3
3
1
0.25
八门课
9
1
3
3
1
0.25
八门课
18
1
3
3
1
0.25
八门课
1
2
2
2
2
0.25
八门课
2
2
2
2
2
0.25
八门课
4
2
2
2
2
0.25
八门课
7
2
2
2
2
0.25
八门课
8
2
2
2
2
0.25
八门课
13
2
2
2
2
0.25
八门课
11
2
1
3
2
0.2375
八门课
12
2
1
3
2
0.2375
八门课
14
2
1
3
2
0.2375
八门课
16
2
1
3
2
0.2375
八门课
5
1
3
2
2
0.2375
八门课
17
1
3
2
2
0.2375
八门课
10
2
1
2
3
0.225
八门课
15
2
1
2
3
0.225
八门课
6
2
2
2
0.225
通过观察分析表格我们可以看到:
1选修五门课时,方案1、2、3的
值在同组中相同,即各方案没有优劣之分;
2选修六门课时,方案6、1、2、3、7、9、10、20的
值相同且在同组中较大,优先考虑;
3选修七门课时,方案4、5、10、14的
值相同且在同组中较大,优先考虑;
4选修八门课时,3、9、18、1、2、4、47、8、13的
值相同且在同组中较大,优先考虑。
又注意到课程15、16、17、18的学分都为1,除人数限制外,没有其他约束条件,在涉及到这四门课程的方案中,如有其中的一门或几门已选满可以考虑这四门课程中剩余的课程来补充,以满足学校对学分的要求。
四、模型分析
本文中我们利用了0-1整数规划建立了学生选课策略模型,根据学校规定建立目标函数和约束条件,对模型进行求解并分类讨论了多种选课方案的可行性,进而而选出最优选课方案,以提高模型的而实用型。
此模型的缺点是我们不能一一列举出所有的解以供学生做出最优的选课方案,只能是在满足学校对学分要求的前提下得出一些较优的选课方案,为此还需要我们进行进一步探讨。
五、模型推广
若考虑学生的学习兴趣,课程的难易程度,则根据实际情况可以按照上述的方法分别赋予它们相应的参数:
学生对第
门课的喜欢程度表示为
(
,
越大表示学生对该门课越喜欢);第
门课的难易程度表示为
(
,
越大表示该课程对学生来说越难)。
接下来我们考虑学生对将要选取的方案中课程的的期望。
一般情况下,学生总是希望所选的课程既是自