约束优化常见算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章约束优化常见算法
定义5.1
设∈为一可行点, ∈,若存在 > 0, 使对∀∈[0, ]均有+ ∈, 则称是可行域在可行解处的可行方向, 可行域在可行解ˉ处的所有可行方向记为FD(, ), 简记为FD()
定理5.1
设是问题(5.1)的可行解,在点处有 =, > ,其中,
则非零向量为处的可行方向的充要条件是≥0, = 0。Zoutendijk方法:
如果非零向量同时满足∇ < 0,≥0, = 0,则是在处的下降可行方向。因此,Zoutendijk 法把确定搜索方向归结为求解线性规划问题:
min ∇
s.t ≥0
= 0
‖‖≤1.
(5.2)其中增加约束条件‖‖≤1是为了获得一个有限解。
在(5.2)中,显然 = 0是可行解, 因此最优目标值小于或等于零.如果∇ < 0,则得到下降可行方向;如果最优值为零, 则有如下结果.
定理5.2
考虑问题(5.1),设是可行解,在点处有 = , > ,其中,
则为Kuhn-Tucker点的充要条件是问题(5.2)的最优目标值为零。Rosen投影梯度法
定义5.2
设为阶矩阵,若 =且= ,则称为投影矩阵。
定理5.3
设是问题(5.1)的可行解,在点处,有1 = 1,2 > 2,其中,
又设
为行满秩矩阵,则 = −是一个投影矩阵, 且若
∇()0,则 = − ∇()是下降可行方向.
定理5.4
设是问题(5.1)的一个可行解, ,,的定义同定理5.3, 且为行
满秩矩阵,令
= ∇() =
其中和分别对应于和. 若 ∇() = 0,则
1 如果≥0,那么是K-T点;
2 如果中含有负分量,不妨设< 0,这时从1中去掉对应的行,得到,令
,
= −∇()
那么为下降可行方向。
梯度投影法计算步骤
1.给定给定初始可行点, 置 = 1。
2.在点处,将和分别分解成,和,, 使得 = ,
> .
3.令
如果是空的,令 = (单位矩阵), 否则令 = −.
4.令= − ∇ (). 若()0, 则转步6; 若() = 0,则进行步
5.若是空的,则停止计算,得到;否则,令
= ∇ () =
如果≥0,则停止计算,为K-T点;如果中包含负分量,则选择一个负分量,比如,修正,去掉中对应的行,返回步3。根据式(5.4)计算, 然后解下列问题,
min (+ )
.0 ≤≤
得步长,令
= + ,
置 := + 1,返回步2
Du&Zhang的修改
1.给定给定初始可行点和一个正常数 > 0, 置 = 1。
2.在点处,将和分别分解成,和, , 使得
= , > .
3 令
=
如果是空的,令 = (单位矩阵), 否则令
= −.
4 计算
= ∇() =
和
() = − ∇().
5. 定义, min{| = 1, . . . ,}. 如
果‖‖= 0且≥0(或是空的),则停止计算,为K-T点;若‖‖≥−,不变, 转下步; 若‖‖< −,修正1,去掉中对应的行, 令←, 转下步.
6. 根据式(5.4)计算, 然后用Amijo线搜索近似求解下列问
题,
min (+ )
. 0 ≤≤
得步长,令
= + ,
置 := + 1,返回步2
罚函数法
对于等式约束问题
min ()
s.t. () = 0, = 1, ...,(5.6)
可定义辅助函数
(, ) = () + (5.7)
参数是很大的正数。
这样就能把(5.6)转化为无约束问题
min (, ) = () + (5.8)
显然,(5.8)的最优解必使得()接近零,因为如若不然,(5.7)的第2项将是很大的正数,现行点必不是极小点。由此可见,求解问题(5.8)能够得到问题(5.6)的近似解。
罚函数的理论分析
考虑
min ()
s.t. () = 0, ∈
() ≥0, ∈
∈
其中是非空闭集, = {1, ...,}, = {+ 1, ...,}. 定义
= {∈| () = 0, ∈; () ≥0, ∈}
该问题对应的罚函数优化问题是:
min (, ) = () + ().
s.t. ∈
且:
∈⇔() = 0,
⇔() > 0
定义:
引理5.1
设, 均是的非空子集, (),和()均在上连续, 并存在, 当时, 存在,使
,则:
①
②和是的增函数(≥), () 是的减函数
证明:
①∀ , 可推出
②, 所以
定理5.6
假设同上述引理,则:
1 若存在∃≥使() = 0, 则是() 在∩上的全局
最优点。
2 设∩≠∅,若≥时,集合{| ≥}包含在的某个有界闭子
集中,且x是集合{| ≥}某个子序列的极限点,
则是()在∩上的全局最优点,且
罚函数的数值实现
一般策略是取一个趋向无穷大严格递增正数列{},从某个开始,对每个k,数值计算
min () +(),其中()是罚函数, 常取
,
从而得到一个极小点的序列{}
算法5.7 外点法计算步骤(SUMT)
步1. 给定初始点,初始罚因子> 0,内精度序列{> 0 | = 0, 1, },且(→+∞),外精度 > 0,置←0。
步2. 以为初始点,计算无约束优化问题min () + ()得,使‖∇()‖≤且(, ) > (, )。
步3. 若() < ,则停止计算,点为近似最优点;否则,
取+1 > (当→+∞时,应有→+∞)和新的+1使(+1, +1) ≤(, +1)(通常令+1 = ),置← + 1 ,返回步2。
定理5.8