A*(路径搜索)算法

阅读数:59 评论数:0

跳转到新版页面

分类

算法/数据结构

正文

0、这里假设有人要从A点去往B点。

1、找到与起始点相邻的所有可到达方块将这些点加入到“候选列表”。

2、从“候选列表”中将A方块删除,并将其加入到“排除列表”,表明在此列表中的方块不需要再去关注。

3、路径评估 F=G+H

(1)G= 表示从A点到当前点的所经过的路径长度

(2)H=从当前点到目标点B的估计路径长度。这经常被描述为“启发式”,有时这样会引起歧义。之所以这么叫是因为这仅仅是一种猜测。事实上在找到路径之前我们并不知道实际路径长度,因为会有如墙,水等东西阻挡。这里给出一种计算H的方法,同时在网上有许多其他计算H值的方法。

4、不断的遍历“候选列表”并选择最小F值的点。

5、将其从“候选列表”中删除加入到“排除列表”

6、检查其领域内方块,排除不可通过方块,并且将没有在“候选列表”中的方块加入到“候选列表”。是当前选中方块成为父方块。

7、如果领域内存在方块在“候选列表中”中,那么就检查是否从当前点经由那个候选方块是一条更好路径。换句话说,检查那个方块的G值是否会因为我们使用了当前点到达那里而变小,如果不是,什么都不做,另一方面,如果新的路径G值变小了,就将那个候选方块的父节点改为当前点。最后重新计算那个候选节点的F和G值。

8、目标方块被加入到“排除类表”,这种情况下路径被找到

9、在“候选列表”中的点全部被放到了“排除列表中”,此时路径查找失败,没有通路。




相关推荐

一、介绍 1、二分图 其最大的特点在于,可以将图里的顶点分为两个集合,且集合内的点没有直接关联。 2、增广路径 增广路径是指,由一个未匹配的顶点开始,经过若干个匹配顶点,最后到达对面集合的一个未匹配

MD5,即“Message-Digest Algorithm 5”(信息-摘要算法),从名字来看就知道它是从MD3、MD4发展而来的一种加密算法,其主要通过采集文件的信息摘要,从此进行计算并加密。 M

概念 Base54算法使用了单表置换算法的思想,Base64使用一个由64个字符组成的映射表。 实现原理 1、将给定的字符串转换成对应的字符编码

deflate是同时使用lz77算法与huffman编码的一个无损压缩算法。人们普遍认为deflate不受任何专利所制约,deflate压缩与解压缩的源代码可以在开源的zlib库中找到。

一、密码学的常见概念 1、代替密码 代替密码是指先建立一个替换表,加密时通过查表,将明文的每个字母依次替换为对应的字符,生成密文。 按替换表的个数又细分为: (1)单表代替密码 即一个明文字符对应一个

零-概述 ECB模式和CBC模式是最常用的两种模式。 1、需要块对齐的模式:ECB、CBC、PCBC 2、需要初始向量的模式:除了ECB模式外,都需要初始向量。 一、ECB,电子密码本 Electro

一、概述 1、图的表示法 图G = (V, E)的表示有邻接表和邻接矩阵两种形式。通常,对于| E |远小于| V | ^ 2的稀疏图,用邻接表比较合适。若图稠密或很小,或必须很快判别给定的两个顶点是

用伪代码来表示, 二分查找算法大致是这个样子的: left = 0, right = n -1 while (lef

单模式VS多模式 (1)单模式 单模就是给你一个单词,然后给你一个字符串,问你这个单词是否在这个字符串中出现过(匹配) (2)多模式 给你

字符串的匹配包括蛮力匹配算法,KMP算法,BM算法,Horspool算法,Sunday算法,fastsearch算法,KR算法等等。<