赞
踩
下面内容是根据自己看书,对拉格朗日乘子法、罚函数法、增广拉格朗日乘子法做一个小结:
在等式约束中,对于约束条件为
在不等式约束
有三个点要注意:1、内罚法由于位于分母,所以得到的解并不满足等于0的情况,阻挡了可行集边界的点,而外罚法没有这一缺点;2、外罚法可以用可行集外的点做为初始点,所以要经过比较大量的迭代才能收敛到可行集中,所以收敛慢,而内罚法要求初始点是可行集中的点,所以收敛相对较快;3、通常适用外罚法,因为内罚法的初始点搜索是件很难的事情。
缺点(书里说的,我自己也不是特别理解)
拉格朗日乘子法的两个缺点:1、当约束优化问题有局部凸结构时,对偶的无约束优化问题才是良好定义,拉格朗日乘子的更新才是合理的;2、拉格朗日目标函数收敛比较耗时,因为乘子的迭代式上升迭代。
罚函数法的两个缺点:1、收敛慢,这个应该是跟内罚法的初始点可以选择为可行集外的点有关系,一般都会做随机初始,所以选到可行集外的点就会收敛慢;2、惩罚系数太大会使得无约束优化问题产生病态,造成算法不稳定。
增广拉格朗日乘子法把上面两种方法结合到一起。下面介绍下等式和不等式约束的增广拉格朗日乘子法
等式约束:比如等式约束为,罚函数取,那么增广拉格朗日函数为
,而更新的式子如下:
不等式约束:在上面等式约束基础上,添加一不等式约束(我不太理解这里为啥用的是这个符号,跟小于等于有什么区别吗,如果你知道麻烦给我留言哦,万分感谢),这时采取的做法是将不等式变成等式,添加松弛变量,使得,并构造出如下的拉格朗日目标函数:
,而且,
更新式子如下所示:
;
这里有几个问题要注意:
1、增广拉格朗日乘子法不再需要惩罚因子
2、增广拉格朗日乘子法的乘子比普通的拉格朗日乘子法要收敛得更快,而且不再像标准拉格朗日乘子法要求有局部凸结构,也就是说应用范围更广。另外,标准的拉格朗日乘子法的是更新的结果,而增广的是更新的结果,差别在于有没有惩罚项。
交替方向乘子法是为了适应大尺度的等式约束问题,即
,然后利用下面的式子做更新:
以上是我看完这部分的一个小结,但理解上差了很多,只能有大概一个轮廓,如果读者有更好更容易理解的中文或者英文文献资料,麻烦给我留言,或者一起讨论学习,谢谢!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。