拉格朗日乘子法

对此博客https://www.cnblogs.com/xingshansi/p/6628785.html的理解

 

结论:带约束的最小化问题可等价表示为无约束的最小化问题

证明:

KKT条件:1)原始不等式约束;2)原始等式约束;3)拉格朗日乘子非负性;4)互补松弛性;5)平稳点存在性

   1)f_i(x)\leqslant 0;  2) h_i(x)=0  3) \alpha_i\geqslant 0 ; 4)\alpha _i^*{f_i}(x^*) = 0, (i = 1,...,m); 5)\nabla {f_0}({x^*}) + \sum\limits_{i = 1}^m {\alpha _i^*\nabla {f_i}({x^*})} + \sum\limits_{i = 1}^n {\beta _i^*\nabla {h_i}({x^*})} = 0

基本思路:1)将给定问题形式为带约束条件的最小化问题;2)将带约束条件的最小化问题等价地表示为minmax形式的无约束条件优化问题; 3)检测KKT条件是否满足,若满足,则应用拉格朗日对偶法将minmax形式的无约束条件优化问题转化为maxmin形式的对偶问题; 4) 若转化后的对偶问题是凸优化问题,则此对偶问题的最优解就是原始问题的最优解;若转化后的对偶问题为一般优化问题(不等式函数约束是凸的, 等式约束是仿射的,而目标函数为一般函数),则对偶问题最优解值d*是最接近原始问题最优解值p*的,在一般情况下,二者之间存在着对偶间隙p*-d*, 并且p*-d*>0, 由于minmax(胖子里的瘦子)肯定大于maxmin(瘦子里的胖子)。

什么情况下才会有p*=d*? 答案是:原始优化问题是凸优化的(目标函数必须是凸的;不等式函数约束必须是凸的;等式约束必须是仿射的)且 Slater条件成立(f_i(x)>0(i=1,...,m), h_i(x)=0(i=1,2,...,n)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
拉格朗日乘子法是一种优化算法,应用于具有约束条件的优化问题。它的原理是基于拉格朗日乘子的概念,在求解有约束问题的时候,将约束条件转化为目标函数的一部分,通过求解该新的目标函数,得到问题的最优解。 在使用拉格朗日乘子法时,首先根据问题的约束条件构造拉格朗日函数。拉格朗日函数是由目标函数和约束条件组成的,目标函数会被调整为加入拉格朗日乘子与约束条件的乘积,同时每个约束条件都会有一个对应的拉格朗日乘子。然后,通过求取拉格朗日函数的偏导数,将其等于0,可以得到一组方程,包括目标函数的梯度和约束条件的梯度。将这些方程联立求解,就可以得到问题的最优解。 对于拉格朗日函数的求解,可以采用数值方法,例如使用fmincon算法。fmincon是一种非线性约束最小化算法,可以求解具有非线性约束的优化问题。它的实现基于拉格朗日乘子法,通过迭代的方式逼近最优解。在每一次迭代中,通过求解一组子问题,不断调整拉格朗日乘子的值,直到找到最优解为止。 总之,拉格朗日乘子法是一种基于拉格朗日函数的优化算法,通过将约束条件转化为目标函数的一部分,再利用数值方法求解最优解。而fmincon算法则是一种具体的数值方法实现,可以应用于求解具有非线性约束的优化问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值