二次规划(QP)是求解一种特殊的数学优化问题的过程——具体地说,是一个(线性约束)二次优化问题,即优化(最小化或最大化)多个变量的二次函数,并服从于这些变量的线性约束。二次规划是一种特殊的非线性规划。
序列二次规划(SQP,Sequental Quadratic Programming)算法是将复杂的非线性优化问题转换为较简单的二次规划问题来求解的算法。而二次规划问题则是指目标函数为二次函数,约束函数为线性函数的的最优化问题。二次规划问题是最简单的非线性优化问题,有很多成熟的快速求解的方法。
一、首先介绍二次规划问题:
给定一个目标函数 , 求这哥目标函数的最小值,并且满足约束条件 (约束只能是线性的,非线性的要用序列二次规划,如下第二节):
由于要求目标函数最小,而且还要满足约束,由于是二次规划(元素的平方)至少是大于等于0的,那么把约束和目标函数放在一个函数下求最小值不就可以既满足约束,又可以求目标函数最小值, 即拉格朗日函数:
其中,是拉格朗日乘数,只要拉格朗日函数对和求偏导,等于0,就可以求得最小值。
其中第一式为定常方程式(stationary equation),第二式为约束条件。解开上面 n+1个方程式可得 的最优解以及的值(正负数皆可能)。
举个例子1:
构造 Lagrange 函数:
其KKT(对拉个朗日求导)条件:
求解可得:。
举个例子2:
构造 Lagrange 函数:
其KKT(对拉个朗日求导)条件:
求偏导可得: , , 分别求解得出, 带入
,合并可得:
,
,由于 得 (由于已经有 的约束,约束无效), 由于最后一个约束,得要么,要么。结果的出函数更小,所以
二、序列二次规划问题:
给定一个非线性约束的最优问题:
利用泰勒展开把上式子的非线性约束问题的目标函数在迭代点简化成二次函数,把非线性约束函数简化成线性函数后得到如下二次规划问题:
此问题为原来约束最优问题的近似问题,令:
将上述二次规划问题变成关于变量 S 的问题,即:
令:
写成一般形式为:
文章来源:https://www.toymoban.com/news/detail-784112.html
求解此二次规划问题,将其最优解 作为原问题的下一个搜索方向 ,并在该方向上进行原约束问题目标函数的约束一维搜索,这样就可以得到原约束问题的一个近似解。反复这一过程,就可以得到原问题的最优解。文章来源地址https://www.toymoban.com/news/detail-784112.html
到了这里,关于二次规划(QP)求解与序列二次规划(SQP)求解非线性规划问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!