二次规划(QP)求解与序列二次规划(SQP)求解非线性规划问题
二次規劃(QP)是求解一種特殊的數學優化問題的過程——具體地說,是一個(線性約束)二次優化問題,即優化(最小化或最大化)多個變量的二次函數,并服從于這些變量的線性約束。二次規劃是一種特殊的非線性規劃。? ? ? ?
序列二次規劃(SQP,Sequental Quadratic Programming)算法是將復雜的非線性優化問題轉換為較簡單的二次規劃問題來求解的算法。而二次規劃問題則是指目標函數為二次函數,約束函數為線性函數的的最優化問題。二次規劃問題是最簡單的非線性優化問題,有很多成熟的快速求解的方法。
一、首先介紹二次規劃問題:
給定一個目標函數 , 求這哥目標函數的最小值,并且滿足約束條件 ?(約束只能是線性的,非線性的要用序列二次規劃,如下第二節):
?由于要求目標函數最小,而且還要滿足約束,由于是二次規劃(元素的平方)至少是大于等于0的,那么把約束和目標函數放在一個函數下求最小值不就可以既滿足約束,又可以求目標函數最小值, 即拉格朗日函數:
其中,是拉格朗日乘數,只要拉格朗日函數對和求偏導,等于0,就可以求得最小值。
其中第一式為定常方程式(stationary equation),第二式為約束條件。解開上面 n+1個方程式可得?的最優解以及的值(正負數皆可能)。
舉個例子1:
構造 Lagrange 函數:
其KKT(對拉個朗日求導)條件:
求解可得:。
舉個例子2:
?構造 Lagrange 函數:
其KKT(對拉個朗日求導)條件:
求偏導可得:? ?,? ??, 分別求解得出,? ? 帶入,合并可得:,
? ,由于?得?(由于已經有?的約束,約束無效), 由于最后一個約束,得要么,要么。結果的出函數更小,所以
二、序列二次規劃問題:
給定一個非線性約束的最優問題:
? ? ? ?
利用泰勒展開把上式子的非線性約束問題的目標函數在迭代點簡化成二次函數,把非線性約束函數簡化成線性函數后得到如下二次規劃問題:
此問題為原來約束最優問題的近似問題,令:
將上述二次規劃問題變成關于變量?S 的問題,即:
令:
寫成一般形式為:
求解此二次規劃問題,將其最優解??作為原問題的下一個搜索方向 ,并在該方向上進行原約束問題目標函數的約束一維搜索,這樣就可以得到原約束問題的一個近似解。反復這一過程,就可以得到原問題的最優解。
總結
以上是生活随笔為你收集整理的二次规划(QP)求解与序列二次规划(SQP)求解非线性规划问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库 oracle 设计三范式
- 下一篇: 小程序 获取当前所在地理位置 城市 信息