基于多目标规划的学生选课问题探索
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于多目标规划的学生选课问题探索
Xxx,xxx,xxx
摘要
学生选课问题属于一类整数线性优化问题,为了不同的学生需求需要设计相应的选课策略。针对第一问,本文在学校和院系的规定条件下建立了满足同学选课最少的0-1整数优化模型,并利用LINGO软件对其进行了求解,得到了选课最少是选五门,选择方案是选择课程1,2,6,10,14。针对第二问,本文综合考虑了在满足选修学分最少的条件下同学可以选最多选修课程,于是建立了双目标优化模型,并引入偏好系数把双目标优化问题转化为单目标优化问题,并再次利用LINGO软件对其进行了求解,得到了所选的课程是1,3,6,8,15,16,17,18。针对第三问,本文考虑了在选修课程限选人数不同的情况下,针对不同的学生类型,利用对不同目标加权的方法对问题进行优化求解,设计了不同的选课方案。最后本文对问题进行了进一步的讨论和模型的改进,并对模型进行了评价和推广,使得问题得到了圆满的解决。
关键词:0-1整数优化模型 LINGO 双目标优化模型偏好系数
0:背景分析
某同学考虑下学期的选课,其中必修课只有一门(2学分),可供选修的限定选修课(限
选课)有8门,任意选修课(任选课)有10门。由于有些课程之间相互关联,所以可能在选修某门课程时必须同时选修其他某门课程,课程信息见下表1:表1:课程信息表
按学校规定,学生每个学期选修的总学分数不能少于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限选人数最少。请考虑选课时的先后顺序(先选者先录,人满停选)。
1.问题提出
对于问题一,我们必须考虑在学校和院系的规定的条件下对同学选课最少进行求解。所以我们先从已知条件入手,把他们转化为约束条件,然后建立0-1整数优化模型,利用LINGO软件对其进行求解。
对于问题二,我们同样考虑在选修学分最少的情况下对同学选课最多进行求解。但两者不能同时都满足,所以我们必须把这个双优化模型转化为单优化模型,然后再利用LINGO对其进行求解。
问题三则是考虑了选修课程限选人数的问题,所以必须针对不同的学生类型设计相应的选择方案。同时考虑到选修的课程能否如愿选上,需要在已只知不同课程限选人数的情况下,利用对不同目标加权的方法对问题进行优化。
2符号说明与模型假设
2.1符号说明
表2:符号说明表
注:其它符号在文中另加说明
2.2模型假设
(1):各个同学在选修课程时不受其他因素影响,只受学分和选修课程门数影响。
(2):学生选课是独立的,相互之间不影响。
(3):选课的学生有两种类型,一类是对这门课真正感兴趣的,另一类是“混学分”的,且这两类各占选课学生人数的一半。
(4):学生的信息是不公开的。
(5):问题三中没有提到的课程表示人数没有限制。
3模型建立和求解
3.1问题一的解决
3.1.1模型的建立
用xi表示选修表中按照编号顺序的18门课程的选择(i=1,2,…18),其中xi 取值为1或者0。其定义如下:
采用目标规划的方法,考虑到学校的各种约束条件,将约束条件用数学表达
式表示为
一下几点:
1:要使选修课程的总学分数不少于18,既有下面的不等式:
2:任选课程的比例不能少于所修总学分的1/6,也不能超过1/3:
3:课程号为5、6、7、8的课程必须至少选一门:
4:选修某些课程必须同时选修其他课程,可以表示为:
在达到以上要求的情况下,只考虑选修课程最少的情况,相应的目标函数为:
在Lingo[1]中可以对该目标函数进行优化,其中约束条件为①②③④,由于上述条件中有大于关系,可以在两边乘以—1将约束条件全部转换成小于关系,这样便于在Lingo中求解.
最后本文建立了如下的优化模型
3.1.2模型的求解
利用LINGO软件求解可以得到
3.1.3问题一的结果
最后本文得到了在学校和院系的要求下选课最少是选五门,选择方案是选择课程1,2,6,10,14。
3.2问题二的解决
3.2.1模型的建立
对上述两个目标函数进行向量优化[2],其中将乘以-1,即得到了双目标规划:T=(min S,-max Z)。如下:
3.2.2模型的求解
在求解双线性规划问题时,我们引入偏好系数[3]的概念,即学生在选择学分最少和课程最多时的偏向趋势。设λ1为学生偏向选择学分最少的趋势,λ2为学生偏向选择课程最多的趋势。则最后的最优目标化为:
如果只考虑学分最少,而不管课程多少。即考虑时,λ1=1,λ2=0
用LINGO解得应该选择课程:3,4,6,8,9,14。
如果只考虑课程最多,而不管学分多少。即考虑λ1=0,λ2=1时,
用LINGO求解得到:应该选择课程:1,2,3,4,5,6,7,8,13,15,16,17,18
在选修学分最少的情况下,我们可以把和结合起
来,把
双优化问题转化为单优化问题,得到如下优化模型。
利用LINGO软件对其进行求解得到如下结果:
应该选择课程:2,6,7,8,14,16,17,18.
下面对学分和课程数进行加权形成一个新的目标计算,本文采用三七分于是问题转化
为
所以应该选择课程:1,3,6,8,15,16,17,18
3.2.3问题二的结果
最后本文得到了在学分和课程三七分的情况下,所选的课程是1,3,6,8,15,16,17,18。
3.3问题三的解决
为了解题的方便,对课程感兴趣的学生用G(Good)型表示和不感兴趣的学生用B(Bad)表示。
设某一课程的人数要求是N,用p1表示课程1,2,3,4的权重,用p2表示课程5,6,7,8的权重,用p3表示课程13,17,18的权重。因为课程1,2,3,4的限选人数比课程5,6,7,8
多,而课程5,6,7,8限选人数比13,17,18多,所以也可以用pi(i=1,2,3),来表示学生选上相应课程的概率。
首先我们针对G学生设计相应的选课方案,由之前分析知道G学生希望是在学生少的情况下多选一些课程,所以有第二问得到了他们所选的课程是:1,3,6,8,15,16,17,18。
因为p1>p2>p3,所以G学生选课的顺序是:1,3,6,8,17,18,15,16。
再针对B学生,也由之间的分析知道B学生希望在满足学分要求内所选课程越少越好,根据第一问得到了他们所选的课程是:1,2,6,10,14。因为p1>p2>p3,所以B学生选课的顺序是:1,2,6,10,14。
4模型的检验
我们从LINGO软件求解的结果可以看出问题一中的ReducedCost全部是正
的,它表明如果改变任何一变量xi,的结果将变大,同样问题二中