姜遠(yuǎn)彥
摘 要:本文通過實例介紹運用LINGO軟件求解線性規(guī)劃問題。
關(guān)鍵詞:線性規(guī)劃問題 LINGO軟件 求解
線性規(guī)劃是運籌學(xué)中形成最早、最成熟的一個分支,是優(yōu)化理論最基礎(chǔ)的部分,也是運籌學(xué)最核心的內(nèi)容之一。線性規(guī)劃主要是用來確定具有多個變量的線性函數(shù),在變量滿足線性約束條件下的最優(yōu)解。目前廣泛應(yīng)用于工農(nóng)業(yè)、軍事、交通運輸、決策管理、物流管理等領(lǐng)域,線性規(guī)劃的方法已經(jīng)成為求解各種優(yōu)化問題的主要方法。
1947 年丹捷格(G.B.Dantzig)提出的單純形方法是求解一般線性規(guī)劃問題的通用方法,對于數(shù)據(jù)簡單的線性規(guī)劃問題用這種方法手工求解還是可行的,但對于數(shù)據(jù)較復(fù)雜的規(guī)劃問題手工求解就變得比較困難,計算量太大,容易出錯,因此運用計算機相關(guān)軟件求解線性
規(guī)劃問題便成為首選的方式。目前,已有多種軟件可提供線性規(guī)劃問題的計算機求解,其中包括專業(yè)優(yōu)化軟件LINDO/LINGO、WINQSB,具備強大計算功能的MATLAB、MATHEMATICA,以及具有規(guī)劃求解功能的EXCEL軟件。本文介紹運用LINGO軟件來求解具體的線性規(guī)劃問題。
一、線性規(guī)劃基本概念
1.線性規(guī)劃的定義
線性規(guī)劃是指如何最有效或最佳地謀劃經(jīng)濟活動。它所研究的問題有兩類:一類是指一定資源的條件下,達到最高產(chǎn)量、最高產(chǎn)值、最大利潤;一類是,任務(wù)量一定,如何統(tǒng)籌安排,以最小的消耗去完成這項任務(wù)。如最低成本問題、最小投資、最短時間、最短距離等問題。前者是求最大值問題,后者是求最小值問題。總之,線性規(guī)劃是在一定限制條件下,求目標(biāo)函數(shù)最值的問題。
2.線性規(guī)劃三要素
(1)目標(biāo)函數(shù)最優(yōu)化——單一目標(biāo)、多重目標(biāo)問題如何處理?
(2)實現(xiàn)目標(biāo)的多種方法——若實現(xiàn)目標(biāo)只有一種方法不存在規(guī)劃問題。
(3)生產(chǎn)條件的約束——資源是有限的、資源無限不存在規(guī)劃問題。
3.線性規(guī)劃模型的基本結(jié)構(gòu)
(1)決策變量——未知數(shù)。它是通過模型計算來確定的決策因素。又分為實際變量——求解的變量和計算變量,計算變量又分松弛變量(上限)和人工變量(下限)。
(2)目標(biāo)函數(shù)——經(jīng)濟目標(biāo)的數(shù)學(xué)表達式。目標(biāo)函數(shù)是求變量的線性函數(shù)的極大值和極小值這樣一個極值問題。
(3)約束條件——實現(xiàn)經(jīng)濟目標(biāo)的制約因素。它包括:生產(chǎn)資源的限制(客觀約束條件)、生產(chǎn)數(shù)量、質(zhì)量要求的限制(主觀約束條件)、特定技術(shù)要求和非負(fù)限制。
二、線性規(guī)劃問題的數(shù)學(xué)模型
1.模型建立的步驟
從實際問題中建立數(shù)學(xué)模型一般有以下三個步驟:
(1)根據(jù)影響所要達到目的的因素找到?jīng)Q策變量;
(2)由決策變量和所在達到目的之間的函數(shù)關(guān)系確定目標(biāo)函數(shù);
(3)由決策變量所受的限制條件確定決策變量所要滿足的約束條件。
2.線性規(guī)劃問題數(shù)學(xué)模型的基本形式
(1)線性規(guī)劃問題數(shù)學(xué)模型的一般形式是:
三、線性規(guī)劃問題的具體實例以及模型的建立
1.具體實例
某奶制品加工廠用牛奶生產(chǎn),兩種奶制品,1桶牛奶可以在設(shè)備甲上用12小時加工成3 公斤,或者在設(shè)備乙上用8小時加工成4 公斤,且12每公斤獲利24元,每公斤獲利16元?,F(xiàn)在加工廠每天能得到50桶牛奶的供應(yīng),每天正式工人總的工作時間為480小時,并且設(shè)備甲每天至多能加工100公斤,設(shè)備乙的加工能力沒有限制。試為該廠制定一個生產(chǎn)計劃,使每天獲利最大。
2.模型建立
每天50 桶牛奶,工人總工作時間共480小時,至多加工100公斤.設(shè)用桶牛奶生產(chǎn),用桶牛奶生產(chǎn),下面給出該問題的目標(biāo)函數(shù)和約束條件:
四、利用LINGO軟件求解
1. LINGO軟件簡介
LINGO是美國LINDO系統(tǒng)公司開發(fā)的一套專門用于求解最優(yōu)化問題的軟件包。LINGO用于求解求解線性規(guī)劃、二次規(guī)劃、非線性規(guī)劃,以及一些線性和非線性方程組的求解、代數(shù)方程求根等。
一般地,使用LINGO求解運籌學(xué)問題可以分為以下兩個步驟來完成:
(1)根據(jù)實際問題,建立數(shù)學(xué)模型,即使用數(shù)學(xué)建模的方法建立優(yōu)化模型;
(2)根據(jù)優(yōu)化模型,利用LINGO 來求解模型。主要是根據(jù)LINGO 軟件,把數(shù)學(xué)模型轉(zhuǎn)譯成計算機語言,借助于計算機來求解。
2. LINGO軟件求解
以下應(yīng)用LINGO9.0軟件求解。點開軟件,首先在LINGO 界面輸入以下程序 :
MODEL:
max=72*x1+64*x2;
x1+x2<=50;
12*x1+8*x2<=480;
3*x1<=100;
END
然后點擊計算 ,可得出下列結(jié)果 :
Global optimal solution found.
Objective value: 3360.000
Total solver iterations: 2
Variable Value Reduced Cost
X1 20.00000 0.000000
X2 30.00000 0.000000
Row Slack or Surplus Dual Price
1 3360.000 1.000000
2 0.000000 48.00000
3 0.000000 2.000000
4 40.00000 0.000000
從上面結(jié)果中不僅可以得到20桶牛奶生產(chǎn),30桶牛奶生產(chǎn),總利潤為3360元,還可以得到靈敏度分析的結(jié)果。分析結(jié)果:當(dāng)兩個變量,增加一個單位時,目標(biāo)函數(shù)的減少為零(即目標(biāo)函數(shù)不變)。對于三種資源:原料無剩余,時間無剩余,加工能力剩余40小時,其中“資源”剩余為零的約束為緊約束(有效約束),即原料和時間為緊約束;原料增加1單位, 利潤增加48,時間增加1單位, 利潤增加2 ,加工能力增減不影響利潤。
結(jié)語
線性規(guī)劃是輔助人們進行科學(xué)管理的一種數(shù)學(xué)方法,在工農(nóng)業(yè)生產(chǎn)、經(jīng)濟管理、交通運輸?shù)确矫娑加袠O其廣泛的應(yīng)用。但其建立數(shù)學(xué)模型的正確與否,手算的繁瑣復(fù)雜程度給線性規(guī)劃廣泛的推廣與應(yīng)用帶來了許多不便。但是通過使用LINGO軟件,只需編寫很簡單的幾行程序,就可以輕松求解,同時也提高了精確度。因此,利用LINGO軟件求解線性規(guī)劃問題逐漸成為科學(xué)界的共識。
參考文獻
[1]昊祈宗.運籌學(xué)[M].北京:機械工業(yè)出版社,2002.
[2]謝金星,薛毅.優(yōu)化建模LINDO/LINGO軟件[M].北京:清華大學(xué)出版社,2005.