A星算法详解-通俗易懂初学者必看(6)

时间:2025-05-10

置父标记为该标记,并且重复判断上面的创建条件,然后把这个标记加入到关闭标记列表

如此循环的做着上面所说的事,然后每次判断下面条件:

1、判断开启列表是否已经为空,如果空了则表示从操控方格到目标方格是不可能达到,

是死路!

2、判断当前所遍历的标记的坐标与目标方格的坐标是否相同,如果相同则表示到达了

目标方格!

当得到第一个条件,则表示这条路是死路,因此咱们不用遍历了,宣告结果吧。当得到第二个条件,则表示咱们已经找到路了,从最后创建的这个标记开始,一直向上访问它的父标记,直到开始标记的时候没有父标记为止,这就是一条从操控方格到目标方格的路径,但

这可能不是捷径。

A*寻路算法,只是保证在低消耗的情况在最短的时间找出路径,但A*寻路算法寻出来的路不一定是最近,但也绝对不会远的离谱,可也不排除你对路径评分算法的优化可以做到最快最短最低消耗,或者对最终路径的优化来达到目的,下面就来讲讲通用的路径评分计算

公式:

首先看公式: F = G + H

F值表示路径评分,G值表示当前所判断的标记离开始标记的路径耗费,H值表示当前

所判断的标记离目标方格的路径估值耗费

G值的计算方式是,如果为斜走判断则用父标记的G值加上14表示当前标记的G值,

如果为直走判断则用父标记的G值加上10表示当前标记G值

H值通常的计算方式是一种称作为曼哈顿方法的方式,当前标记离目标方格横着的方格数加上竖着的方格数,然后乘以10,最后得值就是H值。当然若你想通过A*寻出最好的路

径,那么改善算法的主要地方就是这个H值的算法

根据上面讲的A*算法的做法来讲,则表示前面判断哪个标记离开始标记更近一些只需判断一下G值即可;前面所说的取出一个路径评分最低标记,也就是将F值进行升序排序

取出第一个,或降序排序取出最后一个。

总结:本文只是初略的讲解A*寻路算法的入门,相信仔细看过该文用心体会肯定能入门A*算法,但该文不是A*算法的权威,因为我自己也知道这篇文章是按照我自己的想法对A*的理解所写出来的,可能跟A*算法的原理是一样的,但讲解方式可能大不同,毕竟国内大部分A*算法的讲解都是来自于国外的译本。希望还不懂A*寻路算法的朋友通过这篇文章

能理解过来!——本文出至

对于高手看过本文后,有什么见解可以提出来,在下也是菜鸟,也希望能得到进步;如果新

手看过本文后,有什么好的建议或疑问,也可以提出来,我尽量解答!

A星算法详解-通俗易懂初学者必看(6).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219