线性规划问题(一)
實驗目的:
通過實驗,使學生了解LINGO軟件的基本功能,掌握LINGO軟件的求解過程,以及熟悉LINGO軟件的主要菜單命令,能用LINGO軟件解線性規劃問題。
實驗要求:
實驗步驟要有模型建立,模型求解、結果分析。
實驗內容:
(1)某廠生產甲、乙兩種產品,這兩種產品均需要A、B、C三種資源,每種產品的資源消耗量及單位產品銷售后所能獲得的利潤值以及這三種資源的儲備如下表所示:
|
A |
B |
C |
||
|
甲 |
9 |
4 |
3 |
70 |
|
乙 |
4 |
6 |
10 |
120 |
|
360 |
200 |
300 |
試建立使得該廠能獲得最大利潤的生產計劃的線性規劃模型。
(2)某公司生產甲、乙兩種產品,生產所需原材料、工時和零件等有關數據如下:
|
甲 乙 |
可用量 |
|
|
原材料(噸/件) 工時(工時/件) 零件(套/件) |
2 2 5 2.5 1 |
3000噸 4000工時 500套 |
|
產品利潤(元/件) |
4 3 |
建立使利潤最大的生產計劃的數學模型。
(3)戰術決策問題,某戰略轟炸機隊指揮官得到了摧毀敵方坦克生產能力的命令. 根據情報, 敵方有四個生產坦克部件的工廠, 位于不同的地方. 只要破壞其中任一工廠的生產設施就可以有效地停止敵方坦克的生產. 根據分析, 執行該任務的最大因素是汽油短缺, 為此項任務只能提供48000加侖汽油.而對于任何一種轟炸機來說, 不論去轟炸哪一個工廠都必須有足夠往返的燃料和100加侖備余燃料.該轟炸機隊現有重型和中型兩種轟炸機, 其燃油消耗量及數量見下表
各工廠距離空軍基地的距離和摧毀目標的概率見下表
試問: 指揮官應向四個工廠派遣每種類型的飛機各多少架去執行任務才能使成功的概率最大?
實驗步驟:
使用Lingo求解,
1 model: 2 max=70*x1+120*x2; 3 9*x1+4*x2<=360; 4 4*x1+6*x2<=200; 5 3*x1+10*x2<=300; 6 @gin(x1);!整數化; 7 @gin(x2); 8 end
題1_Lingo
解得,甲產品生產11件,乙產品生產26件時,獲得的利潤最大,為3890。
使用Lingo求解,
1 model: 2 max=4*x1+3*x2; 3 2*x1+2*x2<=3000; 4 5*x1+2.5*x2<=4000; 5 x1<=500; 6 @gin(x1); 7 @gin(x2); 8 end
題2_Lingo
解得,甲產品生產100件,乙產品生產1400件時,獲得的利潤最大,為4600。
使用Lingo求解,(對目標函數做連乘變連加的處理),
1 model: 2 sets: 3 plane/1..2/:a,b; 4 factory/1..4/:d; 5 link(plane,factory):p,x; 6 endsets 7 data: 8 a=0.5 0.3333; 9 b=48 32; 10 p=0.1 0.2 0.15 0.25 11 0.08 0.16 0.12 0.2; 12 enddata 13 min=@sum(link:x*@log(1-p)); 14 2*@sum(link(i,j):a(i)*d(j)*x(i,j))+100*@sum(link:x)<48000; 15 @for(plane(i):@sum(factory(j):x(i,j))<b(i)); 16 @for(link:@gin(x)); 17 end
題3_Lingo
求得48臺1型飛機到4號工廠,32臺2型飛機到4號工廠執行任務成功的概率最大。
小結:
使用Lingo求解線性問題使用的語句幾乎與日常我們書寫的式子一般,使用起來非常直觀,較為方便。它輸出的信息是較為豐富的。而在求解非線性問題時也較為方便。
總結
- 上一篇: CSS3绘制六边形
- 下一篇: 《深入理解Android》一2.1 浏览