智能驾驶规划控制理论学习06-基于优化的规划方法

目录

一、优化概念

1、一般优化问题

2、全局最优和局部最优        

二、无约束优化

1、无约束优化概述

 2、梯度方法        

通用框架

线性搜索 

 回溯搜索

3、梯度下降

基本思想

实现流程

​4、牛顿法

基本思想

实现流程

5、高斯牛顿法 

6、LM法(Levenberg-Marquardt Method) 

 三、二次规划

 1、凸函数与凸集合

2、凸优化问题 

3、二次规划

四、非线性规划问题 


一、优化概念

1、一般优化问题

        对于一般优化问题可以如下表述:

        式中 f(x) 是目标函数,x是想要求解的决策变量,S是可行域,subject中的内容是关于变量的约束条件,由等式约束或不等式约束构成。

        举一个简单的例子,如下图所示:

2、全局最优和局部最优        

        全局最优对应上图中的global minimum,是在整段函数上取得的最小值,而局部最优则对应的是在一个小的邻域中寻找最小值,与之相对应的有强局部最优和弱局部最优。强局部最优严格要求邻域内的其他点对应的函数值大于最小值,而弱局部最优要求邻域内的其他点对应的函数值大于等于最小值。

二、无约束优化

1、无约束优化概述

        无约束优化是优化问题中一类较为容易解决的问题,在无约束优化中我们只需要找到最小化的目标函数和其依赖的变量,对于这些变量的值没有任何限制。最简单的数学表达式如下:

        当函数f(x)是可微的,x是局部最优解的必要条件是当前x的梯度为0。

        用来解决无约束优化问题的梯度法有如下几种:

  • 梯度下降法
  • 牛顿法
  • 高斯牛顿法
  • Levenberg-Marquardt Method

 2、梯度方法        

通用框架

        对于一般的梯度方法可以用如下迭代公式:

x^{(k+1)}=x^{(k)}+\alpha ^{(k)}\Delta x^{(k)}

        式中x表示优化变量,x^{(k)}表示第k次迭代优化变量的取值,\Delta x^{(k)}表示第k次迭代下降的方向,\alpha ^{(k)} 表示关于下降方向的步长。

        我们期望每经过一步,函数值下降,f (x^{(k+1)}) < f(x^{(k)})

        重复迭代过程直到满足某个收敛的条件,关于收敛条件有如下三种常见的定义:

  • \left \| x^{(i+1)}-x^{(i)} \right \|<\varepsilon
  • \left \| x^{(i+1)}-x^{(i)} \right \|/\left \| x^{(i)} \right \|<\varepsilon
  • \left | f(x^{(i+1)})-f(x^{(i)}) \right | \leq \varepsilon

        在工程上我们往往会使用多种收敛条件的组合进行判断。

线性搜索 

        关于步长α可以通过线性搜索的方式取得,将该过程抽象为数学表达式如下:

\phi (\alpha )=f(x_{k}+\alpha p_{k}), \alpha >0

        式中 x_{k}表示第k次迭代优化变量的取值,p_{k}表示第k次迭代下降的方向,对于线性搜索p_{k}是一个已知量,步长α就是我们要求解的未知量。

        线性搜索可分为精确线性搜索和非精确线性搜索:

  • 精确线性搜索:\phi (\alpha ) = argmin_{\alpha >0}f(x_{k}+\alpha p_{k}),该函数表达的是要在给定下降方向上找到一个精确到α值使得函数值达到最小;

        在工程实际中,对于一个复杂的目标函数我们很难直到一个准确的方向,想要通过一个近似得到的方向获得精确的步长显示是不合理的。

  • 非精确线性搜索:不必严格寻找使得整体代价值最小的步长,只要代价值小于一定值就可以接受,如下图所示有两个满足条件的区间,相比较而言,非精确的线性搜索更加高效。

 回溯搜索

        图中横轴t表示步长,下降方向△x对于某一点是已知的,在起点对其做泰勒展开可以得到一条切线,将切线乘对应的α因子可以得到放缓的线条。

        对于回溯法,只要搜索得到的点在两条虚线之间就认为有效。具体的判断如下:

         \alpha \epsilon (0,0.5), \beta \epsilon (0,1), t:=1

        while f(x+t\triangle x) > f(x) + \alpha t\bigtriangledown f(x)^{T}\triangle x, t:=\beta t 

3、梯度下降

基本思想

        在高等数学中我们学过梯度方向是一个函数值增长最快的方向,对应上图中的steepest ascent,而想要让代价函数的下降值最快则要沿着负梯度方向,梯度下降正是依赖于这种思想。

        对于上图的二维函数,使用迭代框架,从起始点x0开始,每一步都朝着负梯度方向前进。

实现流程

 4、牛顿法

基本思想

        相比于梯度下降这种一阶的方法(只用到了梯度的信息),牛顿法是一个二阶的方法。用一维函数来简述牛顿法的步骤:

        第一步是在当前点进行二阶的泰勒展开;通过第二步是通过泰勒展开的方式对原函数进行近似,我们想利用二次函数的最优质找到合适的下降方向因此通过将第二步中得到的函数对\delta进行求导即可到达第三步中的梯度函数;通过移项等方式得到最终第四步\delta的表达式。

实现流程

        牛顿法的伪代码实现与梯度下降方式基本一致,只是牛顿法的前提是函数二阶可导,而梯度下降法只要一阶可导。

5、高斯牛顿法 

        高斯牛顿法是牛顿法的优化,它的最小化成本函数基于最小二乘的思想:

f(x)=\sum_{i=1}^{m}(f_{i}(x))^{2}

        将累计求和的形式转换成向量的形式:

min\left \| F(x) \right \|^{2}, F(x)=\begin{pmatrix} f_{1}(x)\\ \vdots \\ f_{m}(x) \end{pmatrix}

        对F(x)向量进行一阶展开,得到:

F(x+\delta )=F(x)+J_{F}(x)\delta 

        再将展开得到的式子代入:

min\left \| F(x)+J_{F}(x\delta ) \right \|^{2}

        将平方项展开后对\delta进行求导记得可到高斯牛顿的搜索方向:

\delta = -(J^{T}J)^{-1}J^{T}F

        将高斯牛顿得到的结果与牛顿法得到的结果\delta = -(H_{f}(x))^{-1}\bigtriangledown f(x)进行对比,高斯牛电脑中J是表示F(x)函数的梯度,J^{T}J等效于牛顿法中的H_{f}(x),而后面的J^{T}F等效于牛顿法中的梯度。之所要有这样替代的操作,是因为当优化变量非常多时,在每一步迭代用牛顿法计算H_{f}(x)是非常耗时的操作。

        具体伪代码的实现流程如下:

6、LM法(Levenberg-Marquardt Method) 

         LM法是高斯牛顿法的优化,在高斯牛顿法中可能会出现J^{T}J是一个奇异矩阵或存在病态条件,此时下降方向的稳定性较差,导致算法出现发散。

        LM法通过引入参数\lambda在梯度下降法和高斯牛顿法之间做动态地调整,公式如下:

(J^{T}J+\lambda diag(J^{T}J))\delta _{lm}=Jf 

 三、二次规划

 1、凸函数与凸集合

         凸函数在数学上的精确定义如下:

         在某个向量空间的凸子集中,有任意两个向量x,y有:

f(tx+(1-t)y)\leq tf(x)+(1-t)f(y), for 0\leq t\leq 1

        简单来说,就是f函数的值在连接f(x)和f(y)的线段下方;

        对于凸集合,有如下定义:

        对于一个集合C,若对于任意x,y∈C,有tx+(1-t)y\varepsilon C, for all 0\leq t\leq 1

        简单来说,对于凸集合内的任意两点,链接该对点的直线段上的每一个点也在这个集合内。如下图左侧就是一个凸集合,右侧就不是凸集合。

2、凸优化问题 

        对于上述优化处理,若满足f_{0},f_{1},\cdots ,f_{m}都是凸函数,那么这种规划就是凸优化。

        凸优化有以下几个优点:

  • 可行集是凸集合;
  • 凸函数的局部最优解必定是全局最优解
  • 在理论和工程实际中,相比较其他优化方法,凸优化是比较好处理的。因此在自动驾驶规划领域,我们很多时候也会把问题建模成凸优化问题。

        下面简单介绍几种在凸优化领域方法的定义:

  • LP:linear program(线性规划)
  • QP: quadratic program(二次规划)
  • SOCP: second-order cone program(二阶锥规划)
  • SDP: semidefinite program(半定规划)
  • CP: cone program(锥规划)

        本节我们主要关注二次规划问题。

3、二次规划

          本节不重点二次规划原理和具体实现流程,主要将在工程实际中如何处理类似的二次规划问题。        

        QSOP求解器是一个数值优化包,用于求解形式为凸的二次规划。

         具体到代码层面来说:

四、非线性规划问题 

        此处的非线性主要指的是目标函数和约束都是非凸的。

        求解非线性规划问题有:

  • 顺序二次规划(SQP)
  • 内点法(IPM)

        同样在工程上也有直接处理非线性规划问题的处理器——Ipop,该处理器基于内点法,主要思想是:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/434533.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

通过hyperbeam创建梁单元截面属性

1、为模型中标准的圆柱形创建梁单元和赋予属性&#xff1b; 2、为模型中不标准的对称性实体创建梁单元和赋予属性&#xff1b; 3、为模型中壳体部分创建梁单元和赋予属性&#xff1b;

上位机图像处理和嵌入式模块部署(qmacvisual三个特色)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 了解了qmacvisual的配置之后&#xff0c;正常来说&#xff0c;我们需要了解下不同插件的功能是什么。不过我们不用着急&#xff0c;可以继续学习下…

分布式事务(SeataClient)

问题场景 元数据 库存 100订单记录为空下单操作 @AutowiredRestTemplate restTemplate;/*** 下单** @return*/@Transactional // 开启事务 异常后触发数据库回滚操作@Overridepublic Order create(Order order) {// 插入订单orderMapper.insert(order);// 扣减库存 MultiValu…

Python 弱引用全解析:深入探讨对象引用机制!

目录 前言 弱引用的概述 弱引用的原理 使用 WeakRef 类创建弱引用 使用 WeakValueDictionary 类创建弱引用字典 实际应用场景 1. 解决循环引用问题 2. 对象缓存 总结 前言 在Python编程中&#xff0c;弱引用&#xff08;Weak Reference&#xff09;是一种特殊的引用方式…

折线图 温度变化曲线图

代码详情介绍 导入必要的库&#xff1a; matplotlib.pyplot&#xff1a;用于绘图。 matplotlib.font_manager&#xff1a;用于设置中文字体。 datetime&#xff1a;用于处理日期和时间。 random&#xff1a;用于生成随机数。 numpy&#xff1a;用于生成arange函数的刻度。 设置…

【kubernetes】关于k8s集群如何将pod调度到指定node节点?

目录 一、k8s的watch机制 二、scheduler的调度策略 Predicate&#xff08;预选策略&#xff09; 常见算法&#xff1a; priorities&#xff08;优选策略&#xff09;常见的算法有&#xff1a; 三、k8s的标签管理之增删改查 四、k8s的将pod调度到指定node的方法 方案一&am…

RK356X RK3588 单独编译kernel 与烧录

RK356X RK3588 单独编译kernel 与烧录 可以快速提高我们开发与调试速度 网上可查到的方法如下&#xff1a; RK3568 Android12&#xff1a; 1.添加kernel-4.19/makekernel.sh #!/bin/sh make -j24 ARCHarm64 CC../prebuilts/clang/host/linux-x86/clang-r416183b/bin/clang …

EasyRecovery易恢复2024免激活安装包下载

EasyRecovery易恢复是一款功能强大的数据恢复软件。这款软件由全球著名数据厂商Kroll Ontrack出品&#xff0c;可以恢复被删除的文件、文件夹&#xff0c;以及被格式化的磁盘等数据。无论是硬盘、U盘、SD卡还是其他移动设备&#xff0c;EasyRecovery易恢复都能通过其专业的数据…

全连接神经网络算法原理(激活函数、前向传播、梯度下降法、损失函数、反向传播)

文章目录 前言1、全连接神经网络的整体结构&#xff1a;全连接神经网络模型是由输入层、隐藏层、输出层所组成&#xff0c;全连接神经网络结构如下图所示&#xff1a;全连接神经网络的每一层都是由一个一个的神经元所组成的&#xff0c;因此只要搞清楚神经元的本质就可以搞清楚…

MetaQTL:元分析基础教程

MetaQTL 基础知识 在遥远的海洋中&#xff0c;每个岛屿都藏着无尽的宝藏&#xff0c;而探险家们争相寻找地图&#xff0c;以期揭开宝藏的秘密。 现实世界中&#xff0c;我们的基因组就像那片广阔的海洋&#xff0c;而隐藏在其中的宝藏就是控制我们身高、健康、甚至是我们性格的…

MM配置2-给公司代码分配工厂

配置步骤&#xff0c;如下图&#xff1a;在弹出的对话框中将工厂分配给相应的公司代码 保存完成

UDP通信发送和接收 || UDP实现全双工通信

recvfrom ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen); 功能: 从套接字中接收数据 参数: sockfd:套接字文件描述符 buf:存放数据空间首地址 …

java的运算符

整形和浮点型相比&#xff0c;浮点型的范围更大&#xff0c;所以在Java中正常条件下都是整形隐式转换为浮点型(任意整形都可以隐式转换为double或者float)&#xff0c;浮点型不能隐式转换为整形。 1.算术运算符 1. 基本四则运算符&#xff1a;加减乘除模( - * / %) 加减乘都…

mfc110u.dll丢失的解决方法,5招搞定mfc110u.dll丢失问题

mfc110u.dll是一个动态链接库文件&#xff0c;它是Microsoft Foundation Class&#xff08;MFC&#xff09;库的一部分。MFC是微软公司为Visual C开发人员提供的一个类库&#xff0c;用于简化Windows应用程序的开发过程。mfc110u.dll文件包含了MFC库中的一些功能和类&#xff0…

口碑营销:品牌如何维护良好口碑?

企业的品牌传播最有效的方式莫过用户的口碑&#xff0c;互联网的发展为企业的品牌传播引入了驱动力&#xff0c;愈来愈多的企业花费更多的资源开展网络口碑的建设和维护&#xff0c;那么企业如何维护好网络口碑&#xff1f; 1、持续传递优质的品牌内容 内容是营销推广的支撑点&…

MySQL进阶之(四)InnoDB数据存储结构之行格式

四、InnoDB数据存储结构之行格式 4.1 行格式的语法4.2 COMPACT 行格式4.2.1 记录的额外信息01、变长字段长度列表02、NULL 值列表03、记录头信息 4.2.2 记录的真实数据 4.3 Dynamic 和 Compressed 行格式4.3.1 字段的长度限制4.3.2 行溢出4.3.3 Dynamic 和 Compressed 行格式 4…

贪心 Leetcode 968 监控二叉树

监控二叉树 Leetcode 968 学习记录自代码随想录 给定一个二叉树&#xff0c;我们在树的节点上安装摄像头。 节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。 计算监控树的所有节点所需的最小摄像头数量。 要点&#xff1a;1.想到优先覆盖叶子节点&#xff0c…

数字孪生10个技术栈:数据采集的八种方式

大家好&#xff0c;我是贝格前端工场&#xff0c;上期讲了数字孪生10个技术栈&#xff08;总括&#xff09;:概念扫盲和总体介绍&#xff0c;获得了大家的热捧&#xff0c;本期继续分享技术栈&#xff0c;大家如有数字孪生或者数据可视化的需求&#xff0c;可以联络我们。 一、…

企业内部培训考试系统在线考试都用到了哪些防作弊技术?

企业内部培训考试系统在线考试功能采用了多种技术手段来防止作弊行为&#xff0c;确保考试的公平性和有效性&#xff0c;具体如下&#xff1a; 1. 人脸识别验证&#xff1a;在考试开始前&#xff0c;考生需要进行人脸识别核验。系统会根据考生的姓名和身份证号实时采集人脸与公…

AI革命:如何用会话式AI制作爆款短视频

智能制作&#xff1a;会话式AI让短视频内容更上一层楼 随着社交媒体的广泛普及与飞速发展&#xff0c;短视频已成为人们日常生活中不可分割的一环。以其内容简洁、形式多样、易于消费的特性&#xff0c;短视频深受广大用户的青睐。因此&#xff0c;积极投入短视频的制作&#x…
最新文章