由于外部罚函数法随着罚因子的增大,增广目标函数的Hesse矩阵条件变得越来越坏,从而导致在实际计算中,数值计算的稳定性变得越来越差,难以精确求解,乘子法是在约束问题的Lagrange函数中加入相应的惩罚,使得在求解系列无约束问题时,罚因子不必趋于无穷大就能求到约束问题的最优解,而且数值计算的稳定性也能得到很好的保证。理论与实践皆表明,乘子法优于外部罚函数法。

等式约束的情形

考虑等式约束问题,将其写成向量形式为:
minf(x);s.t.h(x)=0min f(x); \\ s.t. \ \ h(x)=0 minf(x);s.t.  h(x)=0
其中fff,hhh都是二次连续可微函数,设D={x∣h(x)=0}D=\{x|h(x)=0\}D={x∣h(x)=0},上式的Lagrange函数是:
L(x,λ)=f(x)−λTh(x)L(x,\lambda)=f(x)-\lambda^{T}h(x) L(x,λ)=f(x)−λTh(x)
设x∗x^{*}x∗是上式的极小点,λ∗\lambda^{*}λ∗是相应的Lagrange乘子,有:
∇xL(x∗,λ∗)=∇f(x∗)−∇h(x∗)λ∗=0∇λL(x∗,λ∗)=h(x∗)=0\nabla_{x}L(x^{*},\lambda^{*})=\nabla f(x^{*})-\nabla h(x^{*})\lambda^{*}=0 \\ \nabla_{\lambda}L(x^{*},\lambda^{*})=h(x^{*})=0 ∇x​L(x∗,λ∗)=∇f(x∗)−∇h(x∗)λ∗=0∇λ​L(x∗,λ∗)=h(x∗)=0
注意到,对于∀x∈D\forall x \in D∀x∈D,都有h(x)=0h(x)=0h(x)=0,因此:
f(x∗)=L(x∗,λ∗)≤L(x,λ∗)=f(x)f(x^{*})=L(x^{*},\lambda^{*}) \leq L(x,\lambda^{*})=f(x) f(x∗)=L(x∗,λ∗)≤L(x,λ∗)=f(x)
由此可见,约束问题与下述问题等价:
minL(x,λ∗);s.t.h(x)=0min L(x,\lambda^{*});\\ s.t. \ \ h(x)=0 minL(x,λ∗);s.t.  h(x)=0
使用外部罚函数法,其增广目标函数为:
F(x,λ∗,μ)=L(x,λ∗)+μh(x)Th(x)F(x,\lambda^{*},\mu)=L(x,\lambda^{*})+\mu h(x)^{T}h(x) F(x,λ∗,μ)=L(x,λ∗)+μh(x)Th(x)
其实λ∗\lambda^{*}λ∗是未知向量。所以实际上不能求出F(x,λ∗,μ)F(x,\lambda^{*},\mu)F(x,λ∗,μ)的极小点。下面将指出,在求x∗x^{*}x∗的同时,采用迭代的方法也会同时求出λ∗\lambda^{*}λ∗。这就是乘子法的基本思想。

一般约束情形

对于一般约束问题
minf(x),s.t.si(x)≥0,i=1,2,⋯,mhj(x)=0,j=1,2,⋯,lmin f(x), \\ s.t. \ \ s_{i}(x) \geq 0, \ \ i=1,2,\cdots, m\\ h_{j}(x)=0, j = 1,2,\cdots, l minf(x),s.t.  si​(x)≥0,  i=1,2,⋯,mhj​(x)=0,j=1,2,⋯,l
仿照前面的推导,可得增广目标函数为:
F(x,v,λ,μ)=F(x)+14μ∑i=1m{[max{0,vi−2μsi(x)}]2−vi2}−∑j=1lλjhj(x)+μ∑j=1l[hj(x)]2F(x,v,\lambda,\mu)=F(x)+\frac{1}{4\mu}\sum_{i=1}^{m}\{[max\{0,v_{i}-2\mu s_{i}(x)\}]^{2}-v_{i}^{2}\}-\sum_{j=1}^{l}\lambda_{j}h_{j}(x)+\mu\sum_{j=1}^{l}[h_{j}(x)]^{2} F(x,v,λ,μ)=F(x)+4μ1​i=1∑m​{[max{0,vi​−2μsi​(x)}]2−vi2​}−j=1∑l​λj​hj​(x)+μj=1∑l​[hj​(x)]2
乘子迭代公式为:
vik+1=max{0,vik−2μsi(xk)},i=1,2,⋯,mλjk+1=λjk−2μhj(xk),j=1,2,⋯,lv_{i}^{k+1}=max\{0,v_{i}^{k}-2\mu s_{i}(x_{k})\},i=1,2,\cdots ,m \\ \lambda_{j}^{k+1}=\lambda_{j}^{k}-2\mu h_{j}(x_{k}), j=1,2, \cdots, l vik+1​=max{0,vik​−2μsi​(xk​)},i=1,2,⋯,mλjk+1​=λjk​−2μhj​(xk​),j=1,2,⋯,l
其中λj\lambda_{j}λj​代表的是第jjj等式约束所对应的Lagrange乘子,viv_{i}vi​代表的是第iii不等式约束对应的Lagrange乘子,显然vi≥0v_{i}\geq0vi​≥0。

我的微信公众号名称:深度学习与先进智能决策
微信公众号ID:MultiAgent1024
公众号介绍:主要研究分享深度学习、机器博弈、强化学习等相关内容!期待您的关注,欢迎一起学习交流进步!

约束最优化方法 (四) 乘子法相关推荐

  1. 拉格朗日乘子法解决带约束的极值问题

    拉格朗日乘子法解决带约束的极值问题 1. 拉格朗日乘子法简介 2. Python实现小栗子 2.1 小栗子1:等式约束下的拉格朗日方程求解 2.2 小栗子2:给定一个椭球,求其内接长方体的最大体积 2 ...

  2. 数值计算之 拉格朗日乘子法初探

    数值计算之 拉格朗日乘子法初探 前言 等式约束优化 等式约束的几何解释 不等式约束优化 多约束优化 KKT条件 代码示例 前言 LM算法的置信域方法中,通过在优化函数后添加一个优化量约束来提升迭代过程 ...

  3. 机器学习中的数学——拉格朗日乘子法(二):不等式约束与KKT条件

    分类目录:<算法设计与分析>总目录 相关文章: ·拉格朗日乘子法(一):等式约束的拉格朗日乘子法 ·拉格朗日乘子法(二):不等式约束与KKT条件 现在接着<拉格朗日乘子法(一):等式 ...

  4. 最优化方法外罚函数法Matlab,最优化-罚函数法,乘子法

    罚函数法: 求解约束条件下的最优化问题 罚函数法的思路就是改变函数f(x),将f(x) 变为F(x) 使得F(x)在无约束条件下取得的最优解,正好符合我们的约束条件,且正好为f(x)在约束条件下的最优 ...

  5. 最优化:拉格朗日乘子法

    作者:桂. 时间:2017-03-27 20:26:17 链接:http://www.cnblogs.com/xingshansi/p/6628785.html 声明:欢迎被转载,不过记得注明出处哦~ ...

  6. 拉格朗日乘子法(Lagrange Multiplier)和KKT条件

    拉格朗日乘子法(Lagrange Multiplier)和KKT条件 一:前言 如果我们现实生活中的多元值求最优化的问题,我们会遇到一下三种场景: 无条件约束的优化问题 有等式约束的优化问题 有不等式 ...

  7. 拉格朗日乘子法 KKT条件

    目录 1. 拉格朗日乘子法用于最优化的原因 2. 最优化问题三种情况 2.1 无约束条件 2.2 等式约束条件:拉格朗日乘子法 2.3 不等式约束条件:KKT 3. Lagrange对偶函数 3.1  ...

  8. 对拉格朗日乘子法与KKT的理解

    在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有不等约束时使用 ...

  9. 【数学基础】拉格朗日乘子法

    概述 在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有不等约束 ...

  10. 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有不等约束时使用 ...

最新文章

  1. python数据分析基础 余本国_Python数据分析基础
  2. 测试你的前端代码 - part3(端到端测试)
  3. DayDayUp:今天早上看到一条朋友圈——《吃苦与穷的深刻认知》
  4. 2014 ACM/ICPC 鞍山赛区网络赛(清华命题)
  5. linux 显示unix时间,小弟我使用过的Linux命令之uptime - 显示系统运行时间
  6. 诊断SQLSERVER问题常用的日志
  7. HDU - 1723 - Distribute Message
  8. kaggle入门项目:Titanic存亡预测(三)数据可视化与统计分析
  9. 公证服务信息_使用多个公证员提高网络吞吐量
  10. (238)数字IC工程师核心技能树(一)
  11. 【es】使用ElasticSearch的44条建议 性能优化
  12. 用户数据报协议是啥?看完这文就懂了!| 技术头条
  13. SpringCloud→分布式解决方案、包含主要工具、启动流程、web发展阶段、实现配置中心
  14. CentOS7搭建Docker私有仓库
  15. ParaView绘制自由水面的等值线图
  16. ampserv mysql升级_APMServ5.2.6升级PHP
  17. shiro 权限框架
  18. 阿德莱德大学计算机科学,School of Computer Science
  19. python 时间序列突变检测_Python 百度指数突变点检测
  20. 使用uni-app开发一个取流播放器(网络电视)app简陋版

热门文章

  1. 面试官是如何看程序员的简历
  2. 多记,多问为什么,最古老的学习方法怎么能丢?!
  3. 802.1W RSTP
  4. C++ 堆栈结构(超详解)
  5. MPLS连通性测试原理
  6. zabbix_get查看agent端的key值提示没有权限:Permission denied
  7. INFORMATION_SESSION_VARIABLES feature is disabled问题
  8. 李洪强iOS开发之XMPP
  9. 算法整理(二)---高速排序的两种实现方式:双边扫描和单边扫描
  10. 在RedHat5中实现透明代理