日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

线性规划 - 用单纯形法解决LP问题 - (Matlab、Lingo建模)

發布時間:2024/7/5 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线性规划 - 用单纯形法解决LP问题 - (Matlab、Lingo建模) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????線性規劃研究時間較早,在實際應用中也比較成熟,它是一種輔助人們進行科學管理的數學方法,為合理地利用有限的人力、物力、財力等資源作出的最優決策,提供科學的依據。

課題名稱:配貨問題,使運費收入最大

? ?現有一艘輪船,分前中后三個艙位,相應的容積與最大允許載重量如表1所示。現有一批A,B,C三種貨物待運,已知相關數據如表2所示。

表1?? 各船艙的容積和最大載重量

前艙

中艙

后艙

容積/m

4000

5400

1500

最大載重量/t

2000

3000

1500

表2??? 三種貨物的相關數據

貨物

數量/件

體積/(m/件)

重量/(t/件)

運價/(元/件)

A

600

10

8

1000

B

1000

5

6

700

C

800

7

5

600

為了保證航運安全,要求前中后艙在實際載重量上大體保持各船艙最大允許載重量的比例要求,具體要求:前后艙分別與中艙之間載重量比例上偏差不超過15%,前后艙之間不超過10%,問題是:在保證航運安全要求的條件下,輪船應裝載A,B,C三種貨物各多少件,使運費收入最大。
?

解法一:matlab解法

解:設輪船前艙應裝載A,B,C三種貨物各x11,x21,x31件;輪船中艙應裝載A,B,C三種貨物各x12,x22,x32件;輪船后艙應裝載A,B,C三種貨物各x13,x23,x33件;則有:

max ?z=1000*(x(11)+x(12)+x(13))+700*(x(21)+x(22)+x(23))+600*(x(31) +x(32)+x(33))

st.

轉化為求最小問題:

min ??w= - 1000*(x(11)+x(12)+x(13))-700*(x(21)+x(22)+x(23))-600*(x(31)+x(32)+x(33))

st.

Matlab程序:

c=[-1000,-1000,-1000,-700,-700,-700,-600,-600,-600]; A=[10,0,0,5,0,0,7,0,0; 0,10,0,0,5,0,0,7,0; 0,0,10,0,0,5,0,0,7; 8,0,0,6,0,0,5,0,0; 0,8,0,0,6,0,0,5,0; 0,0,8,0,0,6,0,0,5; 9.2,-8,0,6.9,-6,0,5.75,-5,0; -8, 9.2,0, -6, 6.9,0, -5, 5.75,0; 0,-8, 9.2,0, -6, 6.9,0, -5, 5.75; 0,9.2,-8,0,6.9,-6,0,5.75,-5; -8,0,8.8,-6,0,6.6,-5,0,5.5; 8.8,0,-8,6,0,-6.6,5.5,0,-5; 1,1,1,0,0,0,0,0,0; 0,0,0,1,1,1,0,0,0; 0,0,0,0,0,0,1,1,1;]; b=[4000,5400,1500,2000,3000,1500,0,0,0,0,0,0,600,1000,800]; Aeq=[]; beq=[]; lb=[0,0,0,0,0,0,0,0,0]; ub=[]; [x,w]=linprog(c,A,b,Aeq,beq,lb,ub) Optimization terminated.

Matlab運行結果:

x =206.7722318.227875.000000.0000000.000000150.000069.1646090.835400.000000 w =-801000

方案:

????因為:z=-w,所以z=801000,即輪船前艙應裝載A,B,C三種貨物各207,0,69件;輪船中艙應裝載A,B,C三種貨物各318,0,91件;輪船后艙應裝載A,B,C三種貨物各75,150,0件,才能使運費收入最大且滿足其他條件。

解法二:用lingo求解:

lingo程序:

model: sets: row/1..3/; arrange/1..3/; link(row,arrange):x; endsets max=1000*(x(1,1)+x(1,2)+x(1,3))+700*(x(2,1)+x(2,2)+x(2,3))+600*(x(3,1)+x(3,2)+x(3,3)); 10*x(1,1)+5*x(2,1)+7*x(3,1)<=4000; 10*x(1,2)+5*x(2,2)+7*x(3,2)<=5400; 10*x(1,3)+5*x(2,3)+7*x(3,3)<=1500; 8*x(1,1)+6*x(2,1)+5*x(3,1)<=2000; 8*x(1,2)+6*x(2,2)+5*x(3,2)<=3000; 8*x(1,3)+6*x(2,3)+5*x(3,3)<=1500; (8*x(1,1)+6*x(2,1)+5*x(3,1))*1.15-(8*x(1,2)+6*x(2,2)+5*x(3,2))<=0; (8*x(1,2)+6*x(2,2)+5*x(3,2))*1.15-(8*x(1,1)+6*x(2,1)+5*x(3,1))<=0; (8*x(1,3)+6*x(2,3)+5*x(3,3))*1.15-(8*x(1,2)+6*x(2,2)+5*x(3,2))<=0; (8*x(1,2)+6*x(2,2)+5*x(3,2))*1.15-(8*x(1,3)+6*x(2,3)+5*x(3,3))<=0; (8*x(1,3)+6*x(2,3)+5*x(3,3))*1.10-(8*x(1,1)+6*x(2,1)+5*x(3,1))<=0; (8*x(1,1)+6*x(2,1)+5*x(3,1))*1.10-(8*x(1,3)+6*x(2,3)+5*x(3,3))<=0; x(1,1)+x(1,2)+x(1,3)<=600; x(2,1)+x(2,2)+x(2,3)<=1000; x(3,1)+x(3,2)+x(3,3)<=800; end

lingo運行結果:

Global optimal solution found.Objective value: 801000.0Infeasibilities: 0.000000Total solver iterations: 9Variable Value Reduced CostX( 1, 1) 206.7722 0.000000X( 1, 2) 318.2278 0.000000X( 1, 3) 75.00000 0.000000X( 2, 1) 0.000000 0.000000X( 2, 2) 0.000000 0.000000X( 2, 3) 150.0000 0.000000X( 3, 1) 69.16460 0.000000X( 3, 2) 90.83540 0.000000X( 3, 3) 0.000000 0.000000Row Slack or Surplus Dual Price1 801000.0 1.0000002 4000.000 0.0000003 5400.000 0.0000004 1500.000 0.0000005 2000.000 0.0000006 3000.000 0.0000007 1500.000 0.0000008 0.000000 938.70269 0.000000 924.958810 0.000000 954.508011 600.0000 0.00000012 1000.000 0.00000013 800.0000 0.000000

所得方案與matlab一致,即輪船前艙應裝載A,B,C三種貨物各207,0,69件;輪船中艙應裝載A,B,C三種貨物各318,0,91件;輪船后艙應裝載A,B,C三種貨物各75,150,0件,才能使運費收入最大且滿足其他條件。

相對于matlab,Lingo在LP問題上有著極其突出的優勢,操作簡單,不易出錯!

總結

以上是生活随笔為你收集整理的线性规划 - 用单纯形法解决LP问题 - (Matlab、Lingo建模)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。