当前位置: 首页 > news >正文

约束优化问题的常用解决办法及优缺点、轨迹规划中应用

求解以下一般约束优化问题(可以非凸、非线性):

\min_{x} f(x)

g_i(x) \le 0, \quad i = 1, \dots, m

h_j(x) = 0, \quad j = 1, \dots, l

罚函数法(外点罚函数)

目标函数中加入违反约束部分的二次项,惩罚约束不满足的部分,从而转化为无约束优化问题求解。

P(x, \sigma) = f(x) + \sigma \sum_{i=1}^{m} [\max(0, g_i(x))]^2 + \sigma \sum_{j=1}^{l} [h_j(x)]^2

优点:

  1. 初值点可以任意选择不需要满足约束

缺点:

  1. 只是近似结果,惩罚项系数必须无穷大才能保证约束满足;
  2. 惩罚项系数无穷大容易导致问题病态,从而下降速度骤降,表现为梯度仍然很大时每步代价函数下降却很小,从而难以继续优化更新;
  3. 适用于等式约束,不等式约束一般需要max(G(x),0)转化。

高飞组的gcopter,egoswarm等的连续时间不等式约束(速度限制、避障等)都是采用的这种罚函数方法来转化为无约束优化,从而用L-BFGS这种无约束优化器求解

内点法(障碍函数法)

目标函数中加入-1/x或者-ln(-G(x)),惩罚接近0的约束,从而转化为无约束优化问题求解。

P(x, \mu) = f(x) - \mu \sum_{i=1}^{m} \ln(-g_i(x))

优点:

  1. 约束保证满足

缺点:

  1. 只是近似结果,惩罚项系数必须无穷小才能趋于原问题的最优解;
  2. 惩罚项系数无穷大容易导致问题病态,从而下降速度骤降;
  3. 适用于不等式约束,等式约束一般需要转化;
  4. 初值必须选取满足约束,实践中很难选。

IPOPT是常用的解非线性优化的工具

增广拉格朗日方法

增广拉格朗日方法(Augmented Lagrangian Method, ALM),非常重要,是为了解决罚函数病态的问题,在罚函数基础上加上了一个拉格朗日项\lambda^T c(x)

\mathcal{L}_A(x, \lambda, \rho) = f(x) + \lambda^T c(x) + \frac{\rho}{2} |c(x)|^2

或者看作是在拉格朗日函数L(x,\lambda)=f(x) + \lambda^T c(x)的基础上加了一个正则项\frac{\rho}{2} |c(x)|^2,这里c(x)是等式约束。

然后优化这个增广拉格朗日函数,类似primal-dual方法:

x_{k+1} = \arg\min_x \mathcal{L}_\rho(x, \lambda_k)  这是个无约束优化

\lambda_{k+1} = \lambda_k + \rho \cdot c(x_{k+1})  注意对偶量\lambda是要梯度上升而非下降:

\rho_{k+1} = \gamma \rho_k \quad (\gamma > 1) 不停增大

优势:

  1. 相比于罚函数法,\rho不需要趋于无穷而是只需要足够大,就可以得到原问题的准确解,改善了病态性;
  2. 相比于primal-dual方法,由于正则项\frac{\rho}{2} |c(x)|^2的加入,使得原本可能非严格凸的L(x,\lambda)=f(x) + \lambda^T c(x)拉格朗日函数变得严格凸(只要\rho够大),从而问题有唯一解。

缺点:

  1. 需要引入新的对偶变量\lambda,增加了优化维数。尤其是约束数量很多的时候会增加很多\lambda,内存开销大
  2. 适用于等式约束,不等式约束需要转化
  3. 每一步更新都需要解一个完整的子问题x_{k+1} = \arg\min_x \mathcal{L}_\rho(x, \lambda_k),计算量大
  4. 仍然可能\rho很大导致一定程度的病态问题。

浙大2025TASE上发表的MS-minco(弧长和角度为分段夹持多项式,用于差速轮无人车),终端位置的等式约束就不是同胚变换或者罚函数(因为不能写成优化变量的简单表达形式,同时必须严格满足),而是用的ALM。分段中间位置的避碰还是用的罚函数,因为构造ALM需要每个采样点多加一个对偶变量,并多次求解子问题更新,没必要,还不如增大惩罚项系数。

微分同胚变换

简单的不等式约束如T>=0,可以换一个优化变量\tau,使得T=e^\tau,从而天然满足约束

优点:

  1. 应用简单,不需要改变目标函数

缺点:

  1. 原来的凸优化问题经过变量变化后,可能变为非凸问题。但是极值点数量不会变化
  2. 扭曲的变换容易导致问题病态,如\tau无穷时
  3. 只有简单的集合(圆、点放射形状集合)可以找到简单的同胚变换,一般形式的很难。比如直接对x进行不等式约束,或者g(x)<=0,这里g(x)是个简单函数,而不是一堆复杂变换。
  4. 只适用于不等式约束

gcopter里限制中间点q在凸集内部的方法就是微分同胚变换,包括限制时间T>=0也是。但是每段多项式中间的采样点处的避碰约束就不能用微分同胚变换,是因为他们关于优化变量(q,T)——也就是中间点位置和时间——是很复杂的变换,没办法写出简单的同胚变换。

等式消去

对于等式约束,一般意味着优化变量中有冗余,可以通过解方程组消去一些变量(用一部分变量表示其他部分)。

比如gcopter的minco里,5次多项式首尾终端条件+分段处4阶导数连续性,可以直接由(q,T)得到所有分段的多项式系数(c,T)。如果用(c,T)表示轨迹则需加上首尾终端等式约束+分段处4阶导数连续性等式约束,用(q,T)则天然满足这些等式约束。


以上这些方法都是将约束优化转换为无约束优化求解,目的是消去约束。也有直面这些约束的处理办法:

梯度投影法

  1. 可行方向:在每次迭代中,计算目标函数的梯度,并将其投影到当前点的可行方向集合上,得到搜索方向。
  2. 步长选择:沿搜索方向选择适当的步长,确保新迭代点仍在可行域内。
  3. 迭代更新:重复上述过程,直到满足收敛条件。

优点:

  1. 约束保证满足
  2. 对于凸优化问题,梯度投影法通常具有全局收敛性。在满足一定条件下,算法能够收敛到局部最优解或全局最优解

缺点:

  1. 投影计算成本高,尤其是非线性约束投影算子计算很复杂,高维时投影也很复杂。
  2. 不太适合非凸问题

序列二次规划(SQP)

如果优化问题是QP(目标函数二次,约束线性),那么由于其线性特性(梯度和约束都是线性的),可以由主动集(active set)直接求KKT方程(先猜哪些不等式约束的起作用的,然后解 拉格朗日函数L(x,\lambda)=f(x) + \lambda^T c(x)对x和\lambda的梯度为0 的线性方程组)得到解,不需要像ALM那样用迭代的方法更新\lambda

对于一般的非线性优化问题,可以每次迭代近似构造一个QP求解,这就是SQP。

SQP是和内点法、罚函数法完全不同的技术路线,在每次迭代中,基于当前点构造一个原问题的二次规划(QP)子问题。这个子问题用目标函数的二阶近似(Hessian矩阵)和约束的一阶近似(Jacobian矩阵)来局部模拟原问题。求解这个QP子问题,得到搜索方向,然后通过线搜索确定步长,迭代直至收敛。

优点:

  1. 由于是牛顿法在非二次问题上的推广,具有超线性收敛很快的收敛速度。

缺点:

  1. 每一步都需要计算或近似Hessian矩阵,并求解一个可能非凸的QP子问题,计算开销大。因此只适用于中小规模问题,大规模问题还得用内点法。

http://www.dtcms.com/a/403943.html

相关文章:

  • 电子元器件基础知识day1
  • 【C++游记】C++11特性
  • 光子、光量子、量子三者的关系
  • 网站更改目录做301承德信息网络有限公司
  • Pytorch中stack()方法的总结及理解
  • 网站建设需要那种技术开一个网站多少钱
  • 在windows系统如何使用docker将nginx容器化部署
  • 【异世界历险之数据结构世界(二叉搜索树)】
  • 宁夏建设银行网站好的兼职做调查网站
  • SQLMap数据库枚举靶机(打靶记录)
  • 镇江建设工程质量监督局网站虹口 教育 网站建设
  • stm32移植elog
  • 揭阳市网站建设徐州市建设局网站
  • 讯飞起点阅读器京东式开售,后kindle时代机会在哪里?
  • 2018/07 JLPT听力原文 问题四
  • 旅游网站开发说明书网站建设费用应按几年摊销
  • Redis数据持久化
  • wampserver搭建网站鹤山区网站建设
  • 河南省建设厅网站考试成绩查询东莞人才网求职
  • 【数据结构前置知识】泛型
  • Flink SourceOperator和WaterMark
  • 容器化 Djiango 应用程序
  • 营销网站建设企划案例网站建设业务越做越累
  • Java EE、Java SE 和 Spring Boot
  • 两学一做专题网站wordpress 用户密码的加密算法
  • 手写数据结构-- avl树
  • MySQL-事务日志
  • SpringBoot旅游管理系统
  • 永州市城乡建设规划局网站湖南大型网站建设公司
  • 买东西网站有哪些汽车设计公司排名前十强