二次规划(QP)求解与序列二次规划(SQP)求解非线性规划问题
二次规划(QP)是求解一种特殊的数学优化问题的过程——具体地说,是一个(线性约束)二次优化问题,即优化(最小化或最大化)多个变量的二次函数,并服从于这些变量的线性约束。二次规划是一种特殊的非线性规划。
序列二次规划(SQP,Sequental Quadratic Programming)算法是将复杂的非线性优化问题转换为较简单的二次规划问题来求解的算法。而二次规划问题则是指目标函数为二次函数,约束函数为线性函数的的最优化问题。二次规划问题是最简单的非线性优化问题,有很多成熟的快速求解的方法。
一、首先介绍二次规划问题:
给定一个目标函数 , 求这哥目标函数的最小值,并且满足约束条件
(约束只能是线性的,非线性的要用序列二次规划,如下第二节):
由于要求目标函数最小,而且还要满足约束,由于是二次规划(元素的平方)至少是大于等于0的,那么把约束和目标函数放在一个函数下求最小值不就可以既满足约束,又可以求目标函数最小值, 即拉格朗日函数:
其中,是拉格朗日乘数,只要拉格朗日函数对
和
求偏导,等于0,就可以求得最小值。
其中第一式为定常方程式(stationary equation),第二式为约束条件。解开上面 n+1个方程式可得 的
最优解以及
的值(正负数皆可能)。
举个例子1:
构造 Lagrange 函数:
其KKT(对拉个朗日求导)条件:
求解可得:。
举个例子2:
构造 Lagrange 函数:
其KKT(对拉个朗日求导)条件:
求偏导可得: ,
, 分别求解得出
, 带入
,合并可得:
,
,由于
得
(由于已经有
的约束,约束无效), 由于最后一个约束,得要么
,要么
。结果的出
函数更小,所以
二、序列二次规划问题:
给定一个非线性约束的最优问题:
利用泰勒展开把上式子的非线性约束问题的目标函数在迭代点简化成二次函数,把非线性约束函数简化成线性函数后得到如下二次规划问题:
此问题为原来约束最优问题的近似问题,令:
将上述二次规划问题变成关于变量 S 的问题,即:
令:
写成一般形式为:
求解此二次规划问题,将其最优解 作为原问题的下一个搜索方向
,并在该方向上进行原约束问题目标函数的约束一维搜索,这样就可以得到原约束问题的一个近似解
。反复这一过程,就可以得到原问题的最优解。
二次规划(QP)求解与序列二次规划(SQP)求解非线性规划问题相关推荐
- 二次规划问题(qp)和序列二次规划问题(sqp)的简单理解
二次规划 二次规划问题(qp)是目标函数为二次函数,约束条件为线性约束的问题,可以简化为初中数学进行表达,即: 已知目标函数为: f ( x ) = x 2 − 2 ∗ x + 1 f(x)=x^2- ...
- 序列二次规划求解非线性优化问题
目录 1. 概述 2. 基本思想 3. 求解方法 3.1 求解二阶导数矩阵 3.2 二次规划问题的求解 1. 概述 序列二次规划法(SQP,Sequential Quadratic Programmi ...
- 求解一个序列的最小相位序列
求解一个序列的最小相位序列 什么是最小相位序列hmin(z) 一个例子 总结 例子说明 求解思路 零点搬移规律 由非最小相位系统构造全通系统和最小相位系统的过程原型 什么是最小相位序列hmin(z) ...
- 【论文笔记】基于Control Barrier Function的二次规划(QP)控制
文章目录 写在前面 问题描述 RBF 1. Logarithmic 2. Inverse-type 3. Reciprocal ZBF 两者的联系 CBF构建 RCBF ZCBF QP设计 ES-CL ...
- 贪心算法求解一个序列中出现次数最多的元素问题
贪心算法求解一个序列中出现次数最多的元素问题 题目: 指定n个正整数,编写一个实验程序找出它们中出现次数最多的数.如果这样的数有多个,请输出其中最小的一个. 输入描述:输入的第1行只有一个正整数n(1 ...
- c++调用cplex求解例子_Java调用cplex求解运输问题
Java调用cplex求解运输问题 本文中的课件来自清华大学深圳国际研究生院,物流与交通学部张灿荣教授<生产管理>课程. 运输问题(Transportation Problem)描述 运输 ...
- P1024 [NOIP2001 提高组] 一元三次方程求解 /1238:一元三次方程求解
P1024 [NOIP2001 提高组] 一元三次方程求解 /1238:一元三次方程求解 # [NOIP2001 提高组] 一元三次方程求解 ## 题目描述 有形如:$a x^3 + b x^2 + ...
- 【建模算法】基于遗传算法求解TSP问题(matlab求解)
[建模算法]基于遗传算法求解TSP问题(matlab求解) TSP (traveling salesman problem,旅行商问题)是典型的NP完全问题,即其最坏情况下的时间复杂度随着问题规模的增 ...
- [数值计算-16]:最小二乘法的求解1 - 一元二次方程解析法求解
作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing 本文网址:https://blog.csdn.net/HiWangWenBing/article ...
- 【slam十四讲第二版】【课本例题代码向】【第九讲~后端Ⅰ】【安装Meshlab】【BAL数据集格式】【ceres求解BA】【g2o求解BA】
[slam十四讲第二版][课本例题代码向][第九讲~后端Ⅰ][安装Meshlab][BAL数据集格式][ceres求解BA][g2o求解BA] 0 前言 1 安装Meshlab: 三维几何网格处理 2 ...
最新文章
- php7降到5.6,如何在Fedora 25上从php 7降级到5.6
- 支持全球探测点的新一代网站监控
- 判断点是否在多边形内——射线法
- 机器学习第6天:数据可视化神器--Matplotlib
- python通过pip安装包,提示 pip 不是内部或外部命令
- 在js中如何判断一个对象是否为空
- 用Python模拟浏览器操作
- 资深架构专家讲解微服务治理的架构演进
- 011 Android TabLayout+ViewPager实现顶部滑动效果(多个页面)
- 深入理解Plasma(一)Plasma 框架
- python字符串格式化 说明符顺序_python实践分享:格式化字符串时使用.format方式还是“%”...
- js中的 toUpperCase()中开头的u和c一定要大些
- Atitit.实现继承的原理and方法java javascript .net c# php ...
- mybatis看这一篇就够了,简单全面一发入魂
- Java学习路线(完整详细版)超详细
- Unity3D NGUI分离RGBA通道
- 初学素描需要准备的工具有哪些?新手必看!
- FPS游戏原理漫谈:玩家延时与服务器同步
- 复习C语言随笔 十二
- C++ unique函数使用说明