作答如下:
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-757112.html
?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-757112.html
?圖解法驗(yàn)證:
?由圖可得在點(diǎn)x1=20,x2=24取到最大值Z=4080;
作答如下:
解:
(1)設(shè) xij?為從產(chǎn)地Ai運(yùn)往銷(xiāo)地Bj的運(yùn)輸量,得到下列運(yùn)輸量表設(shè) xij 為從產(chǎn)地Ai運(yùn)往銷(xiāo)地Bj的運(yùn)輸量,得到下列運(yùn)輸量表
? |
B1 |
B2 |
B3 |
產(chǎn)量 |
A1 |
x11 |
x12 |
x13 |
200 |
A2 |
x21 |
x22 |
x23 |
230 |
銷(xiāo)量 |
100 |
150 |
180 |
430 |
?模型如下:
- 采用表上作業(yè)法:
?
?
??
由表上作業(yè)法,得到最優(yōu)方案:A1向B1城市運(yùn)輸50噸,向B2城市運(yùn)輸150噸;A2向B1城市運(yùn)輸50噸,向B3城市運(yùn)輸180噸;
(3)最小運(yùn)輸費(fèi)用:
?
利用lingo求解:
運(yùn)行代碼:
min=90*x11+70*x12+95*x13+80*x21+65*x22+75*x23;
x11+x12+x13=200;
x21+x22+x23=230;
x11+x21=100;
x12+x22=150;
x13+x23=180;
x11>0;x12>0;x13>0;
x21>0;x22>0;x23>0;
運(yùn)行結(jié)果:
??Global optimal solution found.
??Objective value: ?????????????????????????????32500.00
??Infeasibilities: ?????????????????????????????0.000000
??Total solver iterations: ????????????????????????????1
??Elapsed runtime seconds: ?????????????????????????0.10
?
??Model Class: ???????????????????????????????????????LP
?
??Total variables: ?????????????????????6
??Nonlinear variables: ?????????????????0
??Integer variables: ???????????????????0
?
??Total constraints: ??????????????????12
??Nonlinear constraints: ???????????????0
?
??Total nonzeros: ?????????????????????24
??Nonlinear nonzeros: ??????????????????0
?
?
?
????????????????????????????????Variable ??????????Value ???????Reduced Cost
?????????????????????????????????????X11 ???????50.00000 ???????????0.000000
?????????????????????????????????????X12 ???????150.0000 ???????????0.000000
?????????????????????????????????????X13 ???????0.000000 ???????????10.00000
?????????????????????????????????????X21 ???????50.00000 ???????????0.000000
?????????????????????????????????????X22 ???????0.000000 ???????????5.000000
?????????????????????????????????????X23 ???????180.0000 ???????????0.000000
?
?????????????????????????????????????Row ???Slack or Surplus ?????Dual Price
???????????????????????????????????????1 ???????32500.00 ??????????-1.000000
???????????????????????????????????????2 ???????0.000000 ???????????0.000000
???????????????????????????????????????3 ???????0.000000 ???????????10.00000
???????????????????????????????????????4 ???????0.000000 ??????????-90.00000
???????????????????????????????????????5 ???????0.000000 ??????????-70.00000
???????????????????????????????????????6 ???????0.000000 ??????????-85.00000
???????????????????????????????????????7 ???????50.00000 ???????????0.000000
???????????????????????????????????????8 ???????150.0000 ???????????0.000000
???????????????????????????????????????9 ???????0.000000 ???????????0.000000
??????????????????????????????????????10 ???????50.00000 ???????????0.000000
??????????????????????????????????????11 ???????0.000000 ???????????0.000000
??????????????????????????????????????12 ???????180.0000 ???????????0.000000
答:采用以下方法,得到最小運(yùn)輸費(fèi)用為32500元,即:
A1向B1城市運(yùn)輸50噸,向B2城市運(yùn)輸150噸;A2向B1城市運(yùn)輸50噸,向B3城市運(yùn)輸180噸;
(1)
解:
?
?(2)采用匈牙利解法
?
其次可以采用優(yōu)化的匈牙利解法、具體步驟如下:
step 0:觀察每行最小元素個(gè)數(shù)總和r(sum)和每列最小元素個(gè)數(shù)總和c(sum)。
step 1:當(dāng) r(sum)<=c(sum),則先從系數(shù)矩陣的每列減去該列的最小元素,再?gòu)乃孟禂?shù)矩陣的每行元素中減去該行的最小元素。反之如果當(dāng)r(sum)c(sum),則先從系數(shù)矩陣的每行減去該行的最小元素,再?gòu)乃孟禂?shù)矩陣的每列元素中減去該列 的最小元素。其他步驟同匈牙利法。
- 具體的方案有如下兩個(gè),都可以達(dá)到最小費(fèi)用32:
1.甲選擇B任務(wù),乙選擇C任務(wù),丙選擇A任務(wù),丁選擇D任務(wù),戊選擇E任務(wù);
2.甲選擇B任務(wù),乙選擇D任務(wù),丙選擇A任務(wù),丁選擇C任務(wù),戊選擇E任務(wù);用lingo進(jìn)行驗(yàn)證答案一致。
?
?
?
?
?
?
梯度下降法也叫最速下降法,基本思想是往函數(shù)下降最快的方向進(jìn)行搜索,函數(shù)某個(gè)方向上的變化率可以用函數(shù)導(dǎo)數(shù)進(jìn)行表征,因此搜索方向就可以根據(jù)函數(shù)導(dǎo)數(shù)確定,即以 f(x) 在點(diǎn) xk?方向?qū)?shù)最小的方向作為搜索方向:
?
利用python程序求解、程序具體見(jiàn)附加:
?
得出:x1=?3.99996710374836,
x2=1.99997966899839 ,
f(x)極小值分別為 -7.99999999942876
在通過(guò)編寫(xiě)MATLAB進(jìn)行計(jì)算,結(jié)果如下:x1=4,x2=2時(shí),f(x)=?8,迭代次數(shù)為12,與python程序求解一致。
?
# -*- coding: utf-8 -*-
import sympy as sy
def cal_dffi(f, a, b):
# 聲明變量
x1 = sy.symbols("x1")
x2 = sy.symbols("x2")
# 求偏導(dǎo)
f1 = sy.diff(f, x1)
y1 = f1.evalf(subs={x1: a, x2: b})
f2 = sy.diff(f, x2)
y2 = f2.evalf(subs={x1: a, x2: b})
return y1, y2
def gd(a, b, f, alpha, detal):
x1 = sy.symbols("x1") # 聲明變量
x2 = sy.symbols("x2")
y0 = f.evalf(subs={x1: a, x2: b}) # 計(jì)算函數(shù)值
while True:
detalx, detaly = cal_dffi(f, a, b)
a = a - alpha * detalx
b = b - alpha * detaly
y1 = f.evalf(subs={x1: a, x2: b}) # 偏導(dǎo)
if abs(y1 - y0) < detal: # 函數(shù)值
break
else:
y0 = y1
return a, b, y1
if __name__ == '__main__':
# 定義函數(shù)
x1 = sy.symbols("x1") # 聲明變量
x2 = sy.symbols("x2")
f = x1 ** 2 + 2 * x2 ** 2- 2 * x1 * x2 - 4 * x1 # 函數(shù)
a = 1 # 初始點(diǎn)
b = 1
alpha = 0.1
detal = 1e-10 # 精度
a, b, y = gd(a, b, f, alpha, detal)
print("x1,x2,f極小值分別為", a, b, y)
6.現(xiàn)有15米長(zhǎng)的鋼管若干,生產(chǎn)某產(chǎn)品需4米、5米、7米長(zhǎng)的鋼管各為100、150、120根,問(wèn)如何截取才能使余料最?。浚ń?shù)學(xué)模型即可)
作答如下:
這是一個(gè)線性規(guī)劃問(wèn)題,首先要找出一共有多少中截法;
規(guī)格/根???序號(hào) |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
? |
7米 |
2 |
1 |
1 |
0 |
0 |
0 |
0 |
120 |
5米 |
0 |
1 |
0 |
3 |
2 |
1 |
0 |
150 |
4米 |
0 |
0 |
2 |
0 |
1 |
2 |
3 |
100 |
余料/米 |
1 |
3 |
0 |
0 |
1 |
2 |
3 |
? |
建立數(shù)學(xué)模型: ?????解:設(shè)按第i種方法截xi根(i=1,2,…7);
?
?
利用lingo求解:
運(yùn)行代碼:
min=x1+x2+x3+x4+x5+x6+x7;
2*x1+x2+x3>=120;
x2+3*x4+2*x5+x6>=150;
2*x3+x5+2*x6+3*x7>=100;
@gin(x1);@gin(x2);@gin(x3);@gin(x4);
@gin(x5);@gin(x6);@gin(x7);
結(jié)果:
??Global optimal solution found.
??Objective value: ?????????????????????????????135.0000
??Objective bound: ?????????????????????????????135.0000
??Infeasibilities: ?????????????????????????????0.000000
??Extended solver steps: ??????????????????????????????0
??Total solver iterations: ????????????????????????????3
??Elapsed runtime seconds: ?????????????????????????0.11
?
??Model Class: ?????????????????????????????????????PILP
?
??Total variables: ?????????????????????7
??Nonlinear variables: ?????????????????0
??Integer variables: ???????????????????7
?
??Total constraints: ???????????????????4
??Nonlinear constraints: ???????????????0
?
??Total nonzeros: ?????????????????????18
??Nonlinear nonzeros: ??????????????????0
?
?
?
????????????????????????????????Variable ??????????Value ???????Reduced Cost
??????????????????????????????????????X1 ???????35.00000 ???????????1.000000
??????????????????????????????????????X2 ???????0.000000 ???????????1.000000
??????????????????????????????????????X3 ???????50.00000 ???????????1.000000
??????????????????????????????????????X4 ???????50.00000 ???????????1.000000
??????????????????????????????????????X5 ???????0.000000 ???????????1.000000
??????????????????????????????????????X6 ???????0.000000 ???????????1.000000
??????????????????????????????????????X7 ???????0.000000 ???????????1.000000
?
?????????????????????????????????????Row ???Slack or Surplus ?????Dual Price
???????????????????????????????????????1 ???????135.0000 ??????????-1.000000
???????????????????????????????????????2 ???????0.000000 ???????????0.000000
???????????????????????????????????????3 ???????0.000000 ???????????0.000000
???????????????????????????????????????4 ???????0.000000 ???????????0.000000
答:使用135根15米長(zhǎng)的鋼管,采用以下方案,余料最?。?/strong>
取35根使用第一種法得到70根7米長(zhǎng)的鋼管,剩余余料35米;
取50根使用第四種法得到150根5米長(zhǎng)的鋼管,剩余余料0米;
取50根使用第三種法得到50根7米長(zhǎng)、100根4米長(zhǎng)的鋼管,剩余余料0米;
?
- 請(qǐng)結(jié)合實(shí)例解釋線性規(guī)劃問(wèn)題的基本(不可行)解,基本可行解,可行解(不是基本解),并說(shuō)明三者之間關(guān)系。
結(jié)合生產(chǎn)計(jì)劃用一張圖,來(lái)舉例分析線性規(guī)劃問(wèn)題的三種解:
?
?
生產(chǎn)計(jì)劃問(wèn)題:結(jié)合下列表格,如何安排生產(chǎn)使利潤(rùn)最大?
? |
Ⅰ |
Ⅱ |
資源 |
設(shè)備 |
5 |
2 |
170 |
原材料A |
2 |
3 |
100 |
原材料B |
1 |
5 |
150 |
利潤(rùn) |
10 |
18 |
? |
采用圖解法:
基本解:各個(gè)等式約束直線的交點(diǎn),外加與坐標(biāo)軸的交點(diǎn)
基本可行解:基本解里面在可行域范圍的那些基本解,可行域的頂點(diǎn)
可行解:可行解只有一個(gè)要求:滿足所有約束條件
最優(yōu)解:基本可行解里面使目標(biāo)函數(shù)最大(最?。┑幕究尚薪?/p>
解之間的關(guān)系如下圖:
?
?
?
?
?
到了這里,關(guān)于運(yùn)籌學(xué)—例題求解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!