文章目录

  • 算法简介
  • 算法核心公式(启发函数\代价函数)
    • 启发函数\代价函数公式
      • 预估距离函数h(n)
    • 算法简单实现思路
      • (1)已知条件
      • (2)待求解量
      • (3)代价函数
      • (4)实现过程

算法简介

A*算法本质上是一种启发式的搜索算法

  • 启发式: 即有一定的评价指标来引导算法运行,从而尽可能得到最优解。
  • 搜索算法: 已知起点和终点,但是过程路径未知,我们要去通过一定的方法(启发式的方法)来找到最优路径的一种算法。

从以上概念可以看出,应用该算法时:

  • 已知条件

    • 起点位置
    • 终点位置
  • 待求解量:
    • 最优路径(即每个最优路径点的集合)
  • 方法:
    • 启发式的评价指标(即某个启发函数或叫代价函数,就是该算法的核心公式

算法核心公式(启发函数\代价函数)

启发函数\代价函数公式

  • f(n)节点n的综合代价。当我们选择下一个最优的节点时,我们总会选取综合代价最小的节点
  • g(n)节点n距离起点的代价
  • h(n)节点n距离终点的估计代价

A*算法通过代价函数来计算每个节点的代价,从而选择代价最小的那一个节点进行移动。

预估距离函数h(n)

关于距离的计算,主要有两种方法:

  • 欧式距离,即物体移动时可以朝八个方向移动,其计算公式如下:

  • 曼哈顿距离,即物体移动时只能朝四个方向移动,不能斜向移动,其距离计算公式如下:

一般采用欧式距离更为灵活,可以根据自己的需要进行选择。

算法简单实现思路

(1)已知条件

  起点位置(S)终点位置(E)

(2)待求解量

  周围下一个潜在最优节点的代价值(根据代价函数算得)

(3)代价函数

  f(n) = g(n) + h(n)

(4)实现过程

这里采用欧式距离进行实现:

  1:初始化操作:- 起点、终点坐标- 地图尺寸- 障碍物个数和位置2:寻路主程序(循环,直至到达终点):(1)计算当前点周围的八个点的代价值f(n)(2)选择代价值最小的点作为下一个点(如果是障碍物则忽略)

参考文章:

  • 路径规划之 A* 算法
  • 利用Python实现A*算法路径规划

Algorithm——A*路径规划算法原理详解相关推荐

  1. Dijkstra 路径规划算法原理详解及 Python 代码实现

    荷兰数学家 E.W.Dijkstra 于 1959 年提出了 Dijkstra 算法,它是一种适用于 非负权值 网络的 单源最短路径算法,同时也是目前求解最短路径问题的理论上最完备.应用最广的经典算法 ...

  2. CRF(条件随机场)与Viterbi(维特比)算法原理详解

    摘自:https://mp.weixin.qq.com/s/GXbFxlExDtjtQe-OPwfokA https://www.cnblogs.com/zhibei/p/9391014.html C ...

  3. 机器学习,深度学习基础算法原理详解(图的搜索、交叉验证、PAC框架、VC-维(持续更新))

    机器学习,深度学习基础算法原理详解(图的搜索.交叉验证.PAC框架.VC-维.支持向量机.核方法(持续更新)) 机器学习,深度学习基础算法原理详解(数据结构部分(持续更新)) 文章目录 1. 图的搜索 ...

  4. XGBoost核心算法原理详解

    XGBoost算法原理详解 前言 boosting和bagging的区别 bagging boosting 提升树-基于残差的训练 学习路径 构造目标函数 Additive Training(叠加式的 ...

  5. TOPSIS(逼近理想解)算法原理详解与代码实现

    写在前面: 个人理解:针对存在多项指标,多个方案的方案评价分析方法,也就是根据已存在的一份数据,判断数据中各个方案的优劣.中心思想是首先确定各项指标的最优理想值(正理想值)和最劣理想值(负理想解),所 ...

  6. 离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BRAC算法原理详解与实现(经验篇)

    论文原文:[Yifan Wu, George Tucker, Ofir Nachum: "Behavior Regularized Offline Reinforcement Learnin ...

  7. 一致性哈希算法原理详解

    一.普通 hash 算法 (取模算法): 在了解一致性哈希算法之前,我们先了解一下缓存中的一个应用场景,了解了这个应用场景之后,再来理解一致性哈希算法,就容易多了,也更能体现出一致性哈希算法的优点,那 ...

  8. DES加解密算法原理详解与实现

    [DES密码编写] 1. Equipment (1) operating system version :WIN 10 (2) CPU instruction set: x 64 (3) softwa ...

  9. CORDIC算法原理详解及其Verilog实现

    CORDIC算法原理详解及其Verilog实现 本文的verilog代码 链接:https://pan.baidu.com/s/1GGbRjxO5CxoIODQAg1l6Lw 提取码:jo0h *本文 ...

  10. 局部路径规划器teb_local_planner详解3:跟随全局planner

    局部路径规划器teb_local_planner详解3:跟随全局planner 前言 一.相关优化项 二.与topologies相关的参数 前言 在局部路径规划器teb_local_planner详解 ...

最新文章

  1. 企业网站制作要以简约为主
  2. 剑指offer-斐波那契数列
  3. MapStruct 常用操作
  4. 【CCF】 201809-1 卖菜
  5. python 百度识图_用python做图片识别(调用百度API)
  6. abstract interface java_Java -- abstract 和 interface 的理解
  7. JAVA异常和基础类库
  8. 每日一道剑指offer-反转链表
  9. c语言出现源文件未编译,dev运行C语言出问题
  10. 显示计算机配置的命令是,查看电脑配置命令
  11. Error: Cannot find module ‘@/xxx‘
  12. 东海学计算机,田东海_北京理工大学计算机学院
  13. 一对同居男女同一天的日记
  14. JavaWeb(2)CSS
  15. 差错控制之检错编码与纠错编码
  16. get_article_info
  17. gnu binutils_9个基本的GNU binutils工具
  18. JavaScript模块 commonJS、AMD、UMD、ES6
  19. 关于 aws 免费使用12月注意事项
  20. [山东科技大学OJ]1168 Problem C: 输出连续的整数序列 之二

热门文章

  1. 豆瓣app签名sig
  2. 物业计算机管理系统论文,小区物业管理系统设计毕业论文
  3. 计算机论文物业管理系统,物业小区管理系统 计算机专业毕业论文
  4. 在PSP上玩《大旋风 Twin Hawk》
  5. 借助创客匠人玩转视频号
  6. 印象笔记Mac版的快捷键有哪些?Evernote for Mac快捷键大全
  7. 最新emoji表情代码大全_抖音不用考虑我我没感受铁打的图片,最新表情包高清大全[多图]-软件教程...
  8. Android版本caj阅读器,CAJViewer安卓版
  9. Popclip的JSON格式化扩展
  10. 内核进程回调遍历【记录】