CBS基于冲突的搜索算法流程和核心
1.conflict based search(CBS)基于冲突的搜索
CBS基于冲突的搜索是最优最先进的混合MAPF算法,比较主流且有较好效果。
由两层搜索过程组成,底层搜索为每个agent搜索出一条有效路径。 上层搜索负责检查路径冲突,并选择其中代价最小的分支重新进行底层路径搜索,直到上层搜索发现有效路径为止。
针对多AGV路径规划,采用基于冲突的搜索算法CBS,将MAPF分为两层去求解,下层采用优化的基于曼哈顿距离的A*算法解决多个单AGV路径规划问题,算法的上层采用约束树结点解决多个 AGV 路径间的冲突问题。
2.流程
目标函数: 总成本(sum of costs):各个 agent 完成的时间步长之和
假设: 将连续时间离散化为时间步长; 每个时间步长执行一个动作; 在每个时间步长里,每个 agent 只占据一个节点;
流程:
(1)下层使用A*算法求出多个单AGV路径规划。
(2)引入优先级队列 open list,将约束树根节点R放入open list,以R.cost为键值,R包含R.constraints(为空),R.solution(多个单AGV的路径规划集合),R.cost(解的成本)。
(3)open list取出成本最低的结点N,N.solution无冲突,则N.cost为所求解;否则,对第一个冲突处理,针对冲突的点,分裂为若干个子节点,继承当前结点的全部约束和解,并分别添加新的约束,更新路径和cost值。
(4)重复执行(3)操作,直到open list的成本最低节点N的解无冲突或求解失败
3.改进方案
CBS的改进:CBS的上层和下层都使用了A*,如果想让其运算更快,一个很常见的算法是用wA*。通过给h乘一个w,使得f更偏向于h的值,这样可以更快找到解,并且解在最坏情况下不超过w倍最优解。但是其表现会比CBS更差。这是因为在CBS中,h的值没有考虑中途可能包含的碰撞信息。
CBS基于冲突的搜索算法流程和核心相关推荐
- 基于冲突的搜索算法(CBS)个人笔记
CBS 实例 以下将通过一个简单的实例体现CBS的基本过程: 讲解: 上层 结点:指的是每个"小方格": 节点:树的节点: (ai, aj, s, t):ai与aj在t时刻都在s结 ...
- 基于价值链的流程框架分类_基于价值的类
基于价值链的流程框架分类 在Java 8中,某些类在Javadoc中有一个小注释,说明它们是基于值的类 . 其中包括简短说明的链接,以及有关不使用它们的限制. 这很容易被忽略,如果这样做,则可能会在将 ...
- 搞一下整车以太网技术 | 04 CBS基于信用整形
前言 搞一下整车以太网技术系列会从通信协议栈出发,从物理层最基础的技术开始,以拼图的方式逐步展开每个相关通信协议的技术细节,为读者朋友们提供学习汽车以太网技术的平台.全系将涵盖汽车以太网PHY技术.T ...
- 审批流程java 代码_基于jsp的企业流程审批系统-JavaEE实现企业流程审批系统 - java项目源码...
基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的企业流程审批系统, 该项目可用各类java课程设计大作业中, 企业流程审批系统的系统架构分为前后台两部分, 最终实 ...
- 基于Android13的系统启动流程分析(三)之FirstStageMain阶段
Android13系统启动阶段大致分为FirstStageMain阶段和SecondStageMain,此章主要讲FirstStageMain阶段 (若分析有误敬请指教) 本章讲解的方向和你将收获的知 ...
- 华为:流程的核心是要反映业务的本质
"流程的核心是要反映业务的本质,还原以后,该是谁的就是谁的.管理不要在流程体系外循环." 此文为华为前副总裁费敏关于流程化组织建设的讲话,详细地讲解了华为在流程型组织建设中遇到的问 ...
- cesium 加载bim模型_构建统一CIM数字底盘,实现基于BIM的全流程管控
▲点击关注,收获更多GIS精彩 2009年,SuperMap发布了首款二三维一体化GIS软件,首次提出了二三维一体化GIS技术.随后,二三维一体化的应用系统不断涌现,二三维一体化技术逐步成为三维GIS ...
- (绝对正确)Zabbix基于lamp的安装流程
目录 Zabbix基于lamp的安装流程... 1 1安装Mysql... 1 先安装相关的库和工具... 1 Mysql的安装... 1 2httpd的安装... 2 先安装相关的库和工具... 2 ...
- 掌握基于switch语句的流程控制测试分析 1221
掌握基于switch语句的流程控制测试分析 1221 01 02
最新文章
- 【CodeForces】961 F. k-substrings 字符串哈希+二分
- Android Gson的使用总结
- 重写0-1背包问题的回溯法,使算法能输出最优解
- Android RecyclerView 向上偏移解决、添加自定义分割线,瀑布流,ScrollView嵌套RecyclerView滑动卡顿
- 服务业小店店主生活和工作洞察报告
- 『飞鸽』彻底学通string.Format以及IFormattable,IFormatProvider,ICustomFormatter
- vb6 获取zip列表_深入学习redis(压缩列表)
- [原] Android中Scroller类的分析
- 二等水准数据平差_自编单次二等水准平差计算表
- 数据挖掘实战—基于水色图像的水质评价
- matlab定积分上界求解,定积分问题的数值求解及Matlab实现
- 在线文本字符串转十六进制工具
- AndroidEditText常用属性
- 开关插头插座寿命试验机标准
- Handler内存泄漏-解决:使用静态类和弱引用
- 超强大的数学计算器——WolframAlpha(含安卓下载连接)
- 先电iaas云平台搭建(openstack)————搭建过程
- 消防应急疏散指示系统在某居民社区综合体项目的应用
- 李振杰:腾讯入股京东=京东引狼入室
- php+ajax上传文件
热门文章
- 电脑配置单5(自用勿删)
- html打造动画【系列2】- 可爱的蛙蛙表情
- linux c++ 学习记录
- 如何用excel筛选相似内容_excel表格怎么筛选相同内容
- 天源石化举行国庆前消防应急-装车台液态烃泄漏演练
- es6的15道面试题
- Docker|Maven编译推送Docker服务器生成镜像
- A/Btest小项目实操
- 会议签到评分系统功能需求2020-5-9
- Qt crator警告This does noy seem to be a “Debug“ build