1、整数规划最优选课问题整数规划最优选课问题摘 要:利用整数规划的相关理论,分别考虑选课量最少、学分最少、选课人数受限的单一目标约束型整数规划模型。利用LINDO软件编程,给出了整数规划的解,研究了一个由0-1规划所描述的大学选课模型,从而得到该模型的最优方案。关键词:整数规划 LINDO软件 选课模型 最优方案。一、问题重述 某同学考虑下学期的选课,其中必修课只有一门(2学分),可供选修的限定选修课(限选课)有8门,任意选修课(任选课)有10门。由于有些课程之间相互关联,所以可能在选修某门课程时必须同时选修其他某门课程。根据所给数据以及学校对学生选课要求,建立数学模型研究要达到一定学分所选课程最
2、少的整数规划的最优解;学分最少的情况能最多选课门数的模型;针对某些课程人数限制建立模型探讨出最优方案。我们利用0-1整数规划建立选课模型。二、符号说明我们用表示是否选修课程;用表示该课程被选修;表示该课程被拒绝;用表示选修课程时必须同时选修课程。用变量,分别表示选修的限选课、任选课的学分数;表示总的学分(包括2个必修学分)。三、模型建立与求解问题1建立数学规划模型:上述问题中的决策变量只取0或1,称为0-1规划,是一种特殊的整数规划,下面求解该问题。程序1如下:Min x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12+x13+x14+x15+x16+x17+x18S
3、ubject to5x1+5x2+4x3+4x4+3x5+3x6+3x7+2x8-y1=03x9+3x10+3x11+2x12+2x13+2x14+x15+x16+x17+x18-y2=0y1+y2-y=-2y=206y2-y=03y2-y=0x2-x7=0x8-x9=0x6-x10=0x4-x11=0x5-x12=0x7-x13=0x6-x14=0x5+x6+x7+x8=1endint 18运行结果为:,其他,。即至少要选课程编号为1,4,6,10,11。该整数规划的最优解不唯一。一般的,得到一个整数规划的全部最优解是很困难度的。下面笔者通过对变量的约束进行了隐式枚举的方法给出具体解,方法如
4、下:在以上的程序中每次添加这样经过36次运算,得到的解如下表所示:表:约束变量选课方案限选课学分数任选课学分数所得总学分x1=02,4,6,10,1112620x1=11,2,6,10,1413520x2=01,4,6,10,1112620x2=11,2,6,10,1413520x3=02,4,6,10,1112620x3=11,3,4,11,15,1613520x4=01,2,6,10,1413520x4=12,4,6,10,1112620x5=01,4,6,10,1112620x5=11,4,5,11,12,1812620x6=01,2,4,11,1514420x6=11,2,6,10,1
5、413520x7=01,2,6,10,1413520x7=12,4,7,11,13,1812620x8=01,4,6,10,1112620x8=11,2,4,8,9,1116624x9=01,4,6,10,1112620x9=11,4,6,8,9,1014622x10=01,2,4,11,1514420x10=12,4,6,10,1112620x11=01,2,6,10,1413520x11=12,4,6,10,1112620x12=01,2,6,10,1413520x12=11,4,5,11,12,1812620x13=01,2,6,10,1413520x13=12,4,7,11,13,18
6、12620x14=02,4,6,10,1112620x14=11,2,6,10,1413520x15=01,4,6,10,1112620x15=11,2,4,11,1514420x16=01,4,6,10,1112620x16=11,2,4,11,1614420x17=01,4,6,10,1112620x17=11,2,4,11,1714420x18=01,2,6,10,1413520x18=11,2,4,11,1814420 注:其中数字1,4,6,10,11表示该方案中所选课程的代号,以下表格中相同。通过对比筛选得最优选课方案如下表所示:表:序列号选课方案限选课学分数任选课学分数所得总学分
7、11,4,6,10,111262022,4,6,10,111262031,2,6,10,1413520问题分析:通过运行程序得到的最优选课方案共有3种,这3种方案所得学分恰好是20。为了得到20学分选5门课程即可,即表二中的3种选课方案。这些结果反映了课程1、2、4、6、10、11、14应比较优先考虑。 问题2建立数学规划模型程序2如下:Max x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12+x13+x14+x15+x16+x17+x18Subject to5x1+5x2+4x3+4x4+3x5+3x6+3x7+2x8-y1=03x9+3x10+3x11+2x12
8、+2x13+2x14+x15+x16+x17+x18-y2=0y1+y2-y=-2y=206y2-y=03y2-y=0x2-x7=0x8-x9=0x6-x10=0x4-x11=0x5-x12=0x7-x13=0x6-x14=0x5+x6+x7+x8=1endint 18运行结果为,其他,。即至多可选课程的代号为1,3,5,8,15,16,17,18。该整数规划的最优解不唯一。下面笔者如问题一样通过对变量的约束惊醒隐式枚举的方法给出具体解,结果如下:表:约束变量选课方案限选课学分数任选课学分数所得总学分x1=02,4,7,8,15,16,17,1814420x1=11,5,6,8,12,15,1
9、6,1713520x2=01,3,6,8,15,16,17,1814420x2=12,3,7,8,15,16,17,1814420x3=01,4,6,8,15,16,17,1814420x3=12,3,6,8,15,16,17,1814420x4=02,3,6,8,15,16,17,1814420x4=12,4,6,8,15,16,17,1814420x5=01,3,6,8,15,16,17,1814420x5=11,5,6,8,14,15,16,1713520x6=01,3,5,8,15,16,17,1814420x6=12,3,6,8,15,16,17,1814420x7=01,4,6,8
10、,15,16,17,1814420x7=12,6,7,8,14,15,16,1713520x8=02,3,7,13,15,16,17,1812620x8=12,4,7,8,15,16,17,1814420x9=01,3,6,8,15,16,17,1814420x9=13,4,6,8,9,16,1813520x10=01,3,5,8,15,16,17,1814420x10=13,4,6,8,10,16,1813520x11=02,4,6,8,15,16,17,1814420x11=13,4,6,8,11,16,1813520x12=02,3,6,8,15,16,17,1814420x12=11,
11、4,5,12,15,16,17,1812620x13=01,4,6,8,15,16,17,1814420x13=12,4,7,13,15,16,17,1812620x14=01,4,5,12,15,16,17,1812620x14=11,4,6,14,15,16,17,1812620x15=02,6,7,8,14,16,17,1813520x15=12,4,6,8,15,16,17,1814420x16=02,6,7,8,14,15,17,1813520x16=12,4,6,8,15,16,17,1814420x17=02,6,7,8,14,15,16,1813520x17=11,3,5,8,
12、15,16,17,1814420x18=02,6,7,8,14,15,16,1713520x18=11,3,5,8,15,16,17,1814420通过筛选得得出18个最优解:表:序列号选课方案限选课学分数任选课学分数所得总学分11,3,5,8,15,16,17,181442022,3,6,8,15,16,17,181442031,5,6,8,12,15,16,171352041,3,6,8,15,16,17,181442052,6,7,8,13,15,16,171442061,4,5,8,15,16,17,181442072,3,7,8,15,16,17,181442081,4,6,8,15
13、,16,17,181442091,5,6,8,14,15,16,1713520102,3,7,13,15,16,17,1813520112,3,6,14,15,16,17,1812620121,4,6,14,15,16,17,1812620132,4,6,8,15,16,17,1814420141,4,5,12,15,16,17,1812620152,4,7,13,15,16,17,1812620161,3,5,12,15,16,17,1812620172,6,7,8,14,15,17,1813520182,6,7,8,14,15,16,1713520注:其中数字1,3,5,8,15,16,1
14、7,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门课程限选人数总和之比,并以此作为该层次所占的权重)。
15、b) 每种方案中属于第层的科目数为,方案的课程总数为(我们只考虑满足学校要求时这四种情况)。以作为选课的衡量参数,其中。越大说明此方案越优,越小此方案就越差。c) 第层次先选人数要比第层次限选人数少的多();d) 同层次之间各科限选人数相差几乎不大;e) 学生所修学分总数达到学校要求即可;f) 课程先选者先入,人数满时不能再选此课程。由第二问可以知道,在学生所修学分总数达到学校要求即可的前提下选修课程最多为8门课,故只需讨论7门课和6门课两种情况,再依据前面问题1、问题2可得出此问题的解答。学分为20分,选7门课程满足条件如下要求:借助LINDO软件,程序3运用隐式枚举方法,通过筛选后得到如下
16、最优解:表:序列号选课方案限选课学分数任选课学分数所得总学分12,4,7,11,16,17,181262023,4,6,8,11,17,181352031,4,6,11,15,16,181262041,5,6,8,12,14,161262052,3,6,8,14,16,171442061,2,7,13,16,17,181352071,4,5,11,16,17,181262082,4,6,11,16,17,181262091,4,6,11,16,17,1812620103,4,6,8,11,16,1813520111,4,6,11,15,17,1812620123,4,6,8,9,17,1813
17、520132,4,6,10,16,17,1812620143,4,6,8,9,16,1713520151,2,5,12,16,17,1813520162,6,7,8,13,14,1513520171,2,7,13,15,17,1812620182,4,7,11,15,17,1812620191,2,7,13,16,17,1812620202,4,7,11,15,16,1812620同理选6门课情形的最优解,运用程序4筛选后得到如下最优解如下:表:序列号选课方案限选课学分数任选课学分数所得总学分11,4,7,8,9,181442022,4,7,8,11,181442031,4,6,11,14,1
18、51262041,4,5,11,12,171262052,4,7,11,13,181262062,3,7,8,9,181442072,4,7,8,9,181442081,4,6,11,14,181262091,4,5,8,11,1814420102,4,6,8,10,1814420112,4,6,11,14,1812620122,4,7,11,13,1712620131,2,6,10,17,1813520141,3,6,10,14,1812620151,4,5,11,12,1812620162,6,7,8,9,1313520172,4,6,10,14,1812620181,2,6,10,15,
19、1713520191,2,6,10,16,1713520202,4,7,8,9,1714420211,2,6,10,16,1813520下面通过公式:计算各种方案下的值:表:层次数科目数方案序列号第一层次(1、2、3、4)第二层次(5、6、7、8)第三层次(9、10、11、12、14、15、16)第四层次(13、17、18)权重0.40.30.20.1五门课121200.3五门课221200.3五门课321200.3六门课623110.333333333六门课122110.283333333六门课222110.283333333六门课321300.283333333六门课722110.2833
20、33333六门课922110.283333333六门课1022110.283333333六门课2022110.283333333六门课421210.266666667六门课821210.266666667六门课1121210.266666667六门课1221210.266666667六门课1421210.266666667六门课1521210.266666667六门课1613110.266666667六门课1721210.266666667六门课1821210.266666667六门课1921210.266666667六门课2121210.266666667六门课521120.25六门课132
21、1120.25七门课413300.271428571七门课522210.271428571七门课1022210.271428571七门课1422210.271428571七门课222120.257142857七门课321310.257142857七门课1222120.257142857七门课1613210.257142857七门课2021310.257142857七门课121220.242857143七门课721220.242857143七门课821220.242857143七门课921220.242857143七门课1121220.242857143七门课1321220.242857143七
22、门课1521220.242857143七门课1721220.242857143七门课1821220.242857143七门课621130.228571429七门课1921130.228571429八门课313310.25八门课913310.25八门课1813310.25八门课122220.25八门课222220.25八门课422220.25八门课722220.25八门课822220.25八门课1322220.25八门课1121320.2375八门课1221320.2375八门课1421320.2375八门课1621320.2375八门课513220.2375八门课1713220.2375八门课
23、1021230.225八门课1521230.225八门课62220.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,除人数限制外,没有其他约束条件,在涉及到这四门课程的方案中,如有其中的一门或几门已选满可以考虑这四门课程中剩余的课程来补
24、充,以满足学校对学分的要求。四、模型分析本文中我们利用了0-1整数规划建立了学生选课策略模型,根据学校规定建立目标函数和约束条件,对模型进行求解并分类讨论了多种选课方案的可行性,进而而选出最优选课方案,以提高模型的而实用型。此模型的缺点是我们不能一一列举出所有的解以供学生做出最优的选课方案,只能是在满足学校对学分要求的前提下得出一些较优的选课方案,为此还需要我们进行进一步探讨。五、模型推广若考虑学生的学习兴趣,课程的难易程度,则根据实际情况可以按照上述的方法分别赋予它们相应的参数:学生对第门课的喜欢程度表示为(,越大表示学生对该门课越喜欢);第门课的难易程度表示为(,越大表示该课程对学生来说越难)。接下来我们考虑学生对将要选取的方案中课程的的期望。一般情况下,学生总是希望所选的课程既是自
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1