优化问题及KKT条件

Posted Echo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了优化问题及KKT条件相关的知识,希望对你有一定的参考价值。

整理自其他优秀博文及自己理解。

目录

  • 无约束优化
  • 等式约束
  • 不等式约束(KKT条件)

1、无约束优化

无约束优化问题即高数下册中的 “多元函数的极值"  部分。

驻点:所有偏导数皆为0的点;

极值点:在邻域内最大或最小的点;

最值点:在定义域内最大或最小的点;

关系:

驻点不一定是极值点,极值点一定是驻点;

极值点不一定是最值点,最值点一定是极值点;

求解最值:

求出所有的极值点,将所有的极值点带入函数中,最大或最小的那个就是最值点。

 

2、等式约束

等式约束问题即高数下册中的 “条件极值  拉格朗日乘数法” 部分。

对于$z=f(x,y)$在$\\varphi(x,y)=0$的条件下的最值问题:

构造拉格朗日函数:$L(x,y,\\lambda)=f(x,y)+\\lambda\\varphi(x,y)$;

对拉格朗日函数求解,得到的即为在条件$\\varphi(x,y)=0$下,$z=f(x,y)$所有可能的极值点。再利用问题本身的其他约束条件(如果有的话)筛选极值点,比较之后求得最值点。

直观的解释:目标函数和约束函数在最优解处的法线共线,即$\\bigtriangledown f(x,y)=\\lambda\\bigtriangledown g(x,y)$

具体证明请查阅高数课本。

 

3、不等式约束

 当约束是不等式的时候,可以在不等式约束中加入松弛变量,使其变为等式约束问题,再进行一些分析。

最后$x^*$是极值点的必要条件(KKT条件)为: 

$f(x)=\\left\\{
\\begin{aligned}
\\bigtriangledown f(x) & = & \\lambda \\bigtriangledown c_i(x) \\\\
\\lambda_ic_i(x) & = & 0\\\\
\\lambda_i & \\geq & 0
\\end{aligned}
\\right.$

不等式约束可以直接利用KKT条件求出可能的极值点。

具体推导和证明可参见:https://zhuanlan.zhihu.com/p/26514613

 

他们之间的关系:(此图来自知乎上链接,入侵可删)

 

至此,梳理完毕。

 

以上是关于优化问题及KKT条件的主要内容,如果未能解决你的问题,请参考以下文章

最优化 KKT条件

最优化 KKT条件

机器学习+优化问题的种类如何优化凸优化非凸优化对偶问题KKT条件

约束优化之Lagrange乘子法KKT条件对偶问题最容易理解解读

拉格朗日乘子法和KKT条件

拉格朗日乘子法和KKT条件