机器人中的数值优化(十三)——QP二次规划

这篇具有很好参考价值的文章主要介绍了机器人中的数值优化(十三)——QP二次规划。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

   本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例



   二十、低维度严格凸的QP二次规划

   1、低维度严格凸的QP二次规划数学描述

   低维度严格凸二次规划,其数学描述如下式所示,其中 M Q M_Q MQ是严格正定的对称矩阵,目标函数是严格凸函数,维度n是低维的

   min ⁡ x ∈ R n 1 2 x T M Q x + c Q T x , s.t.  A Q x ≤ b Q \operatorname*{min}_{x\in\mathbb{R}^{n}}\frac{1}{2}x^{\mathrm{T}}M_{\mathcal{Q}}x+c_{\mathcal{Q}}^{\mathrm{T}}x\text{, s.t. }A_{\mathcal{Q}}x\leq b_{\mathcal{Q}} xRnmin21xTMQx+cQTx, s.t. AQxbQ

   M Q M_Q MQ是严格正定的,因此可以对其进行Cholesky分解,Cholesky 分解是把一个对称正定的矩阵表示成一个下三角矩阵L和其转置的乘积的分解。它要求矩阵的所有特征值必须大于零,故分解的下三角的对角元也是大于零的。

   M Q = L Q L Q T M_{\cal Q}=L_{\cal Q}L_{\cal Q}^{\mathrm{T}} MQ=LQLQT

   这个QP问题等价于关于y的最小二范数问题:

   y = L Q T x + L Q − 1 c Q o r x = L Q − T y − ( L Q L Q T ) − 1 c Q y=L_{\cal Q}^{\mathrm T}x+L_{\cal Q}^{-1}c_{\cal Q}\quad\mathrm{or}\quad x=L_{\cal Q}^{-\mathrm T}y-\left(L_{\cal Q}L_{\cal Q}^{\mathrm T}\right)^{-1}c_{\cal Q} y=LQTx+LQ1cQorx=LQTy(LQLQT)1cQ

   我们可以把上面x关于y的表达式代入到目标函数中,整理后得到等价的表达式如下所示:

   min ⁡ y ∈ R n 1 2 y T y ,   s . t .   E y ≤ f \min_{y\in\mathbb{R}^n}\frac12y^\mathrm{T}y,\mathrm{~s.t.~}Ey\leq f yRnmin21yTy, s.t. Eyf

   其中 E = A Q L Q − T , f = A Q ( L Q L Q T ) − 1 c Q + b Q E=A_{\mathcal{Q}}L_{\mathcal{Q}}^{-\mathrm{T}},f=A_{\mathcal{Q}}\big(L_{\mathcal{Q}}L_{\mathcal{Q}}^{\mathrm{T}}\big)^{-1}c_{\mathcal{Q}}+b_{\mathcal{Q}} E=AQLQT,f=AQ(LQLQT)1cQ+bQ

   对上述表达式求解得到最优的y后(在多面体中找一个范数最小的点,也即离原点最近的点),再将得到的y代入到上面x关于y的表达式,即可得到最优的x。

   线性不等式约束 E y ≤ f Ey\leq f Eyf构成了如下图所示的可行域,在该可行域内找一个使得下式最小的解,即y的二范数的平方的最小的解,也就是可行域中离原点最近的点。

   min ⁡ y ∈ R n 1 2 y T y = 1 2 ∣ ∣ y ∣ ∣ 2 2 \min_{y\in\mathbb{R}^n}\frac12y^\mathrm{T}y=\frac12{||y||_2}^2 yRnmin21yTy=21∣∣y22

机器人中的数值优化(十三)——QP二次规划,数值优化方法,机器人,机器学习,最优化方法,数值优化,QP,二次规划,运动规划


   2、一维的QP二次规划

   与之前介绍的LP线性规划类似,一维情况下的数学描述及可行域的计算如下图所示,所不同的是,确定了可行域后,QP更容易得到最优解,只需要找到可行域中距离原点最近的点即可,若原点位于可行域左侧,则可行域左端点即为最优解,同理,若原点位于可行域右侧,则可行域右端点即为最优解,若原点位于可行域内部,则原点即为最优解。

机器人中的数值优化(十三)——QP二次规划,数值优化方法,机器人,机器学习,最优化方法,数值优化,QP,二次规划,运动规划

   3、二维的QP二次规划

   与之前介绍的LP线性规划类似,二维情况下的解决思路依然是,在加入新的约束后,若之前的最优解依然在可行域中,则最优解不变,若之前的最优解已经不在可行域中了,则需要将之前的约束边界投影到当前新加入的约束边界上,转化得到一维的可行域,再在这个一维的可行域上寻找新的最优解,与LP不同的是,得到一维的可行域后,只需要将原点也投影到新加入的约束边界上,然后找到一维可行域中与原点的投影点距离最近的点即可

机器人中的数值优化(十三)——QP二次规划,数值优化方法,机器人,机器学习,最优化方法,数值优化,QP,二次规划,运动规划

机器人中的数值优化(十三)——QP二次规划,数值优化方法,机器人,机器学习,最优化方法,数值优化,QP,二次规划,运动规划


   4、更一般的d维QP二次规划

   与前文介绍的d维的LP线性规划的主要思想类似,d维的二次规划在当前最优解不满足新加入的约束时,也将其转换成d-1维的二次规划,这跟上面2维二次规划时转换成1维二次规划的思想是相同的,这种思想有点像递归的思想。

机器人中的数值优化(十三)——QP二次规划,数值优化方法,机器人,机器学习,最优化方法,数值优化,QP,二次规划,运动规划

   上图中给出的伪代码中,输入参数H即不等式约束 a T y < = b a^\mathrm{T}y<=b aTy<=b,也即一系列半空间,如果此时H的维度是一维的,则直接采用上文中介绍的一维情况的解决方法求解,若此时c不是一维的,则初始化一个空集 I I I,可以提前用Fisher-Yates算法对H的序列进行打乱,打乱后进行for循环时,每次依次从H中取一个h,然后判断:

   情况1:若当前最优解属于h,则当前最优解满足约束h,不需要计算新的最优解,直接将h添加到集合 I I I中,继续进行下一轮for循环,处理下一个约束h

   情况2:若当前的最优解不属于h,则需要计算一个新的最优解x,将已经加入到集合 I I I中的约束投影到约束h的边界上,得到低一个维度的H’,将原点也投影到h上,得到低一个维度的原点v,M是h的一个正交基,然后将低一个维度的H’作为参数递归调用LowDimMinNorm()函数本身进行降维处理,直至降为1维情况。然后就可以得到新的y’,运用关系式 y ← M y ′ + v y\leftarrow My^{\prime}+v yMy+v得到新的最优解y,此时约束h已经满足,将其添加到集合 I I I中,本轮循环结束,继续进行下一轮for循环,处理下一个约束h。

   for循环结束后,即可得到满足所有约束hi的最优解y,然后再带入到x关于y的表达式,得到满足所有约束的最优解x。


机器人中的数值优化(十三)——QP二次规划,数值优化方法,机器人,机器学习,最优化方法,数值优化,QP,二次规划,运动规划

   在前文介绍的LP线性规划中,把d维的问题转换成d-1维的问题,并逐步转换为1维问题是通过高斯消元法完成的,接下来介绍在QP二次规划中,如何把高维问题转换成低维问题。

   在上图中的例子中,之前的约束构成的空间如绿色区域所示,新加入的约束h如图中灰色区域所示,新的最优解 y ∗ y^* y必然位于约束h所确定的平面上且位于之前的约束构成的区域的内部,原点o在约束h所确定的平面上的投影点为v,由勾股定理可得他们满足以下表达式

   ∥ y ∗ − o ∥ 2 = ∥ y ∗ − v ∥ 2 + ∥ v − o ∥ 2 \|y^*-o\|^2= \|y^*-v\|^2+\|v-o\|^2 yo2=yv2+vo2

   假设,我们已知约束h所确定的平面中以v为原点的一组标准正交基M,然后,约束h所确定的灰色平面中所有点均可表示为该组标准正交基的坐标,因此 y ∗ y^* y满足如下表达式,其中 y 1 ′ y_1^{\prime} y1 y 2 ′ y_2^{\prime} y2 y ∗ − v y^*-v yv在标准正交基下的坐标:

   y ∗ − v = y 1 ′ M 1 + y 2 ′ M 2 = M y ′ y^*-v=y_1^{\prime}M_1+y_2^{\prime}M_2=My^{\prime} yv=y1M1+y2M2=My

   将上式代入到 ∥ y ∗ − o ∥ 2 = ∥ y ∗ − v ∥ 2 + ∥ v − o ∥ 2 \|y^*-o\|^2= \|y^*-v\|^2+\|v-o\|^2 yo2=yv2+vo2中可得以下表达式(因为M是标准正交基,所以 M T M = I M^TM=I MTM=I所以求范数后可以约去 )

   ∥ M y ′ ∥ 2 + ∥ v − o ∥ 2 = ∥ y ′ ∥ 2 + ∥ v − o ∥ 2 = ∥ y ∗ ∥ 2 \|My'\|^2+\|v-o\|^2=\|y'\|^2+\|v-o\|^2=\|y^*\|^2 My2+vo2=y2+vo2=y2

   因为,v-o是常量,所以求最小的y*可以转换为求最小的y’,把一个线性等式约束上的最小范数问题转化为一个无约束的最小范数问题。

   接下来看一下,上面提到的点v和标准正交基M如何求,约束h= g T y = f g^Ty=f gTy=f,可知当 y = f g g T g y=\frac{\color{red}{fg}}{\color{red}{g^Tg}} y=gTgfg必然满足该约束,所以v可取为: v = f g g T g v=\frac{\color{red}{fg}}{\color{red}{g^Tg}} v=gTgfg

机器人中的数值优化(十三)——QP二次规划,数值优化方法,机器人,机器学习,最优化方法,数值优化,QP,二次规划,运动规划

   g是h约束所确定平面的法向量,那么平面的标准正交基均垂直于g,我们可以先构造下图中绿色的这样一组正交基,其某一个维度的模长为||g||,然后再通过旋转把模长为||g||的那个基变得跟g同方向,其他的绿色基,自然也就变成了我们想要的图中黄色的基M。其相关数学表达式如下所示:

   u = g − ∥ g ∥ e i u=g-\|g\|e_i u=ggei

   H = I d − 2 u u T u T u H=I_d-\frac{2uu^\mathrm{T}}{u^\mathrm{T}u} H=IduTu2uuT

   先根据g和ei计算出u,再代入上式计算出H(注意这里的H不是约束的意思),然后把H转置一下,得到 H T H^T HT后去掉第i列,就得到我们想要的M了,M中的d-1个列向量是由H中的d-1个行向量构成的

机器人中的数值优化(十三)——QP二次规划,数值优化方法,机器人,机器学习,最优化方法,数值优化,QP,二次规划,运动规划


   参考资料:

   1、数值最优化方法(高立 编著)

   2、机器人中的数值优化文章来源地址https://www.toymoban.com/news/detail-698075.html


到了这里,关于机器人中的数值优化(十三)——QP二次规划的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器人中的数值优化(十)——线性共轭梯度法

       本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会

    2024年02月09日
    浏览(54)
  • 机器人中的数值优化(六)—— 线搜索最速下降法

       本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会

    2024年02月10日
    浏览(51)
  • 机器人中的数值优化(十二)——带约束优化问题简介、LP线性规划

       本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会

    2024年02月09日
    浏览(63)
  • 机器人中的数值优化(九)——拟牛顿方法(下)、BB方法

       本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会

    2024年02月10日
    浏览(36)
  • 机器人中的数值优化(十一)——高斯牛顿法、LMF方法、Dogleg方法

       本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会

    2024年02月09日
    浏览(45)
  • 机器人中的数值优化(十四)——罚函数法(Penalty Method)、障碍函数法(Barrier Method)、拉格朗日松弛法(Lagrangian Relaxation)

       本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会

    2024年02月04日
    浏览(39)
  • 【HIKROBOT】海康机器人:工业相机SDK二次开发

    海康机器人官网链接:https://www.hikrobotics.com/cn 根据购买设备的型号下载用户说明书 笔者实验室购买了两款,一款GigE网口接口的,一款USB接口 GigE网口接口 USB接口:MV-CA050-20UC 服务支持”“下载中心”“机器视觉”中下载MVS客户端安装包及SDK开发包。 1.1.1 Ubuntu18.04系统安装 下

    2024年02月05日
    浏览(60)
  • 机器学习笔记之优化算法(十三)关于二次上界引理

    本节将介绍二次上界的 具体作用 以及它的 证明过程 。 利普希兹连续 在 Wolfe text{Wolfe} Wolfe 准则收敛性证明一节中简单介绍了 利普希兹连续 ( Lipschitz Continuity ) (text{Lipschitz Continuity}) ( Lipschitz Continuity ) 。其定义对应 数学符号 表达如下: ∀ x , x ^ ∈ R n , ∃ L : s . t . ∣ ∣

    2024年02月13日
    浏览(81)
  • 发那科机器人二次开发 C#读取和写入数据,可以获取点位信息

    发那科机器人二次开发 C#读取和写入数据,可以获取点位信息。 非常适合进行二次开发及制作MES系统。 标题:发那科机器人二次开发中C#读取和写入数据的应用与实践 摘要:本文主要介绍了如何在发那科机器人二次开发中利用C#编程实现数据的读取和写入功能,并探讨了这一

    2024年04月23日
    浏览(51)
  • 基于Python+百度语音的智能语音ChatGPT聊天机器人(机器学习+深度学习+语义识别)含全部工程源码 适合个人二次开发

    本项目基于机器学习和语义识别技术,让机器人理解文本并进行合适的答复。伙伴们可以通过该工程源码,进行个人二次开发,比如使用语音与机器人交流,实现智能问答、智能音箱及智能机器宠物等等。 当然针对现在最火爆的 ChatGPT等通用大语言模型 ,伙伴们可以直接将其

    2024年02月07日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包