运筹学最优化方法复习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章 最优化问题的基本概念
§1.1最优化的概念
最优化就是依据最优化原理和方法,在满足相关要求的前提下,以尽可能高的效率求得工程问题最优解决方案的过程。
§1.2最优化问题的数学模型
1.最优化问题的一般形式
⎪⎪⎩
⎪⎪⎨⎧===≤q v x x x h p u x x x g t s x x x f x x x find n v n u n
n
,,2,10),,,(,,2,10),,,(..),,,(min ,,,21212121
2.最优化问题的向量表达式
⎪⎪⎩
⎪
⎪⎨⎧=≤0)(0)(..)(min X H X G t s X f X find
式中:T n x x x X ],,,[21 =
T p X g X g X g X G )](,),(),([)(21 = T p X h X h X h X H )](,),(),([)(21 =
3.优化模型的三要素
设计变量、约束条件、目标函数称为优化设计的三要素!
设计空间:由设计变量所确定的空间。
设计空间中的每一个点都代表一个设计方案。
§1.3优化问题的分类
按照优化模型中三要素的不同表现形式,优化问题有多种分类方法: 1按照模型中是否存在约束条件,分为约束优化和无约束优化问题 2按照目标函数和约束条件的性质分为线性优化和非线性优化问题 3按照目标函数个数分为单目标优化和多目标优化问题
4按照设计变量的性质不同分为连续变量优化和离散变量优化问题
第2章 最优化问题的数学基础
§2.1 n 元函数的可微性与梯度
一、可微与梯度的定义
1.可微的定义
设)(X f 是定义在n 维空间n R 的子集D 上的n 元实值函数,且D X ∈0。
若存在n 维向量L ,对于任意n 维向量P ,都有
0)()(lim 000=--+→P P L X f P X f T P 则称)(X f 在0X 处可微。
2.梯度
设有函数)(X F ,T n x x x X ],,,[21 =,在其定义域内连续可导。
我们把)(X F 在定义域内某点X 处的所有一阶偏导数构成的列向量,定义为)(X F 在点X 处的梯度。
记为:
T
n k x F x F x F X F ⎥⎦⎤⎢⎣⎡∂∂∂∂∂∂=∇,,,)(21
梯度有3个性质:
⑴函数在某点的梯度方向为函数过该点的等值线的法线方向; ⑵函数值沿梯度方向增加最快,沿负梯度方向下降最快; ⑶梯度描述的只是函数某点邻域内的局部信息。
§2.2极小点及其判别条件 一、相关概念
1.极小点与最优解
设)(X f 是定义在n 维空间n R 的子集D 上的n 元实值函数,若存在D X ∈*及实数
0>δ,使得)(),(**X X D X N X ≠⋂∈∀δ都有)()(*X f X f ≤,则称*X 为)(X f 的局部
极小点;若)()(*X f X f <,则称*X 为)(X f 的严格局部极小点。
若D X ∈∀,都有)()(*X f X f ≤,则称*X 为)(X f 的全局极小点,若)()(*X f X f <,则称*X 为)(X f 的全局严格极小点。
对最优化问题⎪⎪⎩
⎪
⎪⎨⎧=≤0)(0)(..)(min X H X G t s X f X
find 而言
满足所有约束条件的向量T n x x x X ],,,[21 =称为上述最优化问题的一个可行解,全体可行解组成的集合称为可行解集。
在可行解集中,满足: )(min )(*X f X f =的解称为优化问题的最优解。
2.凸集和凸函数
凸集:设n R D ⊂,若对所有的D X X ∈21、,及]1,0[∈α,都有D X X ∈-+21)1(αα,则称D 为凸集。
凸函数:设1:R R D f n →⊂,D 是凸集,如果对于所有的D X X ∈21、,及]1,0[∈α,都有)()1()(])1([2121X f X f X X f αααα-+≤-+,则称)(X f 为D 上的凸函数。
二、局部极小点的判别条件
驻点:设)(X f 是定义在n 维空间n R 的子集D 上的n 元实值函数,*X 是D 的内点,若0)(*=∇X f ,则称*X 为)(X f 的驻点。
局部极小点的判别:设)(X f 是定义在n 维空间n R 的子集D 上的n 元实值函数,具有连续的二阶偏导数。
若*X 是)(X f 的驻点,且)(*2X f ∇是正定矩阵,则*X 是)(X f 的严格局部极小点。
第3章 无约束优化方法
§3.1下降迭代算法及终止准则 一、数值优化方法的基本思想
基本思想就是在设计空间内选定一个初始点k
X ,从该点出发,按照某一方向k
S (该
方向的确定原则是使函数值下降)前进一定的步长k α,得到一个使目标函数值有所下降的新设计点1+k X ,然后以该点为新的初始点,重复上面过程,直至得到满足精度要求的最优点*X 。
该思想可用下式表示:k k k k S X X α+=+1 二、迭代计算的终止准则
工程中常用的迭代终止准则有3种: ⑴点距准则
相邻两次迭代点之间的距离充分小时,迭代终止。
数学表达为:ε≤-+k k X X 1 ⑵函数下降量准则(值差准则)
相邻两次迭代点的函数值之差充分小,迭代终止。
数学表达为:ε≤-+)()(1k k X f X f ⑶梯度准则
目标函数在迭代点处的梯度模充分小时,迭代终止。
数学表达为:ε≤∇+)(1k X f 三、算法的收敛速度
对于某一确定的下降算法,其优劣如何评价?人们通常采用收敛速度来评价。
下面给出度量收敛速度的几个概念。
1.P 阶收敛
设序列{}k X 收敛于解*X ,若存在常数0≥P 及L 、0k ,使当0k k ≥时下式:
p
k k X X L X X **1-≤-+
成立,则称{}k X 为P 阶收敛。
2.线性收敛
设序列{}k X 收敛于解*X ,若存在常数0k 、L 及)1,0(∈θ,使当0k k ≥时下式:
k k L X X θ≤-+*1
成立,则称{}k X 为线性收敛。
3.超线性收敛
设序列{}k X 收敛于解*X ,若任给0>β都存在00>k ,使当0k k ≥时下式:
**1X X X X k k -≤-+β
成立,则称{}k X 为超线性收敛。
§3.2一维最优化方法 一、确定初始区间的进退法
任选一个初始点0x 和初始步长h ,由此可确定两点01x x =和h x x +=12,通过比较这两点函数值)(1x f 、)(2x f 的大小,来决定第三点3x 的位置。
比较这三点函数值是否呈“高——低——高”排列特征,若是则找到了单峰区间,否则向前或后退继续寻求下一点。
进退法依据的基本公式:
01x x =
h x x +=12 h x x +=23
具体步骤为:
⑴任意选取初始点0x 和恰当的初始步长h ; ⑵令01x x =,取h x x +=12,计算)(1x f 、)(2x f ;
⑶若)()(21x f x f ≥,说明极小点在2x 右侧,应加大步长向前搜索。
转⑷; 若)()(21x f x f <,说明极小点在1x 左侧,应以1x 点为基准反向小步搜索。
转⑹; ⑷大步向前搜索:令h h 2⇐,取h x x +=23,计算)(3x f ;
⑸若)()(32x f x f <,则)(1x f 、)(2x f 、)(3x f 呈“高——低——高”排列,说明],[31x x 即为所求的单峰区间;
若)()(32x f x f ≥,说明极小点在3x 右侧,应加大步长向前搜索。
此时要注意做变换:舍弃原1x 点,以原2x 点为新的1x 点,原3x 点为新的2x 点。
转⑷,直至出现“高——低——高”排列,则单峰区间可得;
⑹反向小步搜索(要注意做变换):为了保证3x 点计算公式的一致性,做变换:将
原2x 点记为新1x 点,原1x 点记为新2x 点,令h h 41
-⇐,取h x x +=23,转⑸
例:用进退法确定函数96)(2+-=x x x f 的单峰区间[a ,b ],设初始点00=x ,1=h 。
解:①10
0==h x
②4)(9
)(1
0211201===+===∴x f x f h x x x x
③)()(21x f x f >
说明极小点在2x 点右侧,应加大步长向前搜索
④令2122=⨯=⇐h h ,取32123=+=+=h x x 则0)(3=x f ⑤)()(32x f x f >
说明极小点在3x 点右侧,应加大步长向前搜索 舍弃原01=x 的点,令3121==x x ,则0)(4
)(21==x f x f
令4222=⨯=⇐h h ,取74323=+=+=h x x 则0)(16)(23=>=x f x f
)(1x f 、)(2x f 、)(3x f 呈“高——低——高”排列 ],[31x x ∴为单峰区间,即区间[1,7]即为所求
二、黄金分割法
黄金分割法是基于区间消去思想的一维搜索方法,其搜索过程必须遵循以下的原则:
⑴对称取点的原则:即所插入的两点在区间内位置对称;
⑵插入点继承的原则:即插入的两点中有一个是上次缩减区间时的插入点; ⑶等比收缩的原则:即每一次区间消去后,单峰区间的收缩率λ保持不变。
设初始区间为[a ,b],则插入点的计算公式为:
)(382.01a b a x -+= )(618.02a b a x -+=
黄金分割法的计算步骤如下: ①给定初始区间[a ,b]和收敛精度ε; ②给出中间插值点并计算其函数值:
)(382.01a b a x -+= )(1x f )(618.02a b a x -+= )(2x f ;
③比较)(1x f 、)(2x f ,确定保留区间得到新的单峰区间[a ,b ]; ④收敛性判别:计算区间[a ,b ]长度并与ε比较,若ε≤-a b ,输出)(2
1
*b a x += 否则转⑤;
⑤在保留区间内继承一点、插入一点,转②。
例:使用黄金分割法求解优化问题:2.0532)(m in 2=≤≤-+=εx x x x f ,。
解:①115.0)(056
.0)35(382.03)(382.011==+⨯+-=-+=x f a b a x ②667.7)(944
.1)35(618.03)(618.022==+⨯+-=-+=x f a b a x
③∵)()(12x f x f > ∴舍弃(1.944,5],保留[-3,1.944] ε>--)3(944.1; ④继承原1x 点,即115.0)(056
.022==x f x
插入987.0)(111.1)3944.1(382.03)(382.011-=-=+⨯+-=-+=x f a b a x
∵)()(12x f x f > ∴舍弃(0.056,1.944],保留[-3,0.056] ε>--)3(056.0; 继承原1x 点,即987.0)(111
.122-=-=x f x
插入306.0)(832.1)3056.0(382.03)(382.011-=-=+⨯+-=-+=x f a b a x
∵)()(12x f x f < ∴保留[-1.832,0.056] ε>--)832.1(056.0; 继承原2x 点,即987.0)(111
.111-=-=x f x
插入888.0)(665.0)832.1056.0(618.0832.122-=-=+⨯+-=x f x
∵)()(12x f x f > ∴保留[-1.832,-0.665]
如此迭代,到第8次,保留区为[-1.111,-0.940] ε<=---171.0)111.1(940.0 ∴999.0)(0255.1)940.0111.1(2
1
**-=-=+-⨯=x f x
§3.3梯度法 一、基本思想 对于迭代式k
k
k
k S X X
α+=+1
,
当取搜索方向)(k k
X f S -∇= 时构成的寻优算法,称为求解无约束优化问题的梯度法。
二、迭代步骤
⑴给定出发点k X 和收敛精度ε;
⑵计算k X 点的梯度)(k X F ∇,并构造搜索方向)(k k X F S -∇=; ⑶令k k k k S X X α+=+1,通过一维搜索确定步长k α,即:
)(m in k k k S X F α+
求得新点1+k X
⑷收敛判断:若ε≤∇+)(1k X F 成立,输出1*+=k X X 、)()(1*+=k X F X F ,寻优结束;否则令1+⇐k k 转⑵继续迭代,直到满足收敛精度要求。
三、梯度法的特点
梯度法寻优效率受目标函数性态影响较大。
若目标函数等值线为圆,则一轮搜索就可找到极致点;若当目标函数等值线为扁椭圆时,收敛速度则显著下降。
梯度法中相邻两轮搜索方向相互垂直。
§3.4牛顿法
牛顿法分为基本牛顿法和阻尼牛顿法两种。
对于迭代式k
k
k
k S X X
α+=+1
,当取1≡k
α且搜索方向)()]([12k k k
X f X f S ∇∇-=- 时
构成的寻优算法,称为求解无约束优化问题的基本牛顿法;
对于迭代式k
k k k S X X α+=+1,取搜索方向)()]([12k k k
X f X f S ∇∇-=- ,k α为从k X 出发、沿牛顿方向做一维搜索获得的最优步长,所构成的寻优算法,称为求解无约束优化问题的阻尼牛顿法。
搜索方向)()]([12k k k
X f X f S ∇∇-=- 称为牛顿方向。
这里需要注意的是会求海塞阵的逆矩阵。
§3.5变尺度法
我们把具有)(1k k k k k X f A X X ∇-=+α迭代模式的寻优算法称为变尺度法。
其搜索方向表达式为:)(k k k X f A S ∇-=,称为拟牛顿方向,其中k A 称为变尺度矩阵。
在迭代开始的时候,I A =0;随着迭代过程的继续,)()]([12k k k X f X f A ∇∇-→-。
因此,变尺度法从梯度法出发,随着迭代过程的继续最终趋向于牛顿法。
§3.6共轭梯度法 一、共轭方向的概念
设H 为对称正定矩阵,若有两个n 维向量1S 和2S ,满足021=⋅⋅S H S T ,则称向量1S 与2S 关于矩阵H 共轭,共轭向量的方向称为共轭方向。
若有一组非零向量1S ,2S ,…,n S 满足)(0j i S H S j T i ≠=⋅⋅,则称这组向量关于矩阵H 共轭。
对于n 元正定二次函数,依次沿着一组共轭方向进行一维搜索,最多n 次即可得到极值点。
二、共轭方向的形成
对于函数C X B HX X x x x f X f T T
n ++=
=2
1),,,()(21 沿任意方向0S 在设计空间上任意做两条平行线,分别与目标函数等值线切于点1X 、
2X ,令121X X S -=,则0S 、1S 关于矩阵H 共轭。
三、共轭梯度法
对于迭代式k k k k S X X α+=+1,取搜索方向k k k k S X f S β+-∇=++)(11 其中:)(00X f S -∇=,2
21)
()(k
k k X f X f ∇∇=
+β
共轭梯度法相邻两轮搜索方向是一对共轭方向。
§3.7鲍威尔法
基本迭代公式仍旧是:k k k k S X X α+=+1
基本鲍威尔法每轮搜索分为两步:一环的搜索+在该环搜索完毕后生成的新方向上的一维搜索。
对于基本鲍威尔法,相邻两轮搜索生成的搜索方向是共轭的。
修正鲍威尔法与基本鲍威尔法类似,所不同的是每环搜索后生成的新方向要利用鲍威尔条件判别其可用性。
注意掌握鲍威尔条件的表达式和应用! 每环搜索方向组的生成:
1.第一环的搜索方向组就是各坐标轴方向
2.下一环的搜索方向组由本环搜索方向组和本环生成的新方向共同确定,方法是:若本环的搜索结果满足鲍威尔条件,则将本环搜索方向组中使目标函数下降量最大的方向去掉,并将本环生成的新方向递补进去,就形成下一环的搜索方向组;若本环的搜索结果不满足鲍威尔条件,则下一环的搜索方向组仍旧沿用本环搜索方向组不变。
下一环搜索起点的确定:
下一环搜索起点由本环搜索结果确定,方法是:若本环的搜索结果满足鲍威尔条件,则以本环搜索终点为起点,沿新生成的方向作一维搜索,得到的新点作为本轮的搜索终点,也是下一轮的搜索起点;若本环的搜索结果不满足鲍威尔条件,则取本环搜索终点和反射点中目标函数值小的点作为本轮的搜索终点,也是下一轮的搜索起点。
这里需要注意的是反射点的计算:k k n k n X X X 022-=+
式中:k n X 2+是本环起点k X 0相对于本环终点k n X 沿新生成方向的反射点。
例:对于无约束目标函数2112
2
21242)(m in x x x x x X f --+=,利用修正Powell 法从⎥⎦
⎤
⎢⎣⎡=110
X 出发求最优解。
解:令⎥⎦⎤⎢⎣⎡==1101
0X X ),(2101e e P P ==
⎥⎦
⎤
⎢⎣⎡+=⎥⎦⎤⎢⎣⎡+=110110
1
1
ααX X 令0)(11='X f 得:2=α 则:⎥⎦⎤⎢⎣⎡=131
1X
⎥⎦
⎤
⎢⎣⎡+=⎥⎦⎤⎢⎣⎡+=αα131011
1
2
X X 令0)(12='X f 得:5.0=α 则:⎥⎦
⎤⎢⎣⎡=5.131
2X
该环生成的新搜索方向为:⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡-⎥⎦⎤⎢⎣⎡=-=5.02115.131
0121X X S
对1S 进行有效性判别:
反射点⎥⎦
⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡-⎥⎦⎤⎢⎣⎡=-=25115.13221
01214X X X
3)(10
1-==X f f 5.7)(122-==X f f 7)(143-==X f f 4)7(3)()(11101=---=-=∆X f X f ,5.0)5.7(7)()(1
2112=---=-=∆X f X f
故最大下降量41=∆=∆m
故:13f f <和231221321)(2
1
))(2(f f f f f f f m m -∆<∆--+-均成立 方向1S 可用
以1
2X 为起点,沿1S 方向作一维搜索:
⎥
⎦
⎤⎢⎣⎡++=⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡=+=αααα5.05.1235.025.1311
213S X X 由)()(min 11
213
S X f X f α+=得4.05/2==α 故,本轮寻优的终点为:⎥⎦⎤⎢⎣⎡==7.18.31
31X X
做收敛性判别:
22017.08.2+=-X X ,应继续搜索
下一轮寻优过程的起点为:⎥⎦⎤⎢⎣⎡==7.18.31
320X X
下一轮寻优过程的搜索方向组为:),(12S e
第4章 约束优化方法
约束优化方法要求大家重点掌握惩罚函数法,包括内点法、外点法、混合法。
一、外点法 构造惩罚函数:
{}∑∑==++=q
v v
k
p
u u
k
k
X h r
X g
r
X f r X 1
2
1
2
)]
([]0),(max [)(),(min φ
外点法既可以处理不等式约束优化问题,又可以处理等式约束优化问题。
需要注意的是:惩罚因子k r 随迭代次数的增加是递增的,当∞→k r 时得到的解就是原问题的最优解。
例:用外点法求解
3..1
2)(min 212
221≤-+-+=x t s x x x X f
解:构造惩罚函数{}2
212
2
21]0,3max [12),(x r x x x r X k k -++-+=φ ⎪⎩⎪⎨⎧≤-+-+>--++-+=∴时当时当031
203)3(12),(212
22
122
212221x x x x x x r x x x r X k k
φ 令
02211
=-=∂∂x x φ
0)3(22221
=-+=∂∂x r x x k φ
得:k k r
r x x +==13121 9)(3lim 1*2*
2*1
====∴∞→x f x x x k
二、内点法
构造惩罚函数:
∑
=-=p
u u k
k X g r X f r X 1)
(1)(),(φ 或:∑=--=p
u u k
k X g r X f r X 1)](ln[)(),(φ 内点法只能处理不等式约束优化问题,不能处理等式约束优化问题。
需要注意的是:惩罚因子k r 随迭代次数的增加是递减的,当0→k r 时得到的解就是原问题的最优解。
例:用内点法求解约束优化问题 21)(m in x x X f +=
..1221≤-≤-x x x t s
解:构造惩罚函数121221ln ]ln[),(x r x x r x x r X k k k ---+=φ
令
0121121
211=⋅---⋅-=∂∂x r x x x r x k
k φ
01
12
122=-⋅-=∂∂x x r x k φ 得41811-+=k r x ,k k r r x +-+=
16
)181(2
2
当0→k r 时,得⎥⎦⎤
⎢⎣⎡=00*x 0)(*=x f
三、混合法
构造惩罚函数:
∑∑==+-=q
v v k
p
u u k k
X h r X g r X f r X 1
2211
)]([)(1)(),(φ
或:∑∑==+--=q
v v
k p
u u
k k
X h r
X g
r
X f r X 1
2
2
1
1
)]
([)](ln[)(),(φ
混合法的特点是:对于不等式约束按照内点法构造惩罚项,对于等式约束按照外点法构造惩罚项。
混合法既可以处理不等式约束优化问题,也可以处理等式约束优化问题。
例:用混合惩罚函数法求解约束优化问题
222213)(m in x x x X f --=
1..21=≤-x x t s
解:构造惩罚函数2
21222211]1ln[3),(x r
x r x x x r X k k k -
----=φ 令0223112),(2211
=⎥⎥⎥⎥⎦
⎤⎢⎢
⎢
⎢⎣⎡+---+=∇k k
k
r x x x r x r X φ 得:2
2111k
r x +±=,)11(23
2-=
k r
x 当0→k r 时,得⎥⎦⎤
⎢⎣⎡=01*x 1)(*=x f
第5章 遗传算法
本章要求重点掌握遗传算法的5个要素、遗传算法的寻优机制。
一、遗传算法的5个要素 1.编码
将优化问题的解编码,用以模拟生物个体的基因组成; 2.初始种群生成
将优化问题多个随机可行解汇成集合,用以模拟进化的生物种群; 3.个体适应度评估
将优化问题目标函数加以变换,生成适应度函数来评价种群个体的适应度,用以模拟生物个体对环境的适应能力;
4.遗传操作
包含选择、交叉、变异
选择:一种使适应度函数值大的个体有更大的存活机会的机制,用以模拟环境对生物个体的自然选择;
交叉:不同个体间相互交换信息,用以模拟高级生物有性繁殖过程中的基因重组过程;
变异:模拟生物在遗传过程中基因复制差错而产生新个体的现象。
5.控制参数的设定
种群规模:160~30=M ;
交叉概率:99.0~4.0=c p
变异概率:1.0~0001.0=m p 最大进化代数:1000~100=T 二、遗传算法的寻优机制 寻优机制见右侧的基本遗传算法流程图。
仔细看看遗传算法人工模拟进化的例题。
作业练习:
1. 确定下列函数的初始区间。
⑴x x x f 6)(m in 3-= 取2.20=x ,8.0=h 答案:[0.8,2]
⑵x x x f -=241
)(min 取5.00=x ,3.0=h 答案:[0.8,2.6]
2. 用黄金分割法求解x x x f 6)(m in 3-=,取
3.0=ε、初始搜索区间[0.8,2]。
4.1)5416.12584.1(2
1
)(21*=+⨯=+=b a x 256.4)(*-=x f
3. 用梯度法求解2
2214)(min x x X f +=,T X ]4,4[0=(做两轮迭代)
答案:⎥
⎦
⎤⎢⎣⎡==4531.04723.02*X X 0443.1)()(2
*==X f X f 4. 用阻尼牛顿法求解212
2
212125.12)(m in x x x x x x X f -++-=,T X ]2,1[0= 答案:⎥⎦
⎤
⎢⎣⎡==12/11*X X 4/3)()(1*-==X f X f
5. 用共轭梯度法求解21212
2
21410)(m in x x x x x x X f ---+=,T X ]1,1[0
=
答案:⎥⎦
⎤
⎢⎣⎡=68*X 52)(*-=X f
6. 用Powell 法求解21212
2
21410)(m in x x x x x x X f ---+=,T X ]1,1[0=(迭代2轮,计算过程中小数点后面保留3位)
答案:⎥⎦⎤
⎢⎣⎡≈⎥
⎦⎤⎢⎣⎡=68999.5998.7*x 52)()(2*-==X f X f 7. 用外点法求解:
01..2)(min 212221≥-++=x x t s x x x f 答案:⎥⎥
⎥⎥⎦
⎤
⎢⎢⎢⎢⎣⎡=3132*
x , 32)(*=x f
8. 用混合罚函数法求解:
10
ln ..)(min 21121=-+≤--=x x x t s x x x f 答案:⎥⎦⎤
⎢⎣⎡=01*x 1)(*=x f。