清华数学实验8-约束优化

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

250.0000
0.0000
0.0000
10.0000
数据分析:① 当第五个不等式的右端增加一个单位后,总利润增加 50 元,为 88750 元,可以验证 lag.ineqlin 中的数据正好也是对应方程的影子价格。即从中可以看到,若甲乙 丙丁四区用水需求增加,公司还会赚更多的钱。
② 当 lag.lower 最后一个 v1 由 0 变为 1 时,公司不得不从 C 运水到丁区时,不可有利 润。
v1=zeros(1,12);
[x2,f,exitfag,out,lag]=linprog(c,A1,B2,[],[],v1)
解得:
x2 = 0.0000 100.0000 % 由 A 向乙区供水 100kt
0.0000
0.0000 30.0000 % 由 B 向甲区供水 30kt 40.0000 % 由 B 向乙区供水 40kt
exitfag =1
out =iterations: 7
cgiterations: 0
algorithm: 'large-scale: interior point'
结果:公司由 A 向乙区供水 50kt,由 B 向乙区供水 50kt,由 B 向丁区供水 10kt,由 C 向甲区供水 40kt,由 C 向丙区供水 10kt,可获得最大利润为 47600 元
lag.ineqlin
lag.lower
0.0000
1.0e+007 *
0.0000
0.0000
0.0000
0.0000
0.0000
0.0000
50.0000
0.0000
50.0000
0.0000
0.0000
0.0000
260.0000
0.0000
270.0000
0.0000
220.0000
0.0000
≤ ≤
−70 −10

⎪⎩x4 + x8 + x12 ≥ 10
⎪⎩−x4 − x8 − x12 ≤ −10
2.受最大供应量约束:
⎧ ⎪ ⎨
x1 x5
+ +
x2 x6
+ +
x3 x7
+ +
x4 x8
≤ ≤
50 60

⎪⎩x9 + x10 + x11 + x12 ≤ 50
3.为了节约水资源,多出基本生活用水的供水量最好不要超过额外申请量:
a1=[-1 0 0 0 -1 0 0 0 -1 0 0 0;
0 -1 0 0 0 -1 0 0 0 -1 0 0;
0 0 -1 0 0 0 -1 0 0 0 -1 0;
0 0 0 -1 0 0 0 -1 0 0 0 -1];
a2=[1 1 1 1 0 0 0 0 0 0 0 0;
Hale Waihona Puke Baidu
0 0 0 0 1 1 1 1 0 0 0 0;
表 1.
引水管理费/元/kt




A
160
130
220
170
B
140
130
190
150
C
190
200
230
/
模型及其求解 (1)本题是一个有约束的优化问题。
决策变量是自来水公司由 A、B、C 三个水库向甲乙丙丁四区分别送多少水,记由 A 地
送到甲乙丙丁四区的水量为 x1, x2 , x3, x4 ,由 B 地送到甲乙丙丁四区的水量为 x5, x6 , x7 , x8 ,
cgiterations: 0
algorithm: 'large-scale: interior point' 结果:由 B 向甲区供水 30kt 由 B 向乙区供水 40kt,由 B 向丁区供水 50kt,由 C 向甲 区供水 50kt,由 C 向丙区供水 30kt,可知可获得最大利润为 88700 元。 查看 lag 得到:
(1)应如何安排生产? (2)如果产品 A 的最大市场需求量增长为 600t,应如何安排生产? (3)如果乙的进化价格下降为 13 千元/t,应如何安排生产?分别对(1)、(2)两种情 况进行讨论。
模型及其求解 (1)本题是一个有约束的优化问题。
决策变量是公司用甲、乙两种液体原料的量 x1, x2 用于生产混合液体,以及将混合液体 分为 x3, x4 的量与 x5, x6 量的丙混合分别生产 A 和 B。
所以 lag.ineqlin 中的数据正好是对应方程的影子价格。 ② 当 lag.lower 最后一项不为 0,说明此不等变化时对总利润有影响,将非负限制的最 后一个元素 0 变为 1 时,利用 MATLAB 解得: x =[ 0,50,0,0,0,51,0,9,39,0,9,39];得到总利润为-9.9952e+007,约为 1.0e+007 *10,可见 lag.lower 中的数表示非负限制增加 1 时,总利润的变化。 可以理解,当不得不从 C 运水到丁区时,公司是不可能赚到钱的。
0 0 0 0 0 0 0 0 1 1 1 1];
a3=[1 0 0 0 1 0 0 0 1 0 0 0;
0 1 0 0 0 1 0 0 0 1 0 0;
0 0 1 0 0 0 1 0 0 0 1 0;
0 0 0 1 0 0 0 1 0 0 0 1];
A1=[a1;a2;a3];
B1=[-30,-70,-10,-10,50,60,50,80,140,30,50];
送到甲乙丙丁四区的水量为 x9 , x10 , x11, x12 。 目标函数是公司的总利润,记为 f ,则有:
∑ ∑ ∑ max f = 900 xi − (ai + 450)xi = (450 − ai )xi ,其中 ai 是对应的引水管理费,
i
i
i
所以本题是一个有约束的线性优化问题。为了方便用 MATLAB 计算,化为求极小:
0.0000 50.0000 % 由 B 向丁区供水 50kt 50.0000 % 由 C 向甲区供水 50kt
0.0000 30.0000 % 由 C 向丙区供水 30kt
0.0000 f = -8.8700e+004 % 可知可获得最大利润为 88700 元
exitfag =1
out =iterations: 7
v1=zeros(1,12);
[x,f,exitfag,out,lag]=linprog(c,A1,B1,[],[],v1)
解得:
Optimization terminated successfully.
x = 0.0000 50.0000 % 由 A 向乙区供水 50kt
0.0000
0.0000
0.0000
50.0000 % 由 B 向乙区供水 50kt
0.0000
10.0000 % 由 B 向丁区供水 10kt
40.0000 % 由 C 向甲区供水 40kt
0.0000
10.0000 % 由 C 向丙区供水 10kt
0.0000
f = -4.7600e+004 % 可知可获得最大利润为 47600 元
∑ min(− f ) = (ai − 450)xi i
⎧x1 + x5 + x9 ≥ 30
⎧−x1 − x5 − x9 ≤ −30
约束条件:1.保证基本生活用水量:
⎪⎪ ⎨ ⎪
x2 x3
+ +
x6 x7
+ +
x10 x11
≥ 70 ≥ 10
,化为
⎪⎪− ⎪⎨−
x2 x3
− −
x6 x7
− −
x10 x11
查看 lag 得到:
lag.ineqlin
lag.lower
0.0000
1.0e+007 *
0.0000
0.0000
40.0000
0.0000
20.0000
0.0000
320.0000
0.0000
320.0000
0.0000
260.0000
0.0000
0.0000
0.0000
0.0000
0.0000
a1=[-1 0 0 0 -1 0 0 0 -1 0 0 0;
0 -1 0 0 0 -1 0 0 0 -1 0 0;
0 0 -1 0 0 0 -1 0 0 0 -1 0;
0 0 0 -1 0 0 0 -1 0 0 0 -1];
a2=[1 1 1 1 0 0 0 0 0 0 0 0;
0 0 0 0 1 1 1 1 0 0 0 0;
⎛ −1
−1
−1

⎜ ⎜
−1
−1
−1
⎟ ⎟

−1
−1
−1 ⎟
⎜ ⎜
−1
−1
−1⎟⎟
⎜1 1 1 1



A =⎜
1111

⎜ ⎜
1
1
1
1
⎟ ⎟
⎜1
1
1

⎜ ⎜
1
1
1
⎟ ⎟

1
1
1⎟
⎜ ⎝
1
1
1
⎟ ⎠
利用 MATLAB 编程,输入程序:
C=[160,130,220,170, 140,130,190,150,190,200,230,1e+8]; c=C-450; % 由 C 到丁区没有管道,视为引水管理费很大,公司不会从此路供水。
(2)
受最大供应量约束变为:
⎧ ⎪ ⎨
x1 x5
+ +
x2 x6
+ +
x3 x7
+ +
x4 x8
≤ 100 ≤ 120

⎪⎩x9 + x10 + x11 + x12 ≤ 100
利用 MATLAB 编程,输入程序:
C=[160,130,220,170, 140,130,190,150,190,200,230,1e+8]; c=C-450; % 由 C 到丁区没有管道,视为引水管理费很大,公司不会从此路供水。
0 0 0 0 0 0 0 0 1 1 1 1];
a3=[1 0 0 0 1 0 0 0 1 0 0 0;
0 1 0 0 0 1 0 0 0 1 0 0;
0 0 1 0 0 0 1 0 0 0 1 0;
0 0 0 1 0 0 0 1 0 0 0 1];
A1=[a1;a2;a3];
B2=[-30,-70,-10,-10,100,120,100,80,140,30,50];
0.0000
0.0000
0.0000
0.0000
0.0000
10.0000
数据分析:
① 当第三个不等式的右端增加一个单位后,利用 MATLAB 解得: x =[ 0,50,0,0,0,50,0,10,41,0,9,0];且总利润增加 40 元,为 47640 元。 也就是说若丙地的基本用水能少 1kt,则总利润会增加 40 元。 这恰好为 lag.ineqlin 中第 3 个的数据,可以验证 lag.ineqlin 中的数据表示当约束不等 式的右端增加一个单位时,总的价格会相应增加的数量。
实验 8 约束优化
化学工程系 化 71 李骥聪 2007011861
【实验目的】
1. 掌握用 MATLAB 优化工具箱解线性规划和非线性规划的方法; 2. 练习建立实际问题的线性规划和非线性规划模型。
【实验内容】
1.题目 6.
某市有甲、乙、丙、丁四个居民区,自来水由 A,B,C 三个水库供应。四个区每天必须 得到保证的基本生活用水量分别为 30kt,70kt,10kt,10kt,由于水源紧张,三个水库每天最多 只能分别供应 50kt,60kt,50kt 自来水。由于地理位置的差别,自来水公司从各水库向各区送 水所需付出的引水管理费不同(见表 1,其中 C 水库与丁区间没有输水管道),其它管理费 用都是 450 元/kt。根据公司规定,各区用户按照统一标准 900 元/kt 收费。此外,4 个区都 向公司申请了额外用水量,分别为每天 50kt,70kt,20kt,40kt。该公司应如何分配供水量,才 能获利最多?为了增加供水量,自来水公司正在考虑进行水库改造,使三个水库每天的最大 供水量都提高一倍,问那时供水方案应如何改变?公司利润可增加到多少?
结果分析
用 linprog 解约束优化问题,不用输入初值,能够有效地解出解,这说明线性规划问题 的处理比较方便,计算也不太复杂,并且在 lag 中有每个约束不等式的约束情况,当 lag 中
的值较大时,说明此不等式有较强的约束力,稍有变化就能引起最优值的巨大变化。
2.题目 10.
某公司将 3 种不同含硫量的液体原料(为分别记为甲、乙、丙)混合生产两种产品(分 别记为 A,B)。按照生产工艺的要求,原料甲、乙必须首先倒入混合池中混合,混合后的液 体再分别与原料丙混合生产 A,B。已知原料甲、乙、丙的含硫量分别是 3%,1%,2%,进 货价格分别为 6 千元/t,16 千元/t,10 千元/t;产品 A,B 的含硫量分别不能超过 2.5%,1.5%, 售价分别为 9 千元/t,15 千元/t。根据市场信息,原料甲、乙、丙的供应量都不能超过 500t; 产品 A,B 的最大市场需求量分别为 100t,200t。
4.非负约束: ∀i, xi ≥ 0 。
⎧x1 + x5 + x9 ≤ 80
⎪⎪ ⎨ ⎪
x2 x3
+ +
x6 x7
+ +
x10 x11
≤ ≤
140 30

⎪⎩x4 + x8 + x12 ≤ 50
将这个线性规划写成标准形式可得:
min(− f ) = cT x s.t. Ax ≤ b x ≥ v1
c = [-290 -320 -230 -280 -310 -320 -260 -300 -260 -250 -220 ∞]T
相关文档
最新文档