姜遠彥

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