Rate this post

在现实生活中,我们经常需要找到最短路径。例如,当我们想要从一个地点去往另一个地点的时候,我们希望可以在地图中找到最近的一条路。这个时候我们就需要一些特殊的算法来帮助我们解决这个问题。A *搜索算法是静态路网中求解最短路径的最流行的技术之一,静态路网指的就是被搜索的图的权值不随时间变化。接下来,我将讨论A*算法的基本内容。

1.

把起点加入 open list (已生成而未考察的节点)。

2. 重复如下过程:

(1)

遍历 open list,查找 F值 (从初始栅格单元经由当前栅格单元到目标栅格单元的代价估计)最小的节点(栅格单元),把它作为当前要处理的节点。

(2)

把这个节点(栅格单元)移到 close list(已访问过的节点) 。

(3)

对当前方格的 8 个相邻方格进行一一计算

a.

如果它被障碍物占用或者它在 close list 中,忽略它。否则,做如下操作。

b.

如果它不在 open list 中,把它加入 open list,并且把当前方格设置为它的父节点,记录该方格的 F,G(初始节点到当前节点的实际代价) 和 H(当前节点到目标节点的最佳路径的估计代价)值。

c.

如果它已经在 open list 中,检查这条路径 (即经由当前结点到达它那里) 是否更好,用 G 值作参考。更小的 G 值表示这是更好的路径。如果是这样,把它的父节点设置为当前方格,并重新计算它的 G 和 F 值。如果 open list 是按 F 值排序的话,改变后可能需要重新排序。

2.1停止重复的条件:

(1)把终点加入到了 open list 中,此时路径已经找到

(2)或者查找终点失败,并且 open list 是空的,此时没有路径。

3.保存路径。从终点开始,每个方格沿着父节点移动直至起点,这就是最终的搜索的路径。

OPEN表保存所有已生成而未考察的节点,CLOSED表中记录已访问过的节点。

java栅格法全局路径规划,基于A*的全局路径规划算法(1)相关推荐

  1. 自动驾驶路径规划——基于概率采样的路径规划算法(RRT、RRT*)

    目录 1. RRT算法背景 1.1 RRT算法核心思想 1.2 RRT算法优缺点 2. 经典RRT算法 2.1 RRT算法流程 2.2 RRT伪代码 3. 基于目标概率采样 4. RRT*算法 4.1 ...

  2. 自动驾驶路径规划——基于概率采样的路径规划算法(PRM)

    目录 1. PRM算法流程 1.1 预处理 1.2 搜索 2. PRM算法案例 2.1 构型采样 2.2 邻域计算 2.3 图搜索(A*搜索) 3. 采样数量的影响 4. 采样策略 4.1 基于障碍物 ...

  3. 基于信息熵确立权重的topsis法_一种基于改进多目标粒子群算法的受端电网储能优化配置方法与流程...

    本发明涉及受端电网中储能的规划问题,具体涉及一种基于改进多目标粒子群算法的受端电网储能优化配置方法. 背景技术: 随着煤炭等非可再生.高污染的能源总量日益减少,我国的电能结构正由火力发电向低碳化的清洁 ...

  4. java光流法运动目标检测_基于光流法运动目标检测和跟踪算法.PDF

    第,+ 卷第' 期 东 北 大 学 学 报 ( 自 然 科 学 版 ) 5# (! ,+ ,*#! ' ! " #' 年 ' 月 "#$%&'( #) *#%+,-'.+- ...

  5. ROS实验笔记之——基于Prometheus的无人机运动规划

    本博文基于Prometheus项目来学习无人机的运动规划.关于该项目的配置可以参考<ROS实验笔记之--基于Prometheus自主无人机开源项目的学习与仿真> Demo演示 基于2D-L ...

  6. 栅格法路径算法C语言,基于地图栅格与QPSO算法结合的机器人路径规划方法与流程...

    本发明属于机器人路径规划领域,提出一种基于地图栅格与QPSO结合的机器人路径规划方法. 背景技术: 移动机器人路径规划是寻找一条无碰撞的可行路径问题的方法.近些年,群智能优化算法逐渐成为移动机器人路径 ...

  7. 【路径规划】基于matlab GUI多种蚁群算法栅格地图最短路径规划【含Matlab源码 650期】

    ⛄一.蚁群算法及栅格地图简介 1 蚁群算法 1.1 蚁群算法的提出 蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来寻找优化路径的机率型算法.它由Marc ...

  8. matlab8邻域搜索算法,一种基于可搜索连续邻域A*算法的路径规划方法与流程

    本发明涉及的是一种UUV全局路径规划方法. 背景技术: 无人水下航行器(Unmanned underwater vehicle,UUV)作为一种高技术手段,在海洋这块未来极具价值的发展空间中起着至关重 ...

  9. 路径规划算法:基于鸟群优化的路径规划算法- 附代码

    路径规划算法:基于鸟群优化的路径规划算法- 附代码 文章目录 路径规划算法:基于鸟群优化的路径规划算法- 附代码 1.算法原理 1.1 环境设定 1.2 约束条件 1.3 适应度函数 2.算法结果 3 ...

最新文章

  1. TVM 图优化Graph Optimization
  2. osc上一位哥们的 php编译参数
  3. oracle SYS and SYSTEM Schemas
  4. 怎么通过id渲染页面_「快页面」动态配置化页面渲染器原理介绍
  5. 1-9其他数据库注入
  6. Linux下开发常用的CVS使用手册
  7. table虚线边框_web前端工程师7天0基础到精通(TABLE+CSS制作《互联世纪网》)
  8. python单元测试mock_Python单元测试的Mock是怎么回事
  9. java web开源项目源码_超赞!推荐一个专注于Java后端源码分析的Github项目!
  10. PHP xdebug API接口优化揪出了getimagesize这个鬼
  11. 资金流学习 - 关注点
  12. 微信小程序 引用 weui 问题合集
  13. 加载elementor时出现问题_Elementor插件无法编辑/加载/空白页 提示“wp-json/elementor/v1/globals”404解决办法...
  14. css3直线运动_【转载】运动曲线提升CSS动画效果
  15. SpringCloud之服务提供者和服务消费者
  16. jovi语音助手安装包_vivoJovi语音助手v3.1.1.0 Android
  17. 思考总结:领域知识图谱平台构建与业务应用
  18. 亚马逊程序员:我曾拼命逃离996!
  19. cxzday8-字符串作业
  20. Appium在小米11真机上进行微信自动化

热门文章

  1. segmenter.go
  2. 为什么全天坐在电脑前会让你精疲力竭
  3. 高版本号chrome安装flashplayer debuger后无法使用的问题
  4. 运行Myeclipse发生这事这是怎么回事,大神们
  5. HDU-4089 Activation (概率DP求概率)
  6. C++ 0x 使用可变参数模板类 实现 C# 的委托机制
  7. oracle table 函数使用
  8. C++ string assign()赋值常用方法
  9. 开机自启动和由一个APK启动另一个APK核心代码
  10. 博客目录列表(C与Linux部分)