自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 carla源码记录

【代码】carla源码记录。

2024-03-27 15:32:06 556 1

原创 智能驾驶规划控制理论学习08-自动驾驶控制模块(轨迹跟踪)

虽然我们在当前时间点只应用第一个时间戳的优化策略,但是仍然要计算一个较大预测时域内的控制策略,是采用了类似前面基于几何方法控制中的“前视距离”的思想,能够让系统考虑得更远,以更加平缓的方式接近参考线,即。上图可以直观反映比例增益的取值对系统的影响,如果比例增益过高,系统就会变的不稳定,而如果比例增益太低,则当系统发生扰动时,控制作用可能太小。与LQR算法相似,MPC也采用优化的思想进行控制,这种控制技术计算出的控制动作使约束动力系统在有限的、后退的水平的代价函数最小化。,并加上控制器输出。

2024-03-08 20:23:17 2278

原创 智能驾驶规划控制理论学习07-规划算法整体框架

路径-速度解耦指的是将车辆的运动分成路径规划和速度规划两部分,对两个部分分别进行研究。路径规划:假设环境是“静态的”,将障碍物投射到参考路径上,并规划一条避开它们的路径;速度规划:接收路径规划中给定的路径,将静态和动态障碍物都投影到st图上,并在图中规划大致的速度。在路径规划中,基于当前的“静态”环境,生成路径边界来描述可通过的区域。并且这个可通行区域一般要求是凸集,这样能保证优化的质量。

2024-03-06 23:30:37 1578

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

无约束优化是优化问题中一类较为容易解决的问题,在无约束优化中我们只需要找到最小化的目标函数和其依赖的变量,对于这些变量的值没有任何限制。最简单的数学表达式如下:当函数f(x)是可微的,x是局部最优解的必要条件是当前x的梯度为0。梯度下降法牛顿法高斯牛顿法。

2024-03-05 00:07:35 1393

原创 智能驾驶规划控制理论学习05-车辆运动学规划案例分析

而将non-holonomic-without-obstacles和Holonomic-with-obstacles组合进行使用就能得到(d)图所示的路径,有前面的学习可知通过一次完整的迪杰斯特拉算法可以实现图中某个节点到其他所有节点啊之间的距离,利用这个性质,在做Hybrid A*算法前,先从终点反向的进行一次迪杰斯特拉算法对整个图进行遍历我们可以得到图中任意节点到终点的最短路劲(考虑障碍物),将节点距离记录在表格中(前期的离线收集过程)。因此需要进一步改善。

2024-03-03 16:02:57 1021

原创 智能驾驶规划控制理论学习04-基于车辆运动学的规划方法

如上图所示,左侧为传统的四轮汽车运动学模型,右侧为简化的二自由度汽车模型,仅保留沿着y轴的移动和绕z轴的横摆。车辆运动在二维平面上;假设无滑移条件:轮胎没有横向或纵向滑移,因此我们可以假设车轮的速度与车轮的朝向一致。假设在某个时刻t的一维运动x(t)被表述为五次多项式在五次多项式中共有六个未知量a0……a5,因此要求解一条五次多项式只需要构造出六个等式方程即可,在自动驾驶中通常将起始点和终点作为边界条件。

2024-03-02 16:53:41 1849

原创 智能驾驶规划控制理论学习03-基于采样的规划方法

基于采样的方法就是在状态空间中不断地随机撒点,将这些节点根据一定的规则与周围的节点进行连接,以此构造一条条局部路径,最终找到一条从起点到终点的路径。随着采样点的不断增多,最终得到的解会不断逼近最优解。为图表添加随机数种子以某种策略或者给定条件采样到起始节点选择和哪些其他节点进行连接选择添加或者移除哪些边具有概率完备性,只要采样点足够多,并且生成的图表有解那么一定可以结合图搜索算法找到一条最优解路径;如果是连接特定起点和终点,那么通过PRM的两个阶段先建图在搜索是比较浪费资源的;

2024-03-01 00:30:00 1221

原创 智能驾驶规划控制理论学习02-基于搜索的路径规划方法

BFS在各个方向上的搜索可能性相同,并且如果各边权重为1,bfs搜索得到的路径满足最优性;Dijkstra算法利用贪心的思想选择累计代价值最低的节点,并且能够在有权图中表现出最优性,如果各边权重为1,那么Dijkstra搜索得到的路径和BFS搜索得到的相同。A*是Dijkstra的改进,通过加入启发式函数提高搜索的效率,启发式函数的设计会直接影响到搜索的效率和精度。

2024-02-29 04:00:00 1385

原创 智能驾驶规划控制理论学习01-自动驾驶系统介绍、规划控制模块介绍

目前被国内外广为接受的自动驾驶级别划分标准是 SAE(国际汽车工程学会)分级,从 Level-0~Level-5 总计6 个级别,Level-0 为最低级别,Level-5 为最高级别。限于法规等政策因素,目前绝大多数车企都处在L2或是L2+水平,随着L3自动驾驶相关法规的出台,在今年年底有望出现L3水平的自动驾驶车辆。这里不再过多介绍自动驾驶的各个等级,主要介绍autoware官网给出的自动驾驶软件系统框架。

2024-02-28 16:09:52 3136

原创 代码随想录算法训练营总结

正式结束了代码随想录算法训练营为期60天的打卡,最终能够坚持下来感觉还是很有成就感的。我作为一个大四保研结束转码的机械人,在推免结束后老师就给我发了代码随想录的网站让我学习算法,我在系统的复习完一遍C语言后初步学习了大致的C++语法,就开始了代码随想录的学习,大概学了半个月多的时间,在没有任何数据结构算法的基础下,学到了二叉树章节,即便有网课的讲解还是感到有些力不从心,没有坚持下去的动力,也是在偶然的情况下了解到了算法训练营并加入到打卡的队伍之中。

2024-02-20 19:10:43 766

原创 代码随想录算法训练营day65|84.柱状图中最大的矩形

本题与上一题接雨水的题目有点类似,原理上有很多相同的地方,依然利用单调栈的方法进行求解。代码随想录一刷完成!

2024-02-18 14:44:42 626

原创 代码随想录算法训练营Day64|503.下一个更大元素II、42. 接雨水

本题和“每日温度”类似,但是要求循环数组,利用单调栈实现就有些细微的差别了。本题在代码随想录中介绍了多种方法实现和优化处理,这里只介绍单调栈的方法实现。明天就是训练营的最后一天了,坚持就是胜利!

2024-02-17 21:13:01 706

原创 代码随想录算法训练营Day58|739. 每日温度、496.下一个更大元素 I

通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时我们就要想到可以用单调栈了。时间复杂度为O(n)。单调栈的本质是空间换时间,因为在遍历的过程中需要用一个栈来记录右边(左边)第一个比当前元素高(小)的元素,优点是整个数组只需要遍历一次。更直白来说,就是用一个栈来记录我们遍历过的元素,因为我们遍历数组的时候,我们不知道之前都遍历了哪些元素,以至于遍历一个元素找不到是不是之前遍历过一个更小的,所以我们需要用一个容器(这里用单调栈)来记录我们遍历过的元素。

2024-02-16 17:53:26 1580

原创 代码随想录算法训练营Day57|647. 回文子串、516.最长回文子序列、动态规划总结

本题利用动态规划求解时,dp数组的定义与前面的就有些不同了,是难点之一。上一题要求的是连续的回文子串,本题求最长回文子序列就没有了连续的要求。1.确定dp数组及其下标含义;2.确定递推公式;3.初始化dp数组;4.确定遍历顺序;5.打印dp数组;

2024-02-15 15:58:35 1295

原创 代码随想录算法训练营Day56|583. 两个字符串的删除操作、72. 编辑距离

本题与上一题不同的子序列相比,变化就是两个字符串都可以进行删除操作了。前几题都是为了本题做铺垫,有了前面几题的学习接触本题就不会觉得非常困难,主要难点还是在于递推公式的确定,尤其是当两个字符串比较的位置字符不相等时递推公式的确定。今天的两道题是前面几道题的深化,循序渐进。

2024-02-13 20:36:26 945

原创 代码随想录算法训练营Day55|392.判断子序列、115.不同的子序列

今天练习的两道题目依然是子序列问题,一样的处理方法简化dp数组初始化,但是在具体实现上还是比较困难的,第一次尝试没有什么思路。

2024-02-12 20:12:23 1002

原创 代码随想录算法训练营Day53|1143.最长公共子序列、1035.不相交的线、53. 最大子序和

本题与上一题最长公共子数组类似,只是上一题要求连续,而本题没有这个要求。本题的难点在于审题,要把题目想要表达的意思理解了,要明白题目的本质就是要求最长公共子序列。上一次遇到本题还是在贪心算法的章节,利用贪心算法巧妙地实现,这次利用动态规划的方法进行求解。今天主要还是练习子序列问题,明天继续,早日结束动态规划专题!

2024-02-11 21:21:05 1279

原创 代码随想录算法训练营Day52|300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

在结束代码随想录中的股票问题后,又是一个新的专题,本题是子序列问题的第一题,子序列问题是动态规划解决的经典问题。本题相较于上一题,最大的区别在于“连续”,对于连续问题的处理必须要重点考虑相邻元素。本题与前面几题又不一样了,本题比较的是两个数组拥有的最长重复的子数组,因此不能仅仅再只针对一个数组,dp数组也要变成二维;子序列问题第一天结束!

2024-02-10 10:26:53 1281

原创 代码随想录算法训练营Day51|309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费、股票问题总结

本题在买卖股票II的基础上增加了一个冷冻期,因此就不能简单分为持有股票和卖出股票两个状态了。本题依然是买卖股票II的变形,在原题的基础上增加手续费即可。

2024-02-08 19:06:35 1390

原创 代码随想录算法训练营Day50|123.买卖股票的最佳时机III、188.买卖股票的最佳时机IV

本题相比昨天的两道买卖股票问题又做了一些改变,至多可以买卖两次,那么每天需要考虑的状态就增加了不少。本题相较于前几题的不同之处在于股票可以买入卖出的次数增加到了k次,有了前一题的思想基础,本题的实现并不困难。今天的股票问题在昨天的基础上循序渐进,逐渐增加难度,今天第二题这种难度在有第一题的思路基础上就很容易实现了,否则直接上来还真不好下手。

2024-02-06 20:07:53 1194

原创 代码随想录算法训练营Day49|121. 买卖股票的最佳时机、122.买卖股票的最佳时机II

前一题买卖股票问题只能买卖一次股票,而本题没有一次的限制,虽然每次最多只能仍然只能持有一张股票,但是可以多次买入卖出股票。今天学了买卖股票类的问题,初步简单掌握。

2024-02-05 20:49:27 945

原创 代码随想录算法训练营Day48|198.打家劫舍、213.打家劫舍II、337.打家劫舍 III

分析题干可知,当前房屋偷与不偷取决于前一个房屋和前两个房屋是否被偷。因此当前状态和前面状态会有一种依赖关系,这种依赖关系就是动规的递推公式。本题与上题的区别在于,本题的数组首尾相接,成环了。本题把数据结构改成了树类型,对于树的话,首先就要想到遍历方式,前中后序(深度优先搜索)还是层序遍历(广度优先搜索)。本题一定是要后序遍历,因为通过递归函数的返回值来做下一步计算。与198.打家劫舍,213.打家劫舍II一样,关键是要讨论当前节点抢还是不抢。

2024-02-04 19:12:48 1020

原创 代码随想录算法训练营Day46|139.单词拆分、多重背包理论基础、背包问题总结

这几天学的背包问题主要有三种:0-1背包、完全背包、多重背包。这三种背包问题的主要区别在于:0-1背包问题所有物品只有一件,每件物品至多只能存取一次;而完全背包问题所有物品都有无限件,可以对任意满足条件的背包取用任意次;多重背包问题每件物品都有一定的数量。对于背包问题,尤其要注意动规五部曲中第二步——确定递推公式和第四步——确定遍历顺序。

2024-02-03 20:55:19 1185

原创 代码随想录算法训练营Day45|70. 爬楼梯(进阶版)、322. 零钱兑换、279.完全平方数

本题是70. 爬楼梯问题的进阶版,每次可以跳跃的台阶数之多为m阶,可以用完全背包的方法解决。本题与零钱兑换II有些类似,零钱兑换II是求凑成总金额有多少种不同的方法,而本题是凑成总金额最少的硬币个数。本题也是一道完全背包问题,转换一下题目语言就是:要装满一个容量为n的背包所使用的最少物品个数是多少?今天学会了背包问题之处理装满背包最少物品的方法,对于背包问题的处理感觉有点感觉了。

2024-02-02 13:10:54 905

原创 代码随想录算法训练营Day44|完全背包理论基础、518.零钱兑换II、377. 组合总和 Ⅳ

这是一道典型的背包问题,一看到钱币数量不限,就知道这是一个完全背包。但本题和纯完全背包不一样,纯完全背包是凑成背包最大价值是多少,而本题是要求凑成总金额的物品组合个数!与目标和那题有点类似,不过那道题限制了每个物品只能取一次,是一道0-1背包问题。本题表面上是让我们求的元素的组合,但是又说元素相同顺序不同的组合算两个组合,因此是一道排列问题!今天学了完全背包问题的处理方法,并且回顾了求装满背包问题的递推公式:dp[j - nums[i]]。

2024-02-01 15:39:42 2114

原创 代码随想录算法训练营Day43|1049.最后一块石头的重量II、494.目标和、474.一和零

题目链接文章链接本题使用回溯和动规两种方法进行实现,动规的实现依然难在如何转化为背包问题。本题中strs 数组里的元素就是物品,每个物品都是一个!而m 和 n相当于是一个背包,两个维度的背包。本题的01背包有两个维度,一个是m 一个是n,而不同长度的字符串就是不同大小的待装物品。纯 0 - 1 背包 (opens new window)是求 给定背包容量 装满背包 的最大价值是多少。416. 分割等和子集 (opens new window)是求 给定背包容量,能不能装满这个背包。

2024-01-29 21:58:39 1027

原创 代码随想录算法训练营Day42|0-1背包理论基础、416. 分割等和子集

这道题目是要找是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。那么只要找到集合里能够出现 sum / 2 的子集总和,就算是可以分割成两个相同元素和子集了。本题的难点主要在于如何将题目条件转换为我们知道的01背包条件。今天了解了背包问题中的0-1背包问题,对于二维dp数组和一维dp数组的原理和实现有了一定了解,并对其进行了简单的初步应用。t=N7T8题目链接https://kamacoder.com/problempage.php?pid=1046。

2024-01-28 20:41:26 1222

原创 代码随想录算法训练营Day41|343. 整数拆分、96.不同的二叉搜索树

本题要使得整数拆分后的乘积最大,使用动态规划求解难在递推公式的推导。本题使用动态规划求解时依然难在递推公式的求解,可以先举几个例子,画画图,从中查找规律。今天的动态规划题难在递推公式的推导,当递推公式较难想时,可以通过举例的方式观察规律。

2024-01-27 19:16:40 1034

原创 代码随想录算法训练营Day39|62.不同路径、63. 不同路径 II

本题也是一题路径搜索类题,在上一题的基础上在网格中增加了一些障碍,求在有障碍的情况下路线的条数。今天的两题任务量不大,但也加深了动态规划五部曲的使用,对于dp二维数组的操作也有所了解,受益颇多!

2024-01-26 16:50:11 291

原创 代码随想录算法训练营Day38|动态规划理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

动态规划,英文名为Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的。对于动规,如果没有方法论的话,可能简单题目可以顺手一写就过,难一点就不知道如何下手了。从一开始做题就按照动态规划的五部曲顺序来执行。本题就没有像上一题一样直接给出递推公式,我们先自=自己举几个例子,就可以发现规律。

2024-01-25 21:43:44 1573

原创 代码随想录算法训练营Day37|738.单调递增的数字、贪心算法总结

在贪心算法题的练习过程中,虽然没有能够总结出能够直接套用的模板,但是还是对于不同难度的贪心算法题有了大概的认识。首先是一些简单题,基本上通过常识就能解决不用想具体的局部最优和全局最优。对于一些中等题,贪心算法就展现出它的巧妙之处了,对于类似重叠区间的题目,利用贪心实现由固定的套路;对于要同时考虑两个维度的题目,往往先选择一个合适的维度进行讨论,再考虑选择另一个维度讨论补充。对于一些贪心难题,例如和二叉树等较难的数据结构关联起来,处理起来就相当麻烦,在一刷的时候我选择跳过。

2024-01-24 21:14:54 628

原创 代码随想录算法训练营Day36|435. 无重叠区间、763.划分字母区间、56. 合并区间

本题与昨天引爆气球的那道题思路是一致的,都是考察重叠区间的问题。本题要求同一字母最多出现在在一个片段中,一开始想到用双指针的方式实现,发现还不够熟练使用双指针,就延续上题划分区间的思路求解。本题依旧是区间重叠类型的题目,思想上不难,重点和难点在于如何使区间进行合并。今天几道都是区间重叠类型的题目,实现思想上大体相同,但是在具体实现逻辑上存在一些差异,后两题的实现就有些巧妙,但是基本上做过一遍之后就基本能够记住方法。

2024-01-23 20:43:13 731

原创 代码随想录算法训练营Day35|860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球

本题要判断是否能实现对每位顾客正确找零,一共有5元、10元、20元三种面值的钞票,每杯柠檬水的售价是固定的5美元。只要每次交易后对三种面值的钞票进行准确的变化统计即可判断是否能够正确找零。本题与昨天分发糖果的题目有些类似,也要考虑两个维度,h和k,依旧是要先想如何确定一个维度,然后再按照另一个维度重新排列。本题的难点在于如何让判断多个气球能否同时被一箭引爆。今天的第一题难度不大,自己直接实现,第二题复习了一下对于两个维度的问题的处理方式,以及第三题初步认识了重叠区间问题的处理方法。

2024-01-22 20:13:36 684

原创 代码随想录算法训练营Day34|1005.K次取反后最大化的数组和、134. 加油站、135. 分发糖果

本题的一个难点在于对于数组中的一个位置如何处理好左右两边的比较。题目代码量不大,但是有点灵活,第一次接触很难想到。

2024-01-21 18:06:41 550

原创 代码随想录算法训练营Day32|122.买卖股票的最佳时机 II、55. 跳跃游戏、45.跳跃游戏 II

本题要求只能持有一支股票,根据每日股票的价格控制股票的买入和卖出获取最大利润。本题可以继承上一题求最大覆盖范围的思路,但是在具体处理上还要复杂一些。贪心算法的题目确实思路比较难想,有点费脑子。

2024-01-20 15:22:32 673

原创 代码随想录算法训练营Day31|贪心算法理论基础、455.分发饼干、376. 摆动序列、53. 最大子序和

贪心的本质是选择每一阶段的局部最优,从而达到全局最优。本题要使不同大小的饼干和胃口之间得到合理的分配,为了满足更多的小孩,就不要造成饼干尺寸的浪费。大尺寸的饼干既可以满足胃口大的孩子也可以满足胃口小的孩子,那么就应该优先满足胃口大的(或者小尺寸的饼干优先分给胃口小的)。本题要求通过从原始序列中删除一些(也可以不删除)元素来获得子序列,剩下的元素保持其原始顺序。如果能够画出序列上下摆动的坡度图就能很好理解。局部最优:删除单调坡度上的节点(不包括单调坡度两端的节点),那么这个坡度就可以有两个局部峰值。

2024-01-19 18:45:35 2487

原创 代码随想录算法训练营Day30|332.重新安排行程、51. N皇后、37. 解数独

在每一个行程中,如何合理处理每一个航班,使它不形成一个圈而成为死循环;如何让字母序靠前排在前面;使用回溯法的话终止条件如何确定;在搜索过程中如何遍历一个机场所对应的所有机场。N皇后是要求在二维矩阵中放置皇后,要求皇后不能同行、同列、同斜线。二维矩阵中矩阵的高就是这棵树的高度,矩阵的宽就是树形结构中每一个节点的宽度。我们用皇后们的约束条件,来回溯搜索这棵树,只要搜索到了树的叶子节点,说明就找到了皇后们的合理位置了。本题与N皇后虽然都是;类似的棋盘问题,但是更为复杂。

2024-01-18 21:41:06 1266

原创 代码随想录算法训练营Day29|491.递增子序列、46.全排列、47.全排列 II

本题初看与上一题子集II类似,但实际上只是表面相像,在子集II中我们是通过排序,再加一个标记数组来达到去重的目的。而本题求自增子序列,是不能对原数组进行排序的,排完序的数组都是自增子序列了。所以不能使用之前的去重逻辑!排列问题与组合问题的区别是排列是有序的,在处理排列问题的时候不再使用startIndex,但是需要一个used数组标记已经选择的元素。本题与上一题的区别在于给定一个可包含重复数字的序列,要返回所有不重复的全排列。因此又涉及到了去重问题。

2024-01-17 20:52:19 560

原创 代码随想录算法训练营Day28|93.复原IP地址、78.子集、90.子集II

本题与上一题分割回文串类似,本质都是类似组合的切割问题,对有效的ip地址进行切分复原,切割问题就可以使用回溯搜索法把所有可能性搜出来。子集问题的处理方式与前面的组合问题又不太一样,如果把子集问题、组合问题、分割问题都抽象为一棵树的话,那么组合问题和分割问题都是收集树的叶子节点,而子集问题是找树的所有节点!其实子集也是一种组合问题,因为它的集合是无序的,子集{1,2} 和 子集{2,1}是一样的。那么既然是无序,取过的元素不会重复取,写回溯算法的时候,for就要从startIndex开始,而不是从0开始!

2024-01-16 19:35:04 405

原创 代码随想录算法训练营Day27|39. 组合总和、40.组合总和II、131.分割回文串

本题的组合求和对数组中的数字可以无限制重复选取,本题没有组合数量要求,仅仅是总和的限制,所以递归内有层数的限制,只要选取的元素总和超过target就返回。本题与上一题的不同之处在于本题candidates数组中的每个数字在每个组合中只能使用一次。本题的难点在于集合有重复元素,但不能有重复的组合,在具体实现上要理清树层去重和树枝去重。切割问题类似组合问题,也可以抽象为树形结构。本题递归参数还需要startIndex,因为切割过的地方不能重复切割,和组合问题也是一致的。

2024-01-15 21:07:17 640

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除