二次规划(QP)求解与序列二次规划(SQP)求解非线性规划问题
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
二次规划(QP)是求解一种特殊的数学优化问题的过程——具体地说是一个(线性约束)二次优化问题即优化(最小化或最大化)多个变量的二次函数并服从于这些变量的线性约束。二次规划是一种特殊的非线性规划。
序列二次规划(SQPSequental Quadratic Programming)算法是将复杂的非线性优化问题转换为较简单的二次规划问题来求解的算法。而二次规划问题则是指目标函数为二次函数约束函数为线性函数的的最优化问题。二次规划问题是最简单的非线性优化问题有很多成熟的快速求解的方法。
一、首先介绍二次规划问题
给定一个目标函数 , 求这哥目标函数的最小值并且满足约束条件 (约束只能是线性的非线性的要用序列二次规划如下第二节)
由于要求目标函数最小而且还要满足约束由于是二次规划元素的平方至少是大于等于0的那么把约束和目标函数放在一个函数下求最小值不就可以既满足约束又可以求目标函数最小值, 即拉格朗日函数
其中是拉格朗日乘数只要拉格朗日函数对和求偏导等于0就可以求得最小值。
其中第一式为定常方程式(stationary equation)第二式为约束条件。解开上面 n+1个方程式可得 的最优解以及的值(正负数皆可能)。
举个例子1
构造 Lagrange 函数
其KKT对拉个朗日求导条件
求解可得。
举个例子2
构造 Lagrange 函数
其KKT对拉个朗日求导条件
求偏导可得 分别求解得出, 带入合并可得
由于 得 由于已经有 的约束约束无效, 由于最后一个约束得要么要么。结果的出函数更小所以
二、序列二次规划问题
给定一个非线性约束的最优问题
利用泰勒展开把上式子的非线性约束问题的目标函数在迭代点简化成二次函数把非线性约束函数简化成线性函数后得到如下二次规划问题
此问题为原来约束最优问题的近似问题令
将上述二次规划问题变成关于变量 S 的问题即
令
写成一般形式为
求解此二次规划问题将其最优解 作为原问题的下一个搜索方向 并在该方向上进行原约束问题目标函数的约束一维搜索这样就可以得到原约束问题的一个近似解。反复这一过程就可以得到原问题的最优解。