林志程
摘要:該文提出了用枚舉法解決線性函數(shù)中的整數(shù)規(guī)劃問題。應(yīng)用Matlab語言的線性規(guī)劃函數(shù)linprog,先取消整數(shù)限制求解;因目標函數(shù)為線性函數(shù),它具有一致傾斜性,再求出整數(shù)規(guī)劃的最優(yōu)解。由于文章所提算法可以很便捷算出整數(shù)規(guī)劃的最優(yōu)解,因而避免了原有算法的一些困境。
關(guān)鍵詞: Matlab語言;整數(shù)規(guī)劃;枚舉法;線性規(guī)劃函數(shù);最優(yōu)解
中圖分類號:TP319 文獻標識碼:A 文章編號:1009-3044(2013)09-2122-03
1 Matlab語言線性規(guī)劃函數(shù)linprog介紹
[x,fval,exitflag,output,lambda]=linprog(f,a,b,aeq,beq,lb,ub).
在輸入部分,f是目標函數(shù),它以列向量形式出現(xiàn);a、b分別是線性規(guī)劃中不等式約束的技術(shù)系數(shù)矩陣和資源向量;aeq、beq分別是線性規(guī)劃中的技術(shù)系數(shù)矩陣和資源向量;這其中如有缺省,則以[] 代替;lb是決策變量下界,ub是決策變量上界。在輸出部分,x是線性規(guī)劃最優(yōu)解,fval是線性規(guī)劃最優(yōu)值;exitflag是輸出標記,當(dāng)exitflag=1時,表示線性規(guī)劃有解,當(dāng)exitflag=-1時,表示線性規(guī)劃無解;output是指算法和迭代情況;lambda是指存儲情況。當(dāng)程序通過時,屏目上有一段文字:Optimization terminated successfully(最優(yōu)化成功地結(jié)束),它表示程序通過。當(dāng)程序中有問題時, 屏目上會用紅字告知,在某行某列有什么性質(zhì)的問題。這些都顯示出Matlab語言的智能化的優(yōu)勢。下面舉例說明Matlab語言線性規(guī)劃函數(shù)的應(yīng)用。
3 結(jié)束語
Matlab語言是由美國Marhwords公司于1984年正式推出,后集語言專家和各類技術(shù)專家的共同努力,版本逐次更新, 功能更為完善。該文采用的是2007年1月發(fā)行的Matlab 7.4版,跟原有的計算機語言相比,它具有簡潔、直觀和智能化的優(yōu)勢。作者所提算法較原有算法,具有簡潔、快捷和直觀的特點,值得推廣。
參考文獻:
[1] 張志涌.精通MATLAB 6.5版[M].北京:北京航空航天大學(xué)出版社,2003.3.
[2] 胡運權(quán).運籌學(xué)教程[M].2版.北京:清華大學(xué)出版社,2003.
[3] 胡知能,徐玖平.運籌學(xué)——線性系統(tǒng)優(yōu)化[M].北京:科學(xué)出版社,2003.
[4] 刁在筠,鄭漢鼎,劉家壯,等.運籌學(xué)[M]. 2版.北京:高等教育出版社,2001.9.
[5] 吳良剛,徐選華,王堅強,等.運籌學(xué)[M].長沙:湖南人民出版社,2001.3.
[6] 王沫然.Matlab與科學(xué)計算(二) [M].西安:電子出版社,2003.9.
[7] 羅建軍,楊琦.精講多練MATLAB[M].西安:西安交通大學(xué)出版社,2002.
[8] The MathWorks Inc. MATLAB Help System[M]. Natick: The MathWorks Inc.,2002.