非线性约束最优化

Posted juliaai123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了非线性约束最优化相关的知识,希望对你有一定的参考价值。

CanChen ggchen@mail.ustc.edu.cn


讲完了二次线性规划,这节课主要是讲了一般的非线性约束最优化怎么解。

 

等式约束-Lagrange-Newton

先列Lagrange方程:
技术图片
然后用牛顿法求方程的根(这个迭代又被称为Newton-Raphson迭代):
技术图片

 

Sequential Quadratic Programming

这个问题是最泛化的优化问题了,先看看怎么根据KT条件写出原始优化问题
技术图片
这一步实际上是把一般的优化问题,转化成了多个二次函数优化问题,循环求解。对于每个子问题,需要采用active set方法,每次只考虑等式约束,根据具体情况添加或者删除约束。
技术图片

 

罚函数法

技术图片
实际中总是逐渐增大罚因子,求解无约束问题。这种通过求解一系列无约束问题来获得约束最优化问题的最优解,称之为序贯无约束极小化技术。
罚函数经典三引理:
技术图片
这里的引理1是关键,其实也很好证明,就是根据两个x分别是最优解,得到两个不等式,简单处理一下就行了。
三个引理刻画了罚函数法动态变化的过程。
其中,第三个引理就是说,我迭代到一步,不想迭代了,这个时候实际上得到的解是把定义域扩大了之后的解。

 

乘子罚函数

这里实际上就是目标函数,加朗格朗日项,加罚项。使用罚函数,必须要求罚因子趋于无穷大,然而这在实际中很难办到。这里引入朗格朗日项,让罚因子不用趋于无穷,就能得到结果。本质是就是将乘子罚函数在迭代中寻找和拉格朗日函数的关系,从而将带约束问题转化为无约束问题。
这里给出了带约束问题的二阶充分条件,非常牛逼,之前只是必要条件。

 

障碍函数法

这个实际上通过无限限制边界,将有约束问题转化为无约束问题。

 

内点法

这个实际上是改变互补松弛条件,sz=u>0, 所以s>0,所以一定是内点。本质上还是在求解KT系统,把不等式改造成等式,还在内部,这个比较野蛮。后面凸优化就是干这个。
障碍函数法和内点法本质是一样的。

 

以上是关于非线性约束最优化的主要内容,如果未能解决你的问题,请参考以下文章

优化工具包—无约束非线性优化求解器(fminsearch)

约束最优化方法 (一) 最优性条件

python非线性规划用啥模块

优化理论11---- Zoutendijk可行方向法非线性约束情形ε起作用约束可行方向法Frank-Wolfe 方法

你会用 c++ 求解一个非线性优化问题吗?

具有单位向量约束的非线性优化