王茜
【摘要】本文針對大學生選課問題,分別以選課門數(shù)最少及所得學分最多為目標,建立雙目標線性規(guī)劃模型,采用不同方法分別利用lingo軟件進行求解,獲得最優(yōu)方案.
【關鍵詞】線性規(guī)劃;雙目標;權重;大學生選課
隨著我國高校教學改革的推進,大學生選修課逐步增多,紛繁復雜的選修課令他們眼花繚亂.如何選擇課程,既要滿足課程間的前后順序和學校的要求,又要符合自己的興趣且達到門數(shù)最少.本文利用線性規(guī)劃,針對選修門數(shù)最少和學分最多,研究了兩種不同的選課模型,利用lingo程序求解,獲得了最優(yōu)方案.
一、問題的提出
某大三學生,第一學期的必修課只有一門(2個學分);可供限定選修的課程有8門,任意選修課程有10門.由于有些課程之間有聯(lián)系,所以可能在選修某門課程時必須同時選修其他課程,這18門課程的學分數(shù)和要求以及相應信息如下表所示.
按學校規(guī)定,每名學生每學期所修總分不能少于21學分,因此學生必須在上述18門課程中至少選修19學分,學校同時還規(guī)定學生每學期選修任意選修課的學分不能少于3學分,也不能超過6學分.為了達到學校的要求,請為該學生確定一種選課方案.
二、問題分析
由題意可知,我們首先要確定選哪門課的問題,每門課都有選與不選兩種情況.可引入0-1變量xi,即xi=1,選修第i門課,0,不選第i門課,ci表示第i門課的學分.學生選擇選修課時,考慮選修的門數(shù)越少越好,修得的學分越多越好.故考慮分別以選修門數(shù)和學分為目標建立模型.
三、模型建立與求解
設Z表示選修門數(shù),W表示所修得總學分.
1.建立模型一
得到結果x1=1,x2=1,x3=1,x4=1,x11=1,minZ=5,即最小需要選擇5門課程,編號為1,2,3,4,11.
方案二:由方案1得知,最少選修5門課程.當選修課程門數(shù)最少時,所修得學分越多越好,則以學分總數(shù)最大為目標,則lingo程序如下:
model:
sets:
kehao/1..18/:x,a;
endsets
data:
a=5,5,4,4,3,3,3,2,3,3,3,2,2,2,1,1,1,1;
enddata
max=@sum(kehao(i):a*x);
@sum(kehao(i):x)=5;
@sum(kehao(i)|i#gt#8:a*x)>=3;
@sum(kehao(i)|i#gt#8:a*x)<=6;
x(1)>=x(5);x(2)>=x(7);x(8)>=x(9);x(6)>=x(10);
x(4)>=x(11);x(5)>=x(12);x(7)>=x(13);x(6)>=x(14);
@for(kehao(i):@bin(x));
end
得到結果 x1=1,x2=1,x3=1,x4=1,x11=1,max W=21,即在選修5門課程的基礎上,最多可獲得21學分,所選課程編號為1,2,3,4,11.
2.建立模型二
由于學生的偏好不同,對選修課門數(shù)與學分重要性的認知不同,考慮對兩者取權重,建立新的模型如下:
目標函數(shù):minY=a·∑18i=1xi-b·∑18i-1cixi,
其中a,b為權重,約束條件同模型一.
利用lingo11.0進行求解,程序如下:
model:
sets:
kehao/1..18/:x,c;
endsets
data:
c=5,5,4,4,3,3,3,2,3,3,3,2,2,2,1,1,1,1;
enddata
z1=@sum(kehao(i):x);
z2=@sum(kehao(i):c*x);
min=a*z1-b*z2;
a=0.8;b=0.2;
@sum(kehao(i):c*x)>=19;
@sum(kehao(i)|i#gt#8:c*x)>=3;
@sum(kehao(i)|i#gt#8:c*x)<=6;
x(1)>=x(5);x(2)>=x(7);x(8)>=x(9);x(6)>=x(10);
x(4)>=x(11);x(5)>=x(12);x(7)>=x(13);x(6)>=x(14);
@for(kehao(i):@bin(x));
end
分取權重(0.7,0.3;0.8,0.2;0.9,0.1)進行比較,取權重a=0.8,b=0.2及a=0.9,b=0.1時,運行結果x1=1,x2=1,x3=1,x4=1,x11=1,最少選5門課程,最大學分21分.
四、結束語
對比上面兩個模型,本文針對大學生選課問題,設置0-1變量,以選課門數(shù)最少及所得學分最多為目標,從不同角度,通過設置雙目標以及引入權重將雙目標轉化為單目標的方法,建立線性規(guī)劃模型,利用lingo軟件進行求解,所得結果相同,即為最優(yōu)方案.雙目標模型在生活中的應用較為常見,但求解往往較為復雜,本文引入權重的思想對雙目標模型進行轉化,為雙目標模型的求解提供了新的思路.
【參考文獻】
[1]韓中庚.數(shù)學建模方法及其應用[M].北京:高等教育出版社,2009.
[2]姜啟源,謝金星,葉俊.數(shù)學模型[M].北京:高等教育出版社,2003.
[3]肖華勇.實用數(shù)學建模與軟件應用[M].西安:西北工業(yè)大學出版社,2008.