再译《A *路径搜索入门》之四

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

A *方法总结

Summary of the A* Method

 

好了,在你通走了,奠定了一步一步的方法,在同一个地方:

Okay, now that you have gone through the explanation, let's lay out the step-by-step method all in one place:

 

添加开始方(或点)到开启列表。

Add the starting square (or node) to the open list.

 

重复以下操作

Repeat the following:

 

a) 找开启列表上最小F方块。我将此作当前方

  1. Look for the lowest F cost square on the open list. We refer to this as the current square

 

b) 到关列表。

  1. Switch it to the closed list.

 

c)  当前方块的8个方块的...

c) For each of the 8 squares adjacent to this current square …

 

如果不能走,或者如果它是关的名上,忽略它。否请执以下操作。

If it is not walkable or if it is on the closed list, ignore it. Otherwise do the following.

 

如果不在开启列表中,将其添加到开启列表。使当前方块成为这个方记录的方FGH

If it isn't on the open list, add it to the open list. Make the current square the parent of this square. Record the F, G, and H costs of the square.

 

如果开启列表了,检查,看看个路径,否是更好的,采用G衡量。更低的G意味着是一个更好的路径。如果是这样方格的父改当前方,并重新算方GF。如果你保持开启列表排序F由于这个化你可能需重存列表。

If it is on the open list already, check to see if this path to that square is better, using G cost as the measure. A lower G cost means that this is a better path. If so, change the parent of the square to the current square, and recalculate the G and F scores of the square. If you are keeping your open list sorted by F score, you may need to resort the list to account for the change.

 

d)当你停止:

d) Stop when you:

 

添加到关列表,在种情况下,路径已发现下面的注),或无法找到目,并且开启列表是空的。在种情况下,不存在路径。

Add the target square to the closed list, in which case the path has been found (see note below), or Fail to find the target square, and the open list is empty. In this case, there is no path.

 

保存路径。从目往回走,从每个方块移到其父,直到你到达开始是你的路径。

Save the path. Working backwards from the target square, go from each square to its parent square until you reach the starting square. That is your path.

 

注:在早期版本的文章中,有人建,当目(或点)已添加到开启列表,而不是关的列表,你可以停下来。这样做会更快,它几乎是会你的最短路径,但并非是如此。有些情况下,这样做可能产生差异当从第二移到最后一个点到最后的(目成本可能有明显 -例如,在河流交叉两个点之的情况下

Note: In earlier versions of this article, it was suggested that you can stop when the target square (or node) has been added to the open list, rather than the closed list. Doing this will be faster and it will almost always give you the shortest path, but not always. Situations where doing this could make a difference are when the movement cost to move from the second to the last node to the last (target) node can vary significantly -- as in the case of a river crossing between two nodes, for example.

 

小咆哮

Small Rant

 

我的,但得指出的是,当你在网上阅读A *路径搜索,并在各类论坛上的各种讨论时,你偶会看到有人提到某些代不是A *A *使用方法,你需要包含上面讨论到的元素 -- 是开放列表和关列表和路径采用FGH值。有很多其他的路径搜索算法,但是其它的通常被认为是最好的方法不是A *。在篇文章的末尾布莱恩斯托特讨论,包括他的一些利弊引用的文章很多。有替代品在某些情况下更好,但你应该明白你正在入。好了,爽了。回到话题

Forgive me for digressing, but it is worth pointing out that when you read various discussions of A* pathfinding on the web and in assorted forums, you will occasionally see someone refer to certain code as A* when it isn't. For the A* method to be used, you need to include the elements just discussed above -- specifically open and closed lists and path scoring using F, G, and H. There are lots of other pathfinding algorithms, but those other methods are not A*, which is generally considered to be the best of the lot. Bryan Stout discusses many of them in the article referenced at the end of this article, including some of their pros and cons. Sometimes alternatives are better under certain circumstances, but you should understand what you are getting into. Okay, enough ranting. Back to the article.

 

(待续)


转载于:https://my.oschina.net/dubenju/blog/464443

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297151.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记一次 .NET 某电商定向爬虫 内存碎片化分析

一:背景 1. 讲故事上个月有位朋友wx找到我,说他的程序存在内存泄漏问题,寻求如何解决? 如下图所示:从截图中可以看出,这位朋友对 windbg 的操作还是有些熟悉的,可能缺乏一定的实操经验&#xff…

php 合成图片 透明,2020-05-19 php实现透明png多图合成

图片合成的流程一般是,获取图像资源——合成——输出。png图片,一般就用imagecreatefrompng()获取资源。不过这个资源获取后是有白底的。所以需要用imagesavealpha()进行图像处理,得到包含有透明背景的图像。//原始图像$dst "img/1.png…

ArcEngine 没有Esri.ArcGis.GeoAnalyst 命名空间

http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid69977&extrapage%3D1&ordertype1 AE安装的时候分为Core和Extension. Esri.ArcGis.GeoAnalyst位于Extension里面. (1)确保安装的时候是完全安装 (2) 转载于:https://www.cnblogs.com/imihiroblog/archive/2012/04/1…

微信功能“拍一拍”,都有谁在“拍”你?

全世界只有3.14 % 的人关注了爆炸吧知识微信新功能总在悄咪咪更新,“拍一拍”一出,很多小伙伴都会收到各种群里面千奇百怪的“拍一拍”,到底都是谁在偷偷关注你?真正决定人与人之间的差距的,其实是我们对事物的见识与内…

sql 触发器_一键生成某个sql的html--记录执行计划、统计信息、触发器等

概述当你获得某个sql的sql_id时,怎么去一键获得这个sql的一些信息呢,例如列的情况、执行计划等等..脚本有点长,建议大家用电脑来看..下面用一个简单测试来演示下,附脚本领取方式。1、获取sql_idSQL> select a.* from (select S…

别等了,全面「远程办公」凉了

大家好,我是Z哥。这是一篇迟到的文章。具体原因是,昨天定时发送的时候没注意已经过了0点了,习惯性的选了明天11点45,然后才发现实际变成10月9日的11:45了。赶紧取消重新发一下。好了,回到正文。不知道你是否…

PHP做闹钟APP,8款超好用的闹钟APP,专治各种赖床

这是什么神仙APP,我再也不怕冬天起不了床!有了它们,再也不怕懒床迟到了!好用到爆!可爱女生闹钟(超可爱的用户界面)这界面真是太可爱了,软萌妹子必备啊。推荐指数:★★★★怪物闹钟(玩游戏才能关…

easy html5 - Jquery mobile

今天看了下jquery mobile(http://jquerymobile.com/),看了后自己很兴奋;jquery 在web js框架上的风暴还在继续却也随着移动终端走向了mobile;那么jquery mobile到底包括些什么呢 首先jquery mobile是基于html5的,因为html5已经被默…

太漂亮了!66个高颜值的矿物晶体,吸引到你的目光了吗

全世界只有3.14 % 的人关注了爆炸吧知识1“中国皇帝”菱锰矿“中国皇帝”产自广西梧州,最大晶体为22厘米,是目前中国发现的菱锰矿中体积最大、单晶最大、质量最好的一件标本,在世界范围内亦属罕见。2车轮矿晶簇世界罕见的车轮矿晶簇。3祖母绿…

oracle中sum和count可以嵌套吗_【分享吧】Oracle查询转换

前言“查询转换”是Oracle解析SQL语句中重要的步骤。其原理是Oracle在解析时通过对原有SQL的等价改写,以达到较高执行效率的方式。上图展示了SQL的执行过程,当客户提交的语句经过解析后,在提交给优化器之前会进行一个查询转换的步骤。在这个步…

如何正确地部署防火墙?

防火墙在实际的部署应用过程当中,经常部署在网关的位置,也就是经常部署在网内和网外的一个"中间分隔点"上,而就是在这样一个部署的环境中,也还存在着多种方式,且存在着许多"陷阱",本文…

男人是大猪蹄子的证据找到了!

1 老师!2 您倒也不必如此诚实3 哈哈哈哈哈哈这也太显眼了4 圆的面积其实可以这样算5 喵:进不去......好烦!!6 狗子:好好扔,砸我干嘛?你到底会不会玩?!7 男人是大猪蹄子的…

set-cookie 和 cookie 的区别_Go Web 编程如何确保Cookie数据的安全传输

什么是CookieCookie(也叫Web Cookie或浏览器Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登…

使用C#快速生成顺序GUID

前言通常,我们采用数值ID(long)/GUID作为全局唯一标识符。但是,在多线程、高并发情况下,由应用程序生成数值ID容易产生重复,而由数据库生成又会造成性能瓶颈。而使用Guid.NewGuid()生成的GUID虽然不会重复,但是它是无序…

带你见识世界的5部纪录片(免费领取)

全世界只有3.14 % 的人关注了爆炸吧知识纪录片一直都是增长见识又带给你力量的东西,你可能忙于学业、生活、工作而不能行万里路,但至少你还可以看纪录片,从一方屏幕看到整个世界。今天就为大家整理了5部高分纪录片,文末附领取方式…

Android简明开发教程二十一:访问Internet 绘制在线地图

在例子Android简明开发教程十七:Dialog 显示图像 中我们留了一个例子DrawMap()没有实现,这个例子显示在线地图,目前大部分地图服务器都是将地图以图片存储以提高响应速度。 一般大小为256X256个像素。具体可以参见离线地图下载方法解析 。 比…

url采集工具_大数据关键技术浅谈之大数据采集

在前几篇文章中,企通查为大家介绍了大数据处理的基本流程。从大数据的一系列处理过程中(抽取、集成、分析、解释),我们可以发现这一整套流程中涵盖了数据存储、处理、应用等多方面的技术。大数据价值的完美体现需要多种技术的协同…

使用 WPF + Chrome 内核实现 在线客服系统 的复合客服端程序

本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程。本产品已经成熟稳定并投入商用。免费使用 & 私有化部署免费下载:https://docs.shengxunwei.com/Post/f7bc8496-14ee-4a53-07b4-08d8e3da6269视频实拍:演示升讯威在线…

abp框架java,【Net】ABP框架学习之正面硬钢

前言本文介绍另一种学习ABP框架的方法,该方法为正面硬钢学习法。。。我们不去官网下载模板,直接引用DLL,直接使用。WebApi项目创建首先创建一个WebApi项目,结构如下。然后Nuget搜索ABP,安装ABP框架。(我这里安装的是5.…

不同对象的通话是时长​

1 一个专门为某人打造的形容词2 当代人的手机铃声3 “可以吃宵夜吗”“不行” 4 好可爱!!!5 这不是道具,是真的红酒杯里倒着红酒叠在硬币上!6 这14个未接电话就很有灵性了!7 你觉得以下哪个事件给你的痛苦感…