等式与不等式约束的序列二次规划(SQP)

最后介绍同时有等式约束和不等式约束的SQP解法。这里面的解法比之前的稍微复杂一点,用到了line search method以及BFGS下降。使用line search是为了增加搜索的鲁棒性,确保在任意的初始点都可以最后收敛到局部最优或者全局最优点。使用BFGS的作用是简化hessian的计算量。
解如下问题:
等式与不等式约束的序列二次规划(SQP)
跟之前一样,这个问题的kkt条件为:
等式与不等式约束的序列二次规划(SQP)
依旧是要找到x,lamda, mu的增量,是的下一步的位置能够逼近kkt条件。以上的KKT条件离散化后改写为:
等式与不等式约束的序列二次规划(SQP)
等式与不等式约束的序列二次规划(SQP)
这个KKT条件的源问题就是如下的QP问题:
等式与不等式约束的序列二次规划(SQP)
去求解QP问题获得:
等式与不等式约束的序列二次规划(SQP)
接下来更新x与之前有所区别:
等式与不等式约束的序列二次规划(SQP)
这里的alpha确定的办法可以选择一种line search method获得。得到x_k+1后,Z_k+1使用BFGS获得:
z的初始值设为identity。
等式与不等式约束的序列二次规划(SQP)
等式与不等式约束的序列二次规划(SQP)
这个算法流程如下:
等式与不等式约束的序列二次规划(SQP)
等式与不等式约束的序列二次规划(SQP)