Algorithm——A*路径规划算法原理详解

算法简介

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)选择代价值最小的点作为下一个点(如果是障碍物则忽略)

参考文章:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值