賓茂君,施翠云
摘要:運(yùn)籌學(xué)是一門研究生產(chǎn)經(jīng)營(yíng)過(guò)程中目標(biāo)達(dá)到最優(yōu)的課程,該文通過(guò)借助Lingo優(yōu)化軟件,把運(yùn)籌學(xué)中整數(shù)規(guī)劃問(wèn)題進(jìn)行研究,揭示整數(shù)規(guī)劃問(wèn)題的本質(zhì),從而讓學(xué)生更容易理解運(yùn)籌學(xué)的本質(zhì)和內(nèi)涵,使得學(xué)生對(duì)運(yùn)籌學(xué)這門課程產(chǎn)生濃厚的興趣。
關(guān)鍵詞:Lingo軟件;最優(yōu)化;運(yùn)籌學(xué)
中圖分類號(hào):G642? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)35-0106-03
1 引言
運(yùn)籌學(xué)[1-4]是研究目標(biāo)過(guò)程最優(yōu)的數(shù)學(xué)基礎(chǔ)學(xué)科,它的背景問(wèn)題來(lái)源于我們的實(shí)際生活,包括生產(chǎn)經(jīng)營(yíng)、經(jīng)濟(jì)管理、金融決策等內(nèi)容。它是經(jīng)濟(jì)學(xué)、管理學(xué)和自然科學(xué)學(xué)科的學(xué)生一門專業(yè)必須課程,因此研究如何用通俗易懂的語(yǔ)言來(lái)教授運(yùn)籌學(xué)就顯得十分必要。另外,Lingo優(yōu)化軟件[5]是由美國(guó)LINDO系統(tǒng)公司(Lindo System Inc.)推出的,可以用于求解非線性規(guī)劃,也可以用于一些線性和非線性方程組的求解等[6-7],功能十分強(qiáng)大,是求解優(yōu)化模型[8]的最佳選擇。相對(duì)于其他優(yōu)化軟件來(lái)說(shuō),Lingo優(yōu)化軟件的編譯語(yǔ)言比較簡(jiǎn)單通俗易懂,學(xué)生更容易掌握。因此,運(yùn)用Lingo優(yōu)化軟件來(lái)講授運(yùn)籌學(xué)知識(shí),就具有重要的研究意義。
由于運(yùn)籌學(xué)的知識(shí)點(diǎn)比較多,涉及的面比較廣,本文通過(guò)最具代表性的整數(shù)規(guī)劃問(wèn)題來(lái)介紹Lingo軟件在運(yùn)籌學(xué)教學(xué)過(guò)程中的應(yīng)用。
2 整數(shù)規(guī)劃問(wèn)題的Lingo軟件教學(xué)
整數(shù)規(guī)劃是指規(guī)劃中的變化量(部分或全部)是整數(shù)。在規(guī)劃問(wèn)題中,有的決策變量是小數(shù)或者是分?jǐn)?shù)的形式,但是涉及機(jī)器的臺(tái)數(shù),工作的人數(shù)或者裝卸物資的車輛數(shù),都涉及整數(shù)的概念。人們?yōu)榱藵M足這些整數(shù)的要求,通常通過(guò)將所得到的數(shù)值進(jìn)行四舍五入方法取得整數(shù),但是這樣的方法未必是可行解或最優(yōu)解。現(xiàn)在研究者們通常通過(guò)分支定界法或割平面法來(lái)求最優(yōu)解,這兩種方法主要針對(duì)決策變量是少數(shù)幾個(gè)的情形,對(duì)于決策變量是多個(gè)的情形就很難求解最優(yōu)解。
例1 某鐵器加工廠要制作100套鋼架,每套要用長(zhǎng)為2.9米,2.1米和1.5米的圓鋼各一根。已知原料長(zhǎng)為7.4米,問(wèn)應(yīng)如何下料,可使材料最省?
分析:在長(zhǎng)度確定的原料上截取三種不同規(guī)格的圓鋼,可以歸納出8種不同的下料方案:
[圓鋼(米) Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅶ 2.9 1 2 0 1 0 1 0 0 2.1 0 0 2 2 1 1 3 0 1.5 3 1 2 0 3 1 0 4 料頭(米) 0 0.1 0.2 0.3 0.8 0.9 1.1 1.4 ]
該問(wèn)題歸納為如何混合使用這8種不同的下料方案,來(lái)制造100套鋼架,且要使剩余的料頭總長(zhǎng)為最短。不妨設(shè)[xi]表示用第[i]種下料方案下料的原料根數(shù),[i=1,2,…,8],有目標(biāo)函數(shù):使圓鋼料頭總長(zhǎng)度達(dá)到最小值
[min z=0.1x2+0.2x3+0.3x4+0.8x5+0.9x6+1.1x7+1.4x8]
約束條件:三種規(guī)格圓鋼根數(shù)都是100根,則
[x1+2x2+x4+x6=1002x3+2x4+x5+x6+3x7=1003x1+x2+2x3+3x5+x6+4x8=100]
由于圓鋼是整數(shù),不能取小數(shù),因此有非負(fù)取整條件約束[xi≥0(i=1,2,…,8)]且取整數(shù)。
對(duì)于這個(gè)問(wèn)題,如果運(yùn)用分支定界法或割平面法來(lái)求解,就顯得比較困難。而運(yùn)用Lingo軟件來(lái)求解就比較方便快捷。該問(wèn)題的Lingo程序如下:
min Z=0.1*x2+0.2*x3+0.3*x4+0.8*x5+0.9*x6+1.1*x7+1.4*x8
s.t.
x1+2*x2+ x4+ x6 =100;
2*x3+2*x4+x5+ x6+3*x7=100;
3*x1+x2+2*x3+3*x5+x6+4*x8=100;
@gin(x1); @gin(x2); @gin(x3); @gin(x4); @gin(x5); @gin(x6); @gin(x7); @gin(x8);
通過(guò)對(duì)程序進(jìn)行求解可以得到當(dāng)?shù)冖?、Ⅱ、Ⅳ種方案分別取30、10、50根時(shí),所剩余的圓鋼是16米。同時(shí),計(jì)算結(jié)果也給出了每個(gè)變化量之間變化范圍,這極大方便了生產(chǎn)者在生產(chǎn)經(jīng)營(yíng)過(guò)程中根據(jù)市場(chǎng)經(jīng)濟(jì)情況對(duì)生產(chǎn)進(jìn)行及時(shí)調(diào)整。
另外,在整數(shù)規(guī)劃中還有一類比較常見的模型——0-1整數(shù)規(guī)劃問(wèn)題,它在我們的生活當(dāng)中經(jīng)常見到。例如下面的例子:
例2 某游泳隊(duì)擬選用甲、乙、 丙、丁 四名游泳運(yùn)動(dòng)員組成一個(gè) 4×100 m 混合泳接力隊(duì), 參加今年的錦標(biāo)賽。他們的 100 m 自由泳、蛙泳、蝶泳、仰泳的成績(jī)?nèi)绫硭荆?/p>
甲、 乙、丙、丁 四名隊(duì)員各自游什么姿勢(shì) , 才最有可能取得好成績(jī)?
由于游泳運(yùn)動(dòng)員每人只能參加四種泳姿的其中一種,這表明該問(wèn)題是典型的0-1整數(shù)規(guī)劃問(wèn)題。為此,不妨設(shè)這四名運(yùn)動(dòng)員參加4種泳姿的變量為[xij(i,j=1,...,4)],由目標(biāo)是要求總花費(fèi)時(shí)間最短,則目標(biāo)函數(shù)為:
[min? f=56x11+74x12+61x13+63x14+63x21+69x22+65x23+71x24 +57x31+77x32+63x33+67x34+55x41+76x42+62x43+62x44]
又由于每個(gè)運(yùn)動(dòng)員只參加1種泳姿并且每種泳姿只由其中1名運(yùn)動(dòng)員參加,因此,可知[xij(i,j=1,...,4)]只能取0或1。于是,問(wèn)題的約束條件為
[x11+x12+x13+x14=1; x21+x22+x23+x24=1;x31+x32+x33+x34=1; x41+x42+x43+x44=1;x11+x21+x31+x41=1; x12+x22+x32+x42=1;x13+x23+x33+x43=1; x14+x24+x34+x44=1;xij=0或1,? i,j=1,2,3,4.]
對(duì)于這問(wèn)題,如果用枚舉法是比較困難的,又由于涉及多個(gè)變量,用分支定界法或割平面法來(lái)求解也是不可行的,但是Lingo優(yōu)化軟件就比較便捷,它的Lingo程序如下:
sets:
ren/A,B,C,D /:rent;
job/1..4/:jobt;
link(ren,job):time,x;
endsets
data:
time=
56,74,61,63
63,69,65,71
57,77,63,67
55,76,62,62;
enddata
min=@sum(link:time*x);
@for(ren(i):@sum(job(j):x(i,j))=1);
@for(job(j):@sum(ren(i):x(i,j))=1);
@for(link:@bin(x));
end
通過(guò)運(yùn)行程序可得:
甲游蝶泳,乙游蛙泳,丙游自由泳,丁游仰泳的方式下,比賽的時(shí)間達(dá)到最短249秒。
體育競(jìng)技比賽是為了獲取更好的成績(jī),如果不是利用Lingo優(yōu)化軟件計(jì)算,而是人工用筆計(jì)算或讓比賽選手去實(shí)踐計(jì)算結(jié)果,這將會(huì)耗費(fèi)大量的人力物力和財(cái)力。
從例1和例2可以看出,生產(chǎn)問(wèn)題和體育競(jìng)技比賽都離不開整數(shù)規(guī)劃。在整數(shù)規(guī)劃教學(xué)過(guò)程中引入Lingo優(yōu)化軟件進(jìn)行教學(xué),可以將較為復(fù)雜的整數(shù)規(guī)劃問(wèn)題快速解決計(jì)算,并將有助于拓寬學(xué)生的學(xué)習(xí)視野,提高學(xué)生們的求知欲望,提高學(xué)生們的實(shí)踐動(dòng)手能力,讓學(xué)生懂得將所學(xué)習(xí)的知識(shí)應(yīng)用到生活實(shí)際當(dāng)中去。
3 結(jié)語(yǔ)
在智能信息時(shí)代的今天,運(yùn)籌學(xué)是實(shí)用性較強(qiáng)的新興學(xué)科,社會(huì)對(duì)運(yùn)籌優(yōu)化問(wèn)題要求也越來(lái)越高,這迫使相關(guān)專業(yè)的學(xué)生學(xué)習(xí)好運(yùn)籌學(xué)也帶來(lái)了一定的挑戰(zhàn)。而運(yùn)籌學(xué)的優(yōu)化理論、優(yōu)化方法越來(lái)越精細(xì),但書本的知識(shí)有點(diǎn)陳舊、枯燥乏味,如果只用傳統(tǒng)的黑白與課本教學(xué),將無(wú)法滿足智能信息時(shí)代對(duì)學(xué)生越來(lái)越高的要求。為此,利用Lingo優(yōu)化軟件來(lái)幫助運(yùn)籌學(xué)的教學(xué),并加入生活生產(chǎn)元素也許會(huì)給學(xué)生學(xué)習(xí)運(yùn)籌學(xué)帶來(lái)一條寬廣的道路。通過(guò)運(yùn)用Lingo優(yōu)化軟件的引入,可以將復(fù)雜問(wèn)題簡(jiǎn)單化,拓寬學(xué)生的知識(shí)面,拓展學(xué)生的動(dòng)手能力,提高課堂學(xué)生的學(xué)習(xí)效率,激發(fā)新一代大學(xué)生的學(xué)習(xí)潛能,也為未來(lái)的學(xué)習(xí)工作提供能力擔(dān)當(dāng)感和責(zé)任感。
參考文獻(xiàn):
[1] 黃健,劉國(guó)棟.運(yùn)籌學(xué)[M].長(zhǎng)沙:湖南師范大學(xué)出版社,2015.
[2] 胡運(yùn)權(quán).運(yùn)籌學(xué)習(xí)題集[M].3版.北京:清華大學(xué)出版社,2002.
[3] 吳祈宗.運(yùn)籌學(xué)與最優(yōu)化方法[M].北京:機(jī)械工業(yè)出版社,2003.
[4] Wayne L.Winston.運(yùn)籌學(xué)應(yīng)用范例與解法[M]. 楊振凱,等譯.北京:清華大學(xué)出版社,2006.
[5] 謝金星,薛毅.優(yōu)化建模與LINDO/LINGO軟件[M].北京:清華大學(xué)出版社,2005.
[6] 李林曙.線性代數(shù)與線性規(guī)劃[M].北京:中國(guó)人民大學(xué)出版社,2010.
[7] 許紹吉.線性規(guī)劃[M]. 北京:科學(xué)技術(shù)出版社,1997.
[8] 黃平, 孟永鋼.最優(yōu)化理論與方法[M].北京:清華大學(xué)出版社,2009.
【通聯(lián)編輯:王力】