自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 const修饰函数时,哪些值不可以被改变

如果从非 const 类型到 const 类型的转换发生了,并且没有正确处理此转换,则可能导致将对象修改为 const。引入第三方库或外部代码:有时候使用第三方库或引入外部代码时,可能会意外地将非 const 对象传递给要求 const 参数的函数或方法。例如,在函数调用链中传递了一个非 const 对象,并且在其中的某个环节不小心将其标记为了 const。在 C++ 中,如果一个对象没有被声明为 const,但在其他地方被修改成 const 是不合法的。一旦对象被声明为 const,它的值就不能再改变。

2023-08-31 14:20:57 269

原创 ubuntu18.04进入桌面鼠标变为叉

【代码】ubuntu18.04进入桌面鼠标变为叉。

2023-02-28 16:45:07 652

原创 Apollo PNC课程学习(Ⅰ)

在得到路径边界之后,可以调用路径优化器得到平滑路径,然后进行速度决策。使用速度边界决策器得到许多条速度边界,然后进行集成得到最终速度边界,之后利用ST图得到时间上的位置的限制边界,综合两者完成速度规划。On lane planning 是默认的规划模式,主要处理基于车道线的规划,第二种是open space planning,主要处理没有车道线的情况比如泊车。这里的边界可以在代码中调整,看可以给到多少横向距离,比如说在施工路段绕行的代码调试中就需要去考虑较远的一个path bound。

2022-11-27 18:34:40 802

原创 Ubuntu用gparted给/空间和home空间扩容

我的电脑是拯救者,进入启动盘后点最上边的Ubuntu,等待进入系统,会弹出安装界面,×掉之后就进入系统了。ubuntu下的Home文件夹没有空间了,使用dh -f 看到 / 下边还有空间,想把空间给/home。首先在Gparted里面的空间被锁住了,需要使用Ubuntu live系统里面启动Gparted。此时可以resize你的分区,把 \ 的空间缩小给到\home。这里也没看见所谓的live标志,一度以为进错系统了。这时打开Gparted就没锁了。

2022-11-24 10:45:53 1675

原创 DeepCFR中文总结

DeepCFR

2022-11-19 20:16:49 750

原创 apollo决策规划学习--施工绕行

这一场景的难点在于多静态障碍物的处理。首先看看规划失败的场景,大佬已经给出示例,不再自己录制了,参考:自动驾驶player由于设置的起点和终点在一条扯到线上,所以只生成了一条ReferenceLine。(若不在一条车道可以完成规划)考虑两种方案:1. 生成多条参考线然后走lane change 2. 保持一条参考线走lane borrow首先看看参考线生成:…\apollo-r7.0.0\modules\planning\reference_line\reference_line_provider

2022-07-04 11:17:29 3947 13

原创 博弈论在自动驾驶方向的应用(Ⅲ)

第三节学习一下机器博弈具体是怎么解决自动驾驶中的规划问题的:分为宏观上的决策(是否并道),或是通过决策生成一段路径一、在车道上多方的博弈可以看做是在过程中使自己的奖励最大化,通常的奖励可以设置为安全舒适和达到目的两部分。以并道事件为例,考虑到博弈的非合作性质,车辆最终会采用形成纳什均衡的策略。为了评估模型参数,我们提出了一种双层估计方法,上层为最小二乘问题,下层为寻找平衡点的线性互补问题。利用野外采集的车道数据验证了所提模型的适用性。玩家1代表并道车辆,玩家2代表本来在道路上的车辆,双方必须在看到对方后

2022-06-28 15:41:35 1739

原创 MCTS自动驾驶规划

参考:蒙特卡洛树搜索首先,我们给MCTS下两个定义。第一,MCTS是一个决策时规划算法;第二,MCTS是一个rollout算法。不同之处在于MCTS中会部分的保存值函数,从而能够指导仿真产生更高回报值的轨迹。在MCTS中,每当我们遇到一个新的状态,需要选择动作时,就会执行MCTS(决策时规划)。每一个MCTS更新过程都是一个迭代过程。这个迭代过程会仿真很多从当前状态开始直到终止态的轨迹(rollout)。MCTS的核心思想是专注于哪些获得高的评估回报的仿真,并且基于先前的高回报仿真轨迹不断的往外扩展,产生

2022-06-20 22:57:29 2286 1

原创 自动驾驶秋招面试经验

面经

2022-06-20 16:50:52 1413 1

原创 Apollo EM planner

参考:https://arxiv.org/pdf/1807.08048.pdf最大期望算法经过两个步骤交替进行计算,第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;第二步是最大化(M),最大化在E步上求得的最大似然值来计算参数的值。M步上找到的参数估计值被用于下一个E步计算中,这个过程不断交替进行。多车道 EM 规划框架:E-Step对应的基于隐含数据的假设值(当前规划的Trajectory)进行的极大似然估计(Path Planning)。M-Step对应的是重新给出未知变量的

2022-06-06 20:17:56 543

原创 Leetcode易考总结

leetcode个人笔记

2022-06-06 14:33:33 165

原创 apollo决策规划学习--慢速障碍物超车

巨人的肩膀:Apollo Planning 代码学习(一)apollo介绍之planning模块Apollo Planning决策规划代码详细解析 (6):LaneChangeDecider1主要的函数流程如下:PlanningComponent::Proc() -> OnLanePlanning::RunOnce() ->OnLanePlanning::Plan()-> PublicRoadPlanner::Plan() ->Scenario::

2022-05-24 20:51:40 7626 18

原创 apollo planning module c++

Planning模块的主入口为:/apollo/cyber/mainboard/http://mainboard.ccusinghttps://blog.csdn.net/shift_wwx/article/details/78742459override1.可以当注释用,方便阅读.2.告诉阅读你代码的人,这是方法的复写.3.编译器可以给你验证 override 对应的方法名是否是你父类中所有的,如果没有则报错.std::make_shared // make_unique智能指针指向&lt

2022-05-21 14:22:38 302 1

原创 apollo重编译速度过慢的问题

在更改完apollo中的.cc文件后需要重新编译apollo,但是发现编译速度和第一次编译速度一样,而且打印很多日志,并且会下载大约5G的文件,(我总共就还有40G的空间,这怎么行)。观察编译过程需要每次下载bazel-dependencies-5.0.0.tar.gz(但不止下载这一个),打开编译文件scrpts/apollo_build.sh文件,找到最下面的main()函数。把prepare_bazel_build这个打上注释。之后解决编译时间过长的问题:观察到disabled_targe

2022-05-13 17:18:45 893 1

原创 机器博弈:非零和博弈下的叶值表剪枝

摘要:在alpha-beta剪枝的情况下,修剪博弈树的算法通常依赖于一个零和;在投机剪枝等多人剪枝算法的情况下,则依赖于常和博弈。虽然现有算法可以对非零和博弈进行剪枝,但剪枝的有效性远远低于对常和博弈的剪枝。我们引入叶值表的思想,它在博弈树中存储可能的叶值的枚举。使用这些表,决定是否有可能删除树中的一个给定节点。叶值表也使它更容易合并单调启发式增加修剪。在Spades的3人完全信息变量中,我们能够将节点扩展减少两个数量级。Alpha-beta和其他修剪方法使用非常简单的线性测试作为决策规则,以确定它们是否

2022-04-18 20:27:27 3572

原创 Counterfactual regret minimization

在github上看到一位博主写的很不错,原网址Counterfactual regret minimization(下称CFR)是目前针对不完全信息博弈问题的一类主流求解方法,在棋牌类游戏中有较为广泛和成功的应用。理解这类算法的思路和性质,将有助于后续对一般的不完全信息博弈问题的研究。在这篇文章中,我将对近期对CFR的学习做一个简单的整理,便于后续回顾。内容主要包括:对原始的CFR算法及其经典变种的简单实现,以及实现过程中遇到的一些问题点和注意点;对CFR算法思路的一些个人理解,以及后续拓展方向的思考

2022-04-15 20:33:58 948

原创 pycharm下设置PYTHONPATH

在运行openspiel项目时报错"no module named pyspiel"在./venv/bin/activate 和 your ~/.bashrc执行export PYTHONPATH之后在terminal可以运行code,但是在pycharm debug仍报错参考:pycharm设置python path抄写如下:1、File->Setting2、Project:XXX->Project Interpreter3、在右边的Project Interpreter的下拉

2022-04-13 11:11:29 3488

原创 强化学习实习岗面经

一. 第四范式(经济决策)是否学过python,自学还是?python相关:如python的数据格式,字典和列表的区别,如何合并字典,深拷贝浅拷贝的区别项目相关:reward是怎么设置的考了道二分的题。让用python写。二. 毫末智行(自动驾驶决策岗)自我介绍博弈和强化你是怎么结合的?局部最优你是怎么处理的?说说你最熟悉的几个强化框架?DQN和DDPG的区别?on-policy和off-policy的区别?A2C,A3C,异步和同步有哪些区别。除了博弈和强化你还了解哪些有关控制、规

2022-03-28 16:56:11 981

原创 开源项目 TORCS经验

安装部分sudo apt-get install xautomation报错The following packages have unmet dependencies: electron-ssr : Depends: libappindicator1 but it is not going to be installedE: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

2022-03-01 14:14:12 837

原创 博弈论在自动驾驶方向的应用(Ⅱ):路口的自动驾驶策略综述

PAPER:Autonomous Driving Strategies at Intersections: Scenarios, State-of-the-Art, and Future OutlooksAbstract由于交叉口场景的复杂性和动态性,交叉口自动驾驶策略一直是近年来智能交通系统研究的难点和热点。本文对目前最先进的交叉口自动驾驶策略进行了简要总结。首先列举并分析了常见的交集场景类型、对应的仿真平台以及相关数据集。其次,通过回顾前人的研究,总结了现有自动驾驶策略的特点,并将其划分为几个类别。

2021-11-29 22:12:28 1838 1

原创 文章阅读:Regret-Based Pruning in Extensive-Form Games

卡内基梅隆Noam Brown大神发的 Regret-Based Pruning in Extensive-Form Games,结合CFR和CFR+框架的剪枝技术,实验表明,游戏速度提高了一个数量级,相对速度的提高也随着游戏规模的增加而增加。

2021-11-23 11:00:52 407

转载 CFR变体和FP变体

多智能体博弈强化学习算法的重难点CRF的主要难点:一是要求智能体具有完美回忆,这在很多实际博弈场景中很难满足;二是算法的收敛性很难保证;三是由于要遍历很多博弈节点,因此需要大量内存空间。NFSP的主要难点:一是 NFSP 系列算法依赖于off-policy 的深度 Q 值网络,因此在搜索规模大、即时策略场景下很难收敛;二是在训练时智能体都是独立更新,没有利用对手的信息;三是 NFSP 的最佳响应计算依赖于 Deep Q-learning,收敛时间长且计算量大。参考:https://www.cnb..

2021-11-17 16:02:14 323 2

原创 博弈论在自动驾驶方向的应用(Ⅰ):变道决策的综述

今天发生的许多事故都是人类驾驶员错误的感知和决策造成的。由于准确的风险评估对于防止碰撞至关重要,因此,自动驾驶被认为可以大大减少此类错误。虽然目前的系统已经成功地应用于在真实环境中寻找路径和探测障碍物,但是碰撞仍然会发生。因此,必须更加重视实时准确的风险评估。现有的大多数风险评估方法预测轨迹,然后检测可能的碰撞。然而,这种方法会产生巨大的计算成本,并检查所有可能的轨迹。一个有用的建议是,只有在检测到异常或危险的操纵(Lefèvre et al.,2012a)或交通状况被标记为危险时,才执行轨迹计算和碰撞检查

2021-11-12 11:00:58 6804 6

原创 虚拟遗憾最小化(CFR)与强化学习(RL) 的异同点

虚拟遗憾最小化(CFR)是一种在不完全信息博弈中寻找纳什均衡的算法。它主要出现在扩展式博弈的环境里,这是一个不完全信息博弈框架。强化学习(RL)更倾向于使用马尔科夫决策过程(MDPs)框架,这两种框架比较相似,但信息大都是完全的(然而它有时被扩展到处理部分可观察马尔科夫决策过程(POMDPs))。CFR与传统的RL算法的不同之处在于,它并不试图使预期收益最大化。而是希望把可利用度最小化。石头剪刀布是一个很好的例子。CFR会学会在各种选项之间随机挑选,因此一般会找到折中的策略。传统的RL算法会试图利用对手

2021-08-07 16:44:33 1342

原创 为什么DRL的loss不是趋于下降的

较低的loss意味着对当前policy的价值预测更准确(对于Q-learning非政策估计来说更复杂,但覆盖度仍将受到当前政策中可达到的经验的限制)。不幸的是,RL中的损失度量不能表示到该政策有多好。因此,这意味着你的policy已经稳定在一个模式中,你的Q神经网络可以很好地估计价值。由于某种原因,它没有发现对该政策的改进–通常它应该在损失指标下降之前这样做,因为价值估计的每一次改进都应该选取更好的动作,而一旦policy采取了新的动作,价值估计就会过时,导致损失再次增加。参考...

2021-07-20 17:00:49 303

原创 About no-regret learning

无悔学习方法About regret在日常生活中,对绝大多数人来说后悔是常常被提到的一种负面情绪。举个简单的例子,当你准备购买两种股票 A 和 B 的时候,既可以选 A 也可以选 B,但是最后购买了股票 A,结果股票 B 上涨而股票 A 下跌,此时你就会对之前的决策而感到后悔或者说悔恨。在早期对决策的研究中,研究者已经意识到后悔有可能是影响决策的重要情绪。Savage 于 1995 年首先提出了最小化最大后悔原则,这种原则的思想是个体首先计算每个选项对应的可能最大化后悔值,然后从中选出最大化后悔值最小的

2021-06-29 11:17:04 1348

原创 STL个人学习笔记

个人笔记众所周知,在set结构中删除元素可以使用.erase(x),但若是在multiset中,删除的是所有的x元素。若仅想删除一个x元素,可以这么做:unordered_multiset <char>::iterator pos = hash.find(s[i]); hash.erase(pos);或直接使用unordered_map。...

2021-06-22 16:37:04 125

原创 error LNK2005:“XXX已经在 XXX.obj 中定义

error LNK2005:"XXX已经在 XXX.obj 中定义目前在处理祖传代码,由于未创建头文件,我直接在main.cpp中#include "xx.cpp"导致出现错误报告错误 LNK2005 “int __cdecl playMain(void)” (?playMain@@YAHXZ) 已经在 play.obj 中定义在这种情况下,在调用函数前加了static ,编译成功且调用函数成功。所以有了疑问,一般来说定义的函数前为extern才可以被其他cpp文件调用,为何用了static才能成

2021-06-19 10:52:28 1914

原创 Monte Carlo Counterfactual Regret Minimization

Monte Carlo Sampling for Regret Minimization in Extensive Games(MCCFR)

2021-06-01 19:45:55 1077 4

空空如也

空空如也

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

TA关注的人

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