06实验6 约束优化
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
z=96,而另一个整数可行解x=(8, 2)的目标值为z=98。显然前者
不是最优整数解。关于整数规划将在以后作简单介绍。 到此为止,我们完满地解决了所提出的问题。
二 投资策略 某部门现有资金10万元,五年内有以下投资项目供选择: 项目A 从第一年到第四年每年初投资,次年末收回本金且 获利15%; 项目B 第三年初投资,第五年末收回本金且获利25%,最 大投资额为4万元; 项目C 第二年初投资,第五年末收回本金且获利40%,最 大投资额为3万元; 项目D 每年初投资,年末收回本金且获利6%。 问如何确定投资策略,使第五年末本息总额最大。
% v1, v2给出x的下界和上界,维数k小于n,
% 给出x的前k个分量的约束。 % x0为初始解,缺省时为0向量。 % ne为等式约束条件的个数,置于前面。 % lag 为拉格朗日乘子(维数为约束个数)。 % how 给出错误信息:infeasible, unbounded % 或 ok。(不可行的、无界的、好的)
x=
c=[1,1]; a=[1,-1]; b=1; x=lp(c,a,b)
Warning: The solution is unbounded and at infinity; the constraints are not restrictive enough.
0.0000 -1.0000
约束条件都在 ax ≤ b 中
问题的目标函数是第五年末的本息总额,决策变量是每年初
各个项目的投资额,约束条件是每年初拥有的资金。用 xij表 示第i 年初(i=1,2,3,4,5)项目 j( j=A,B,C,D)的投资额,根据
所给条件只有下表列出的xij才是需要求解的。
项目 年份 1 2 3 4 5
次年 回本 0.15 五年 回本 0.25 五年 回本 0.40
x=lp(c,A,b,v1,v2,x0,ne,dis) % dis给出警告信息(解无界或不可行)。
max z = 3 x1 + x2 s. t. – x1 + x2 ≤ 2 x 1 – 2 x2 ≤ 2 3 x1 + 2 x2 ≤ 14 x1 , x2 ≥ 0 c=-[3,1];
%加负号将求极大化为求极小
§1 线性规划的基本原理和解法
1.1 线性规划的图解法 例1 求解 max z = 3 x1 + x2 s. t. – x1 + x2 ≤ 2 x1 – 2 x2 ≤ 2 3 x1 + 2 x2 ≤ 14 x1 , x2 ≥ 0
Q2
L1: – x1 + x2 = 2
L2: x1 – 2 x2 = 2
b=[60 150 8];
v1=[0 0]; [x lag]=lp(c,A,b,v1),z=-c*x
如果以百箱为最小生产单位,怎么办?
这相当于对原模型增加整数解的要求,称为整数规划。求整 数规划比线性规划复杂的多,简单地把线性规划的最优解舍入 到最靠近的整数(当然要保证仍是可行解),不一定是整数规 划的最优解。如本题将x=(6.4286, 4.2857)舍入到x=(6, 4),得
s. t. x1A + x1D = 10
1.06 x1D + x2A + x2C + x2D = 0 1.15 x1A 1.06 x2D + x3A + x3B + x3D = 0
1.15 x2A 1.06 x3D + x4A + x4D = 0
1.15 x3A 1.06 x4D + x5D = 0 x3B 4, x2C 3, xij 0 为了用矩阵、向量表示简单起见,我们再引入记号化简如下:
求解
min z = x1 + x2 s. t. x1 x2 ≤பைடு நூலகம்1, x1 ≥ 0
c=[1,1]; a=[1,-1]; b=1; v1=0; x=lp(c,a,b,v1) 或 x= 0 -1 x1 ≥0用v1=0约束
c=[1,1]; a=[1,-1;-1,0]; b=[1,0]; x=linprog(c,a,b)
10 x1 + 20 x2 ≤ 150 x1 ≤ 8
x= 8.0000 2.4000 lag = 1.8000 0 0.2000 0 0 z= 109.6000
最优解改变,目
标函数的系数改
变对最优解的影 响,是线性规划 灵敏度分析讨论 的问题。
x1, x2 ≥ 0
c=[-11 -9]; A=[6 5;10 20;1 0];
zmax= 13
1.2 线性规划的标准型和基本性质 为了利于应用线性代数的方法求解,我们利用引入松弛变 量的方法把不等式约束条件化为等式约束条件,把目标函数一 律化为求极小(利用max z min (-z)),并把“≥”形式的约束 通过加负号变为“≤”。以前面的例子为例: max z = 3 x1 + x2 –x1 + x2 +x3 = 2, x3 ≥ 0 s. t. – x1 + x2 ≤ 2 x1 – 2 x2 + x4 = 2, x4 ≥ 0 x 1 – 2 x2 ≤ 2 3 x1 + 2 x2 + x5 =14, x5 ≥0 3 x1 + 2 x2 ≤ 14 而相应地把目标函数改写作 x1 , x2 ≥ 0 z =–3 x1 – x2 + 0 · 3 + 0 · 4 + 0 · 5 x x x 在一般的实际问题中都存在约束条件x≥0,如果某个xj 无此约 于是线性规划的标准形为: xj" , xj' ≥0, xj"≥0 ,如果约束中 束,可将其表示为:xj = xj' – min z cx, = 1 l ,, cn ), j ≥0。因此,我们总假定在 某个xj ≥ lj,可令xj’c x(jc–, cj2, 而有xx’ ( x1, x2 ,, xn )T x 标准形中总有x≥0。 (a ) (m n), b (b , b ,, b )T s . t . Ax b, A
x= 4.0000 1.0000 z= 13.0000
a=[-1,1;1,-2;3,2];
x= 4.0000 b=[2,2,14]; 1.0000 v1=[0,0]; lag = x=lp(c,a,b,v1) 或 [x,lag]=lp(c,a,b,v1) 0 0.3750 z= -c*x 0.8750 lag 中只有第2、3个分量非零,这 0 表明对最优解,第2、3个约束才起 0 作用。Q4为L2,L3的交点。
L3: 3 x1 + 2 x2 = 14
O(0,0), Q1(0,2), Q2(2,4)
x2 L1
Q1
L3
Q3(2,0), Q4(4,1)
z = 3 x1 + x2取不同值:
Q4
z1= 0, z2= 2, z3= 6, z4= 10, z5= 13
x1
L2 R1
O Q3
z1
z2
z3
z4
z5= zmax
1)若投资零点八万元可增加原料一千克,问应否作这项投资。
2)若每百箱甲饮料获利可增加一万元,问应否改变生产计划。 3)如果以百箱为最小生产单位,怎么办。
我们选择生产甲、乙两种饮料分别为x1, x2百箱,作为问题的
决策变量, 则目标函数应为: z = 10 x1 + 9 x2
由原料使用最多不能超过60千克及每百箱各类产品所需原料
max z = 10 x1 + 9 x2 s. t. 6 x1 + 5 x2 ≤ 60
10 x1 + 20 x2 ≤ 150
x1 ≤ 8 x1, x2 ≥ 0 c=[-10 -9];
x= 6.4286 4.2857 lag = 1.5714 0.0571 0 0 0 z= 102.8571
c=[-10 -9]; A=[6 5;10 20;1 0]; b=[61 150 8]; v1=[0 0]; [x lag]=lp(c,A,b,v1),z1=-c*x x= 6.7143 4.1429 z1 = 104.4286 z1-z = 1.5715 > 0.8(投资额)
x= 1.0e+015 * -7.0711 -7.0711
约束条件不够
§2 生产计划、投资策略与聘用方案
一 生产计划
某厂生产甲乙两种口味饮料,每百箱甲饮料需用原料六千克,
工人十名,可获利十万元;每百箱乙饮料需用原二五千克,工人
二十名,可获利九万元。今工厂共有原料六十千克,工人一百五 十名,又由于其它条件所限甲饮料产量不能超过八百箱。问如何 安排生产计划,即两种饮料各生产多少使获利最大。进一步讨论 以下问题:
A x1A x2A x3A x4A
B
C
D x1D
10万元 1.06x1D 1.15 x1A+ 1.06 x2D 1.15 x2A + 1.06 x3D 1.15 x3A + 1.06 x4D
x2C x3B
x2D x3D x4D x5D
年末 回本 0.06
第一年初: 第二年初: 第三年初: 第四年初: 第五年初:
量,得约束条件1: 6 x1 + 5 x2 ≤ 60
根据工人总数不超过150人及生产每百箱各类产品所需工人 数,得约束条件2: 10 x1 + 20 x2 ≤ 150 甲饮料生产不能超过800箱,故:x1 ≤ 8 每种产品箱数必须非负,故有: x1, x2 ≥ 0 根据目标函数和约束条件,我们就可以得到如下的约束优化 模型——线性规划模型:
x1A + x1D = 10 x2A + x2C + x2D = 1.06 x1D x3A + x3B + x3D = 1.15 x1A+ 1.06 x2D x4A +x4D = 1.15 x2A + 1.06 x3D x5D = 1.15 x3A + 1.06 x4D x2C 3 列 出 约 束 条 件
x
(1) (2)
s . t . gi ( x ) 0, i 1,2,...,m
这里min(求极小)可以改为max(求极大),s.t. (subject to)是”受约 束于”的意思。只满足(2)的解x 称为可行解,同时满足(1), (2)的解 x = x*称为最优解。 求约束条件(2)下的最优解就是分析中的求条件极值问题,用分析的方 法只有在 f , gi 都简单且m, n都很小的情形才可行,当 f , gi 都较复杂且 m, n都很大时就只有寻求数值解法了。 若 f , gi 均为线性函数,优化模型(1), (2)称为线性规划,否则是非线性 规划。
A=[6 5;10 20;1 0];
b=[60 150 8]; v1=[0 0]; [x lag]=lp(c,A,b,v1),z=-c*x
lag中第k个非零值为对应约束右端增加一个单位, 目标函数的增值。
若每百箱甲饮料获利可增加一万元
max z = 11 x1 + 9 x2
s. t. 6 x1 + 5 x2 ≤ 60
建立优化问题的数学模型,首先要确定问题的决策变量,用n维向量表 示x=(x1,x2,…,xn)T ,然后构造目标函数 f (x),和允许x的取值范围xΩ , Ω称为可行域,常用一组不等式(或等式)gi(x)≤0 (i=1,2,…,m)来界定, 称为约束条件。一般地这类模型可以表述成如下形式:
min z f ( x )
B、C项最大投资额限制: x3B 4 所有的 xij 都是非负的: 写出目标函数: xij 0
第五年末本息总额: z = 1.15 x4A + 1.25 x3B + 1.40 x2C + 1.06 x5D
投资策略的优化模型决策变量: x = ( x1A, x1D, x2A, x2C, x2D, x3A, x3B, x3D, x4A, x4D, x5D)T 投资策略的优化模型: max z = 1.40 x2C + 1.25 x3B +1.15 x4A + 1.06 x5D
ij mn 1 2 m
1.3 用MATLAB优化工具箱解线性规划 将线性规划问题先化为标准形式: min z = c x s. t. A x ≤ b 函数lp.m,(新版本改为linprog.m)
x=lp(c,A,b) % c,A,b如标准形中所见。
如下调用
x=lp(c,A,b,v1)
x=lp(c,A,b,v1,v2) x=lp(c,A,b,v1,v2,x0) x=lp(c,A,b,v1,v2,x0,ne) [x,lag]=lp(c,A,b,…) [x,lag,how]=lp(c,A,b,…)