应用数学系列讲座--最优化理论与方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
应用数学系列讲座---最优化理论与方法
肖伟
Part 1 最优化发展的历史背景
最优化亦称数学规划,她追求一种尽善尽美之道,此乃人类贪婪之本性、追求极致之欲念。
可以说,最优化首先是这种理念,然后才是一种方法。
她是人类追求完美的一种最佳决策理念与方法。
1.问题
在人类的生活、科学研究、工程、经济、工业、军事等领域都会遇到许多最优化问题:
(1)运输问题。
生产厂家要将自己的产品运输到用户,如何运输既能满足用户需求,又能花费最少?
(2)金融投资问题。
如何设计比较好的证券组合或投资项目组合,以便在可接受的风险限度内获得最大的投资回报?
(3)产业结构调整、人员优化组合、多种商品的生产计划与调度等资源分配问题。
如何分配有效的资源以便在特定的空间与时间内谋求最大的经济效益?
(4)工程设计问题。
在工程设计中如何选择适当的参数使得工程方案既满足实际需要,又能够降低工程造价?
(5)曲面选择问题。
如何设计汽车、飞机、宇宙飞船的最佳外形,既保证其运动的稳定性,又减少运动阻力,甚至满足隐身要求?
(6)飞行器的最优轨迹问题。
导弹防御系统的开发与部署的有效性实际上就是能否在敌方导弹到达己方某一重要区域之前,对飞行目标的轨迹进行准确跟踪和预测,并且引导拦截器将其摧毁?
(7)过程控制问题。
如何控制一个化学过程或者机械装置,既优化其性能,又满足鲁棒性要求?
2.背景
最优化作为一门学科,孕育于20世纪30年代,诞生于20世纪40年代第二次世界大战弥漫的硝烟中,以线性规划模型(美国空军军力规划问题、运输问题、资源分配问题等)和单纯行算法的出现为标志。
因此,最优化的历史,早期也就是线性规划的历史。
作为最优化理念与方法,无论国内,还是国外,都可以追溯到很久以前。
1637年,Fermat发表了“求极大和极小的方法”,文中包含了Fermat定理结论。
1684年,Newton和Leibniz发明的微积分为求解一大类单变量极值问题提供了通用工具。
当年Leibniz发表的第一篇微分学论文被定名为“一种求极大与极小值和求切线的新方法”。
后来,Euler,Poincare,Hilbert将Fermat定理推广到多变量、无穷个变量、特定条件的极值问题。
1826年,Fourier的工作涉及到后来发展线性规划的核心理论,线性不等式组的研究。
1847年,Cauchy研究了函数值沿着什么方向下降最快问题,这就是现在的无约束最优化的最速下降法。
1939年,前苏联,Kantorovich 出版了著作《生产组织与计划中的数学方法》,建立了线性规划模型,用来解决下料问题和运输问题。
标志线性规划的诞生。
遗憾地是他的努力在当时的俄罗斯并没有重视(直到Dantzig )。
1947年以前,Koopmans 给出了古典经济学理论的线性规划分析结构,并进行了与经济学有关的研究。
1947年,Dantzig 正式提出了线性规划数学模型,并发展了有效解决线性规划的单纯行方法,并沿用至今。
当时他是联邦空军审计部地一名数学顾问,开发了一个数学工具,用来制定军队的训练、部署、后勤保障的方案。
由于空军的计划问题可以用一个不等式组来描述,他就将论文题目定为“线性结构的规划”(programming in a linear structure )。
1948年夏天,美国的Koopmans 和Dantzig 参观兰德公司期间提出了线性规划这一名称,直到今天。
1949年,Koopmans 在美国芝加哥组织了数学规划第一次会议,主编了《生产与分配的活动分析》(Activity analysis of production and allocation ),这对数学规划的发展产生过重大影响。
说明:1975年10月14日,瑞典皇家科学院将Nobel 经济学奖颁给了L.V .Kantorovich 和T.C.Koopmans 。
原因是他们创造了线性规划方法,并成功地应用于经济学领域,为经济学的发展做出了卓越贡献。
其实,我们知道G .B.Dantzig 是线性规划之父,应该获得Nobel 奖,而不是Kantorovich 和Koopmans 。
可惜他的单纯行方法太数学化,无法获得Nobel 奖。
1972年,Klee 和Minty 证明,单纯行算法不是求解线性规划问题的优良算法,于是人们自然问,线性规划是否存在优良算法?
1979年,Khachiyan 肯定地回答了上面的问题,提出了求解线性规划的椭球法,她避免了单纯行法的最坏情形下的指数时间算法。
1984年,美国AT&T 贝尔实验室的Karmarkar 提出了求解线性规划的多项式时间内点法,她避免了Khachiyan 椭球算法的不可操作性,同时也是多项式时间算法。
至今依然是线性规划的研究热点。
但它已经不是单纯行法了。
在中国,运筹优化的思想也经常被使用。
战国时期,田忌赛马,就属于最优化中的对策论。
古代和中世纪,中国学者在天文历法研究中曾涉及到天体运动的不均匀性和相关的极值问题。
例如,1280年,郭守敬在《授时历》中,涉及“月离迟疾”(月亮运行的最快点和最慢点)以及月亮白赤道与太阳黄赤道交点距离的极值(“极数”)的计算。
二十四节气中“夏至”与“冬至”实际上是描述一年中太阳光直射点南北移动的一种极端状况。
Part 2 最优化的内涵
最优化问题的一般数学表达形式为
()⎪⎩
⎪⎨⎧+'=≥'===.,,1,0)(,,,2,1,0)(.
.)(,),(),()(min 21m m j x c m i x c t s x f x f x f x F j i t 这里())(,),(),()(21x f x f x f x F t =为目标函数族,()T
n x x x x ,,,21 =为决策变量,
{}m m j m i x c x c R x R j i n n ,,1,,,2,1,0)(,0)(/ +'='=≥=∈=Ω⊇为可行域。
这里根据决策目标量t 、决策变量个数n 、可行域Ω将最优化问题分类如下。
1.根据目标函数个数最优化问题可分为单目标(t=1)和多目标(t>1)最优化问题。
2.根据决策变量个数可分为一维最优化(n=1)和多维最优化(n>1)问题。
3.根据可行域可分为无约束最优化(n R =Ω)和约束最优化(n R ⊂Ω)问题。
于是将上述三种情况结合起来就可以将最优化问题正确分类。
由于多目标最优化通常要转化为单目标最优化,所以只需研究一般单目标最优化问题)(min x f x Ω∈或 )1(.,,1,0)(,,,2,1,0)(.
.)(min ⎪⎩
⎪⎨⎧+=≥==m m j x c m i x c t s x f e j e i 因此,问题单目标最优化可简单分类如下(多目标平行):
1)根据有无约束条件最优化问题分为无约束最优化问题)(min x f n R
x ⊆和有约束最优化问题。
2)根据有无不等式约束,最优化分为等式约束问题(只有等式约束)、不等式约束问题(只有不等式约束)、混合约束问题(等式与不等式约束都存在)。
3)根据函数的线性性可见最优化分类为:线性规划(目标函数与约数函数都是线性函数)、非线性规划(目标函数和约数函数至少有一个是非线性函数)、二次规划(目标函数是二次函数,约数函数是线性函数)。
4)根据凸性划分:凸规划(目标函数为凸函数,可行域为非空闭凸集)、非凸规划。
5)根据可行域n R =Ω内点的个数划分:离散最优化(可行域为有限个点)、整数规划(变量取整数的离散最优化)、混合整数规划(部分变量取整数,部分变量连续变化的离散最优化)、连续最优化(可行域为连通区域)。
6)根据可微性划分:光滑最优化问题(目标函数和约数函数都是光滑函数)、非光滑最优化问题(目标和约束函数至少有一个非光滑)。
7)根据最优化问题有关信息的确定性划分:确定最优化问题(前面的一般最优化)、模糊最优化(目标函数或约数函数具有模糊性)、灰色最优化(函数具有灰色性)、随机最优化(函数具有随机性)。
Part 3 最优化的结构
最优化理论与方法实际上只有如下五方面的内容:解的存在性及其存在条件、算法、算法的收敛性、算法的收敛阶(速度)、数值计算。
1.存在性及存在条件
向所有数学问题一样,我们首先关心的是解的存在性及其存在的条件,然后再用某种方法将解找出来。
下面只陈述光滑函数的条件。
如果)(min *)(x f x f x Ω
∈=,则称x*为f(x)的全局最优解。
如果存在x*的领域N 使得对Ω⋂∈N x 满足)(*)(x f x f ≤,则称x*为局部最优解。
对约束问题(1)引入Lagrange 函数:∑=-=m
i i i x c x f x L 1*)()(),(λλ;记指标
集{}0,/*
*>∈=+i I i i I λ,在
x*处的线性化零约束方向集定义为{}
**\*,0*)(,,0*)(,0/*)*,(++∈≥∇⋃∈=∇≠=I I i x c d I E i x c d d d x G i T i T λ。
A .必要条件
1)无约束问题的一阶必要条件:0*)(=∇x f 。
2)无约束问题的二阶必要条件:0*)(=∇x f 且0*)(2≥∇x f 。
3)有约束问题的一阶必要条件(库恩-塔克条件):0*)*,(=∇λx L x 或
∑==∇-∇m
i i i x c x f 10*)(**)(λ。
4)有约束的二阶必要条件:对满足约束规格的x*有0*)*,(2
≥∇d x L d xx T λ。
B .充分条件
1)无约束问题的二阶充分条件:0*)(=∇x f 且*)(2x f ∇正定。
2)有约束问题的二阶充分条件:设x*为(1)的K-T 点,
*λ是对应的Lagrange 乘子,*)*,(,0*)*,(2
λλx G d d x L d xx T ∈∀>∇。
2.算法的构造设计
当知道最优化问题的解存在时,我们通常通过迭代方法求其最优解。
当然迭代方法找出的是局部最优解。
迭代法的基本思想为:给定初始点n R x ∈0,按照某种规则产生点列{}k x 满足:点列有限时,最后一个点是最优解;当点列无限时,其极限点为最优解。
一个好算法应该具备的典型特征:迭代点列{}k x 能稳定地接近局部极小点x*的领域,并收敛于x*。
当给定某种收殓准则时,迭代终止。
一般证明迭代点列{}k x 的聚点为局部极小点。
对于最优化问题(1)的求解,主要是通过迭代格式。
假设第k 次迭代点为k x ,第k 次搜索方向为k d ,第k 次步长因子为k α,则第k 次迭代格式为
)2(1k k k k d x x α+=+
从上面的(2)式可以看出,设计算法时,实际上需要确定两个问题,迭代方向k d 和步长因子k α。
然而步长因子容易设计规则,关键是迭代方向k d 的确定。
从最优化问题解的必要条件知,搜索方向k d 是目标函数f(x)的下降方向,即 )3(0
)(<∇k T k d x f
或 ())4()
()(1k k k k k x f d x f x f <+=+α
所以,最优化的基本结构如下:
Step 1:选择初始点0x ; Step 2 :确定满足条件(3)或(4)的搜索方向k d ;
Step 3:根据迭代法则(2)产生新点1+k x ;
Step 4:给定某种终止条件,查看1+k x 是否满足。
如果满足,则停止,1+k x 作为最优解x*的近似解。
否则重复上面的步骤。
算法迭代的终止条件可有如下几种(设ε为预先给定精度,p ∙为某种给定范
数,x*为最优点):
(1))5(*)()(ε
≤-x f x f n (2))6()()(1ε
≤-+n n x f x f (3))7(|)(|)()(1ε≤-+n n n x f x f x f ;
(4))8(*ε≤-p n x x
(5))9(1ε≤-+p n
n x x (6))10(1ε≤-+p n p n
n x x x
(7))11()(ε≤∇p n x f
说明:
1.利用终止准则(5)与(8),显然是最适合的,但计算中无法知道最优点x*。
因此,通常采用其余形式。
2.(6)和(9)对一些收敛较快的算法很实用,但有些情况不适合。
3.有时n n x x -+1或)()(1n n x f x f -+是小的,但是对应的)()(1n n x f x f -+或
n n x x -+1却是很大,
极小点x*远离当前迭代点n x 。
此时同时使用(6)与(9)合适。
4.如果ε≥n x 或者ε≥)(n x f ,采用(7)与(10)。
5.有一阶导数,且收敛速度不太快,采用(11)。
6.有时候,临界点是鞍点,单独使用(11)不适合,可结合(7)与(10)。
3.算法的收敛性
构造算法,通过迭代获得序列{}n x 。
最关心的是算法的收敛性甚至收敛速度。
收敛性指
)12(0*lim =-∞→p n n x x
即在给定的某种范数意义下收敛。
从理论上讲,构造一个算法,至少要求其收敛。
否则,算法失去意义。
事实上,有些算法太复杂,我们甚至无法证明其收敛性,但是在实际中依然在使用,也显示了有效性。
数学所关心的问题与实际有些差距(某些时候)。
4.算法的收敛速度
算法的收敛快慢对其应用效果作用太大,我们经常关心一个算法的收敛速度。
这也是衡量一个算法好坏的标准。
虽然现在计算机速度非常快,但是对于复杂问题依然不能满足,因此算法的收敛速度较为重要。
对算法的收敛速度通常有两种刻划方式Q-收敛阶、R-收敛阶。
如果存在实数0>α及常数q (与迭代次数n 无关),使得
)13(**lim 1q x x x x p
n p n n =--+∞→α 则称算法产生的迭代点列{}n x 具有α-Q 阶收敛速度。
特别是,
(1)当0,1>=q α时,迭代点列{}n x 称为具有Q-线性收敛阶;
(2)当0,21><<q α,或者0,1==q α时,迭代点列{}n x 称为具有Q-超线性收敛阶;
(3)当2=α时,迭代点列{}n x 称为具有Q-二次收敛阶。
另一种是R-收敛阶的定义,
)14(1,*sup lim 1,*sup lim /1/1⎪⎩⎪⎨⎧>-=-=∞→∞→q x x q x x R n
q p n n n p n n q 如果如果
特别是,
(1) 如果01=R ,则称迭代点列{}n x 是R-超线性收敛阶;
(2) 如果101<<R ,则称迭代点列{}n x 是R-线性收敛阶;
(3) 如果11=R ,则称迭代点列{}n x 是R-次线性收敛阶;
(4) 如果02=R ,则称迭代点列{}n x 是R-超平方收敛阶;
(5) 如果102<<R ,则称迭代点列{}n x 是R-平方收敛阶;
(6) 如果12≥R ,则称迭代点列{}n x 是R-次平方收敛阶。
一般我们都用(13),而不是(14)去刻画收敛速度。
5.数值计算
数值计算不能以严格的数学证明保证算法具有良好的性态,但却能验证算法的有效性与实用性,也能表明算法的可接受特性。
数值计算的必要性:
(1)算法的收敛性和收敛速度不能保证该方法一定有好的结果;
(2)计算过程中有舍入误差、系统误差等对计算结果的影响;
(3)算法往往对目标函数f(x)要加上某种不易验证的限制条件,实际计算时,这种条件可能不满足;
(4)理论上虽然不能证明算法有更快的收敛速度(如证明技术的限制),但是这不能意味着算法就不具有更高收敛阶。
数值验证可以表明这种可能性的存在,从而为理论证明提出目标、猜想。
Part 4 最优化方法概述
最优化问题(1)的求解,就是在当前点k x 通过找到的步长k α和搜索方向k d ,由(2)产生新的迭代点1+k x 。
迭代的原则是对选择的某个评价函数)(x Φ沿射线)0(≥+ααk k d x 有所下降,即
)()()(1k k k k k x d x x Φ<+Φ=Φ+α
1. 线性搜索策略
由于当前点k x 和搜索方向k d 已知,步长k α就是通过关于α的一元函数
)(k k d x α+Φ来确定,所以问题称为一维搜索或者线性搜索。
线性搜索策略的好坏直接影响到最优化问题求解的收敛速度。
线性搜索策略有两类:一是精确线性搜索,二是非精确线性搜索。
1.1 精确线性搜索
()()k k k k k d x f d x f ααα+=+>0
min 。
若记()k k d x αα+Φ=Φ)(,则精确搜索为求解一维优化问题)(min 0
ααΦ>。
1.2 非线性搜索策略之Goldstein 准则
给定10,,<<<σμσμ(通常取()()1,2/1,2/1,0∈∈σμ),选取步长k α满足 ()())15()(k
T k k k k k k d x f x f d x f ∇+≤+μαα ()())16()(k T k k k k k k d x f x f d x f ∇+≥+σαα
其中(15)保证了目标函数f(x)有充分的下降,(16)保证了步长k α不会取得太小。
1.3 非线性搜索策略之Wolfe 准则
Goldstein 准则的一个缺点是)(αΦ的极小点可能不在可接受区间(15)与(16)之内。
为了克服这项缺点,产生了Wolfe 准则。
()*)16()(k T k k T k k k d x f d d x f ∇≥+∇σα
(16)与(16*)构成了Wolfe 准则。
1.4 非线性搜索策略之Armijo 准则
给定μγβ,,,其中0),2/1,0(),1,0(>∈∈γμβ。
令 ,2,1,0=m ,检验不等式 ())17()()(k T k m k m k k d x f d x f x f ∇-≥+-γμβγβ
是否成立。
记使得上面不等式(17)成立的第一个m 为k m ,则令γβαk m k =。
2. 信赖域策略
重述迭代格式(2)为
k k k x x δ+=+1
修正量k δ由信赖域方法确定。
为简述信赖域方法,考察无约束优化问题
)18()(min x f n R x ∈
设k x 为无约束问题(18)最优解x*的当前估计,则修正量k δ是通过适当大的参数k ρ,求解下述信赖域子问题来确定
)
19(..2
1)()()(min k k T T k k k t s B x f x f q ρδδδδδ≤+∇+= 其中,k B 或者是)(2k x f ∇,或者是)(2k x f ∇的某种近似,参数k ρ为信赖域半径,其大小取决于二次模型)(δk q 在点k x 的以k ρ为半径的邻域
(){}k k k k x x x x N ρρ≤-=/,
内对目标函数f(x)的拟合程度。
记(19)的解为k δ,这种拟合程度可以通过比较f(x)在点k k x δ+的实际下降量()k ared δ和由拟合模型)(δk q 确定的估计下降量()k pred δ来确定,这里
()()k k k k x f x f ared δδ+-=)(
()k k T k k T k k k k k B x f q x f pred δδδδδ2
1)()()(--∇=-= 根据k δ的定义,显然()0>k pred δ,令
()()*)19(/k k k pred ared Q δδ=
如果k Q 的值接近1,表明)(δk q 在邻域()k k x N ρ,内对f(x)的拟合程度较好,k ρ可以保持不变或增大;如果k Q 值接近于零或取负值,表明)(δk q 在邻域()k k x N ρ,内对f(x)的拟合程度不够理想,必须减小k ρ的值,缩小邻域以改善拟合程度。
3. 评价函数
评价函数用于评价迭代过程的进展。
对于无约束最优化问题,一般将目标函数选为评价函数。
对于有约束优化问题,评价函数必须包含目标函数与约束条件的信息,以便迭代点既具有可行性,又具有下降性。
对于约束问题,已经提出了许多评价函数,Frisch 和Carroll 提出的两种障碍函数,Zangwill 提出的1l 精确罚函数,Fletcher 提出的可微精确罚函数等,例如可取罚函数为
())20()(,0min )()(1∑∑==+=m m i i m i i e e x c x c x p βα
其中1,1≥≥βα为待定常数,主要起到保持惩罚函数p(x)具有良好的特性如可微性可取2,2==βα。
由此构造评价函数
)()(),(x p x f x σσ+=Φ
其中0>σ为罚因子。
4. 优化方法概述
对于无约束最优化问题,其求解方法可通过步长因子k α和搜索方向k d 的确定来概述求解方法。
对于有约束问题还得加上评价函数的选择来界定求解方法。
4.1 无约束问题
通过信赖域策略的求解方法统称为信赖域法;通过线性策略,则主要以迭代方向来划分。
1)梯度法:)(k k x f d -∇=的迭代方法;
2)牛顿法:)()(12k k k x f x f d ∇-∇=-的迭代方法;
3)共轭梯度法:设n n R G ⨯∈,{}k d 是G-共轭方向组,即
k j Gd d j T k ,,2,1
,0,01 ==+,用{}k d 进行迭代的方法; 4)拟牛顿法:设)()(1k k k x f x f y ∇-∇=+,k k k x x -=+1δ,k B 正定()
(2k x f ∇的某种近似)满足拟牛顿条件k k k y B =+δ1。
则取)(1111+-++∇-=k k k x f B d 的迭
代方法。
5)直接法:一般是直接沿着每个坐标轴进行一维搜索。
4.2 有约束问题
有约束问题的求解方法主要通过选择评价函数,转化为无约束最优化问题。
1)罚函数法:通过求评价函数),(σx Φ的极小来代替原约束问题极小的方法,其中)()(),(x p x f x σσ+=Φ,)(x p 为惩罚项,σ为惩罚因子。
例如对优化问题(2)可取罚函数为(20)。
2)可行方向法:迭代点列可行,Ω∈k x ,迭代方向k d 为可行下降方向,
即),(,0)(Ω∈<∇k k k T k x FD d x f d 。
3)序列二次规划算法:将约束优化问题 转化为二次规划子问题进行求解。
在当前点k x 处选定正定矩阵k B ,求解二次规划子问题()k k B x Q ,
}
,,1{,0)()(},,2,1{,0)()(..2
1)(min m m I i x c d x c m E i x c d x c t s d B d x f d e k i T k i e k i T k i k T k T +=∈≥∇+=∈=∇++∇
设()k k B x Q ,的解为k d ,则k k k d x x +=+1。
4.3 非光滑函数最优化
对于最优化问题(2),如果目标函数和约数函数中至少有一个不可微,则称为非光滑最优化问题。
这时需要引进广义梯度、广义方向导数、次梯度等概念,并用来求解非光滑最优化问题。
例如求解非光滑最优化的次梯度方法,她实际上就是最速下降法的直接推广。
4.4 全局最优化
由于最优化问题的求解都是应用迭代法,所以求得的极小值都是目标函数的稳定点或者局部最优解。
但是,对许多问题都有多个极值点。
这样经典的最优解迭代方法就难于求出最优化问题的全局极值点。
这就导致发展最优化问题全局解的方法。
如果试图利用经典的迭代方法,就会导致两个困难。
一是迭代中如何从一个极小值点跳到另一个更小的极小值点?二是如何判断当前的极小值点是全局极小值点?目前研究了许多方法解决第一个问题,但是第二个问题仍然比较困难,尚需进一步探讨。
全局最优化方法根据收敛性质分为两类:确定性方法和随机性方法。
确定性方法:区间方法、分支定界方法、填充函数方法、罚函数法、积分-水平集法、外逼近方法。
随机性方法:随机投点方法、遗传算法、模拟退火算法等。
Part 5 近代最优化的主要发展方向
对于最优化方法,除了考虑一般的最优化问题(1)以外,还经常研究二次规划问题
m m i b x a m i b x a t s c x g Gx x x Q e i T i e
i T i T T R x n ,,1,)21(,,2,1,..2
1)(min +=≥==++=∈
或者一般的无约束二次最优化问题
*)21(2
1)(min c x g Gx x x Q T T R x n ++=∈
下面介绍一些最优化发展方向。
1.拟牛顿法
假设当前迭代点为k x ,则根据拟牛顿条件
)21(1k k k y H δ=+
可确定Hesse 逆近似1+k H ,迭代方向取)(k k k x f H d ∇-=,由此得到新的迭代点k k k k d x x α+=+1。
这里1+k H 是通过对k H 的修正得到,k k k H H H ∆+=+1。
这类方法统称为拟牛顿法。
这类方法取决于k H ∆的构造,而k H ∆主要由已知的一些信息组成,如k j H y x f x j j j j j ,,2,1,0,,),(,, =∇δ。
1)对称秩一修正公式
在构造k H ∆时,k H ∆满足()1=∆k H R ;
2) D FP 公式
k H ∆满足()2=∆k H R ,选择适当参数满足等式R b a R v u b v v auu H n T T k ∈∈+=∆⨯,,,,1,由此确定出DFP 公式
k
k T k k T k k k k T k T k k k k y H y H y y H y H H -+=+δδδ1 它首先是1959年Davidon 提出的,1963年Fletcher 和Powell 发展完善。
3) B FGS 公式
拟牛顿条件(21)中,k H 是通过对Hesse 逆近似,因此可以直接近似Hesse 阵得到一种对称的拟牛顿条件
*)21(1k k k y B =+δ
然后取迭代方向为)(1111+-++∇-=k k k x f B d 。
利用(21)和(21*)中,k H 和k
B 的对称性,就会得到与DFP 公式对称的BFGS 公式(交换11++↔k k B H ,k k y ↔δ) k
k T k k T k k k k T k T k k k BFGS k B B B y y y B B
δδδδδ-+=+1 4) B royden 族 由于DFP 公式和BFGS 公式都是对称秩二校正的拟牛顿公式,所以它们的
加权组合也具有同样的类型。
考虑校正族
)22()1(111BFG S k D FP k k H H H ++++-=θθθ
其中θ是一个参数。
公式(22)称为Broyden 族校正。
5) H uang 族
1970年,Huang 提出一类比Broyden 族更广泛的校正公式。
在Broyden 族中,矩阵{}k H 是对称的,满足拟牛顿条件(21)。
而在Huang 族中取消了对k H 的对称性限制,并且产生的矩阵满足比拟牛顿条件(21)更一般的条件
*)*21(1k k k y H ρδ=+
其中ρ是一个参数。
通过推导Huang 族校正公式为
)23(1T k k k T k k k k v y H u H H ++=+δ
其中n k k R v u ∈,,由下式给出
k T k k k k T k k k y H a a v y H a a u 22211211,+=+=δδ
其中{}2,1,2,1,==j i a ij 为常数,且满足
1,-==k T k k T k y v y u ρ
6)新拟牛顿公式
拟牛顿公式的拟牛顿条件(21)有个问题,就是只用到了梯度信息,而没有应用函数值的信息。
于是J.Z.Zhang[1]等提出了一类新的拟牛顿条件
**)*21(ˆ1k k k y B =+δ
这里k k k k A y y δ3ˆ+= ,()()
2
11)()(2)()(k k k k T k k k x f x f x f x f A δδ--∇+∇=++ 。
白华[3]提出了更一般的公式。
对行如(21***)中的右端项为
k k k k A y y
δθ+=ˆ 其中R ∈θ。
当取3=θ时就是[1],当取1=θ时就是[2]。
2.大规模最优化问题
牛顿类方法对中小规模无约束最优化问题是一类最有效的求解方法。
但由于求解过程中,需要存储一个n n ⨯阶矩阵,这对大规模无约束问题会因为计算机内存的限制无法使用。
同时,在迭代的每一步构造搜索方向要解一个线性代数方程组,影响了算法的效率。
因此,对于大规模问题,我们需要研究高效且具有较小存储量的算法。
对于大规模最优化问题的算法研究主要有这几方面:共轭梯度法;稀疏拟牛顿法;有限内存拟牛顿法;无记忆拟牛顿法等。
1)共轭梯度法
共轭梯度法一般首先讨论二次无约束优化问题(21*),这时的计算公式为 ⎪⎩⎪⎨⎧+-∇=+=-∇=+++k k k k k k k k d x f d d x x x f d βα)()(11
100 一般步长k α由精确线性搜索确定
k
T k k T k k Gd d d x f )(∇-=α Fletcher-Reeves 共轭梯度法(FR 法):221)(/)(k k k x f x f ∇∇=+β;
Polak-Ribiere-Polyak 共轭梯度法(PRP ):())
()()()()(11k T k k T k k k x f x f x f x f x f ∇∇∇∇-∇=++β; Dixon 共轭梯度法: ()k
T k k T k k d x f x f x f )()()(11∇∇∇=++β; Crowder-Wolfe 共轭梯度法:()()k
T k k k T k k k d x f x f x f x f x f )()()()()(111∇-∇∇∇-∇=+++β 对于非二次函数最优化问题也常用FR 法PRP 法,但此时不再共轭,因为Hessian 矩阵在变化。
这就有所谓的重新开始共轭梯度法。
一种是)(n r r <<步重新开始共轭梯度法,就是每经过r 步就重新将迭代方向换为负梯度方向,即
)(11++-∇=r r x f d 。
另一种就是三次重新开始共轭梯度法(参看[4])。
2)稀疏拟牛顿法
对于某些无约束最优化问题,由于目标函数的特殊性,其二阶Hesse 矩阵是稀疏矩阵。
如果用通常的拟牛顿法构造逼近Hesse 矩阵)(k x H 的k B ,则k B 不具有)(k x H 的稀疏结构,加大了存储量与计算量。
因此,稀疏拟牛顿法就是构造k B 具有)(k x H 的相同稀疏结构,然后应用拟牛顿法求解。
例如有稀疏BFGS 公式。
但是,稀疏拟牛顿公式又失去了拟牛顿公式的一些特性如继承性。
3.信赖域法
对于信赖域问题,显然有两方面主要问题,1)如何构造逼近Hesse 矩阵)(k x H 的k B ?2)如何构造信赖域半径k ρ?在给定k k B ρ和后,如何求解信赖域子问题
(19)?
对于第一个问题,采用不同的方式构造逼近矩阵k B ,产生不同的方法如用拟牛顿法构造。
对于第二个问题,在前面已经讲过,应用(19*)来确定信赖域半径的增大或者缩小。
对于第三个问题,信赖域子问题(19)的求解已经研究得比较清楚。
其基本算法为
初始步:给定初始点00,B x ,令)(00x f ∇=ρ;
第k 步:
1)给定k k x ρ,,计算k k B x f ),(∇;
2)解信赖域模型(19),求出k δ;
3)计算)()(1k k k x f x f δ+=+和k Q (由(19*));
4)如果25.0<k Q ,令4/1k k δρ=+;
如果75.0>k Q 且k k ρδ=,令k k ρρ21=+;
否则,置k k ρρ=+1;
5)如果00.0≤k Q ,置k k x x =+1;否则置k k k x x δ+=+1。
对于信赖域子问题(19)的求解,很大程度取决于采用的范数,即k ρδ≤((19)式中的第二式)。
Levenberg-Marquardt[7、8]方法,如果采用2l 范数。
因为此时实际上是求解线性方程组
())24()(k k x f I B -∇=+δμ
对于这方面求解的完善包含了许多人的工作,如More,Sorensen[5],Hebden[6]。
双折线步方法,Powell[9],Dennis and Mei[10]。
无界折线法,Zhang and Xu[11]。
3.禁忌搜索算法
禁忌搜索算法是一个试图寻求全局最优解的算法。
Glover[12,13]于1986年提出,进而形成一套完整算法[14,15]。
禁忌算法的特点是采用了禁忌技术,所谓禁忌就是禁止重复前面的工作。
为了避免搜索点陷入局部最优,禁忌搜索算法用一个禁忌表纪录下已经到达过的局部最优点或达到局部最优的一些过程。
在下次搜索中,利用禁忌表中的信息不再或有选择地搜索这些点或过程,以次来跳出局部最优点。
禁忌算法充分体现了集中和扩散两个策略。
集中策略体现在局部搜索,即从一点出发,在这点的邻域内寻求更好的解,以便找到局部最优解而结束。
为了跳出局部最优解,扩散策略通过禁忌表的功能来实现,从而到达没有搜索过的点。
禁忌算法由两部分组成:局部搜索算法和禁忌搜索算法。
局部搜索算法:可由一般的最优算法组成。
禁忌搜索算法:
Step 1 给以禁忌表(tabu list )Φ=H ,并选定一个初始解now x ; Step 2 满足停止规则时,停止计算,输出结果;否则,在now x 的邻域
()now x N 中选出满足不受禁忌的候选集()now x N Can _;在
()
n o w x N C a n _中选一个评价值最佳的解next x ,置next now x x =:;更
新历史纪录H ,重复Step 2。
4.模拟退火算法
模拟退火(simulated annealing )算法是一个以一定的概率选择邻域中的最佳状态。
从理论上讲,它属于全局最优算法。
模拟退火算法最早由Metropolis[16]在1953年提出了主要思想。
Kirkpatrick[17]在1983年成功地应用到组合最优化问题。
假设解决如下组合最优化问题:
D x x g t s x f ∈≥,0)(..)(min 模拟退火算法:
Step 1 任选一个初始解0x ,置max 00,0,t t k x x ===;
Step 2 若在该温度达到内循环停止条件,则转到Step 3 ;否则,从邻域)(x N
中随机选一个y ,计算)()(x f y f f -=∆;如果0≤∆f ,则y x =,否则,如果())1,0(/exp random t f k >∆-时,则y x =;重复Step 2.
Step 3 置()k k t d t =+1,k=k+1;如果满足停止条件,终止计算;否则,转到
Step 2。
5.遗传算法
Holland 教授在20世纪70年代初期首先提出乐遗传算法(Genetic algorithm )。
1975年,Holland 出版了第一本比较系统论述遗传算法的专著Adaptation in natural and artificial systems[18]。
遗传算法主要借助了生物进化中“适者生存”的规律。
下面以计算无约束最优化问题介绍其算法。