官术网_书友最值得收藏!

1.5 貨物運送的線性規劃模型案例

一架貨機有3個貨艙:前艙、中艙和后艙。3個貨艙所能裝載的貨物最大重量和體積的限制如表1-4所示。

表1-4 貨艙數據

為在飛行過程中保持平衡,3個貨艙裝載的貨物必須與其最大的容量成比例。

現有4類貨物需要用該貨機進行裝運,貨物的規格以及裝運后所獲得的利潤如表1-5所示。

表1-5 貨物規格及利潤表

建立數學模型計算如何裝運才能使得貨機飛行利潤最大。

問題分析

這個優化問題的目標是使得貨機飛行獲利最大,而要做的決策為裝運方案,即在前艙、中艙、后艙分別裝運4類貨物的重量。決策變量取值需要受到4個條件的限制:貨艙重量、貨艙體積、飛行平衡、運送貨物總量。按照題目所給條件將決策變量、目標函數和約束條件用數學符號及公式表示出來,就可以得到相應的數學模型。

模型假設

1.每種貨物可以分布在一個或者多個貨艙內;

2.不同種類的貨物可以放在同一貨艙且不留間隙;

3.每種貨物可以無限細分,即貨物在各艙內的存儲量為非負連續實數。

模型設計

按照優化模型的三要素(決策變量、目標函數、約束條件)建立數學模型。設在前艙放置4類貨物的數量為x11,x12,x13,x14;在中艙放置4類貨物的數量為x21,x22,x23,x24;在后艙放置4類貨物的數量為x31,x32,x33,x34。因此,貨物1的重量可表示為,貨物2的重量可表示為,貨物3的重量可表示為,貨物4的重量可表示為。設飛行裝運獲利為z元,優化模型的目標函數如下:

在確立目標函數后,決策變量取值受到貨艙重量、貨艙體積、飛行平衡、運送貨物總量以及決策變量屬性的限制。

? 貨艙重量的限制:前艙、中艙、后艙裝載的貨物重量不得超過貨艙重量上限。

? 貨艙空間的限制:前艙、中艙、后艙裝載的貨物空間不得超過貨艙空間上限。

? 飛行平穩性的限制:為在飛行過程中保持平衡,3個貨艙裝載的貨物必須與其最大的容量成比例。

? 貨物總量的限制:裝載的貨物總重量不得超過運送貨物總重量。

? 決策變量屬性的限制:xmn均不能為負值,即xmn≥0,m=1,2,3;n=1,2,3,4。

綜上所述,所建立貨機運輸問題的優化模型如下:

模型求解

在LINGO軟件中輸入如下代碼求解上述線性規劃模型:

運行如上程序,將顯示求解狀態如圖1-8所示。

圖1-8 貨艙運輸問題LINGO求解狀態

圖1-8顯示:模型類型屬于LP(線性規劃模型),目標函數值的狀態為Global Opt(全局最優解),目標函數最優值為121516,迭代次數為20次。模型運算的具體結果顯示在Solution Report如下:

模型運算的結果如表1-6所示。在前艙存儲10噸貨物2,在中艙存儲約12.95噸貨物3和約3.05噸貨物4,在后艙存儲5噸貨物2和3噸貨物3。采用上述運輸策略可以獲得最大利潤為121515.8元。

表1-6 具體運算結果

為便于調用MATLAB軟件求解上述線性規劃模型時,需將貨物運輸的線性規劃模型寫成矩陣形式如下:

由于本題涉及變量矩陣較大,為節省篇幅直接給出調用linprog命令解決問題的MATLAB代碼。

注意 與LINGO代碼不同,當采用MATLAB求解線性規劃模型時,軟件并不默認決策變量非負性。因此,在代碼中需要添加決策變量的非負要求,即增加決策變量的取值下限。

運行上述程序,具體結果顯示如下:

模型運算的結果如表1-7所示。在前艙存儲7噸貨物2和3噸貨物3,在中艙存儲約12.95噸貨物3和約3.05噸貨物4,在后艙存儲8噸貨物2。采用上述運輸策略可以獲得最大利潤為121515.8元。

表1-7 具體運算結果

采用MATLAB軟件Optimizationtool工具箱求解上述線性規劃模型時模型結果顯示如圖1-9。

圖1-9 MATLAB軟件optimtool工具箱求解線性規劃模型示意

最后,我們來了解Python求解上述線性規劃模型的方法,其程序如下:

具體結果顯示如下:

模型運算的結果如表1-8所示。在前艙存儲7噸貨物2和3噸貨物3,在中艙存儲約12.95噸貨物3和約3.05噸貨物4,在后艙存儲8噸貨物2。采用上述運輸策略可以獲得最大利潤為121515.8元。

表1-8 具體運算結果

對比MATLAB軟件、Python軟件與LINGO軟件得到的結果,細心的讀者可以發現雖然不同軟件得到的目標函數值相同,但是決策方案并不相同。這說明線性規劃模型中可能存在多種決策方案達到最優值,但最優目標值往往只有一個。讀者在自行驗證上述程序時可以發現,不同版本的MATLAB軟件、Python軟件由于精度不同、迭代初始值不同在最終結果輸出時可能會有細微差別。

主站蜘蛛池模板: 利川市| 蓬安县| 隆子县| 大兴区| 胶州市| 北宁市| 封丘县| 萝北县| 璧山县| 龙井市| 思南县| 张北县| 历史| 临猗县| 海安县| 孙吴县| 锦州市| 班戈县| 凤翔县| 漳平市| 广水市| 泗阳县| 通渭县| 信宜市| 高淳县| 泾阳县| 房产| 珠海市| 台中市| 青冈县| 奉新县| 荆门市| 巫山县| 察雅县| 社旗县| 务川| 唐山市| 晋城| 定襄县| 汉川市| 潜江市|