a-star相关内容

您如何用A-Star或Dijkstra的算法求解15题?

我已经读过一本AI书,其中流行的算法(A-Star,Dijkstra)用于模拟或游戏中的寻路,也用于解决著名的"15难题". 谁能给我一些指导,说明如何将15谜题简化为节点和边的图形,以便我可以应用其中一种算法? 如果我将图中的每个节点都视为游戏状态,那么那棵树不会变得很大吗?还是只是这样做的方法? 解决方案 对于A-Star来说,具有15个谜题的一种很好的启发方法是在错误位置 ..

最佳优先搜索和A *搜索有什么区别?

在我的教科书中,我注意到这两种算法的工作原理几乎完全相同,我试图了解它们之间的主要区别是什么. 教科书使用 A * 遍历此示例,就像使用最佳优先搜索一样. 任何帮助将不胜感激. 解决方案 最佳优先搜索算法基于启发式函数 f(n)= h 访问下一个状态最低启发式值(通常称为贪婪).它不考虑通往该特定状态的成本.它只关心当前状态中的哪个下一个状态具有最低的启发式. A *搜索 ..
发布时间:2020-09-07 18:53:31 AI人工智能

一致和可接受的启发式

任何一致的启发式方法也是可以接受的.但是什么时候可以接受启发式但不一致的(单调)? 在这种情况下,请提供示例. 解决方案 正如罗素(Russel)和诺维格(Norvig)在《人工智能:一种现代方法》(最常用的AI教科书)中指出的那样,要提出来具有挑战性可以接受但不一致的启发式方法. 很显然,您可以为图中的节点选择值,以使它们表示的试探法可以接受但不一致. 此启发式方法在c1处不 ..
发布时间:2020-09-07 18:53:14 AI人工智能

图搜索和树搜索有什么区别?

图搜索和树搜索版本在Dem,人工智能中的A *搜索之间有什么区别? 解决方案 从现有的答案来看,这个概念似乎有很多困惑. 问题始终是图表 树搜索和图搜索之间的区别并不基于问题图是树还是普通图这一事实.始终假定您正在处理一般图形.区别在于用于遍历图的遍历模式,该图可以是图形或树形. 如果您要处理树形的问题,则这两种算法变体都会得出相同的结果.因此,您可以选择更简单的树形搜索 ..
发布时间:2020-09-07 18:51:07 AI人工智能

路径查找算法:A * Vs跳点搜索

我知道A *比Dijkstra的算法要好,因为它考虑了启发式值,但是从A *和跳转点搜索(这是在有障碍物的环境中查找最短路径的最有效算法)来看呢?有什么区别? 解决方案 跳转点搜索是基于图形上某些条件的改进的A *.因此,如果满足这些条件(大多数情况下是统一成本网格),则JPS绝对优于A *(相同的最优性,最佳情况可能好几个数量级,而最坏情况可能是相同的复杂度,但是 常数稍差一些),但是如 ..
发布时间:2020-08-22 20:01:07 其他开发

AStar-名称说明

我正在寻找一种解释,为什么将AStar/A *算法称为AStar.所有类似的(最短路径问题)算法通常都像其开发人员一样命名,那么AStar代表什么? 解决方案 有称为A1和A2的算法.后来,事实证明A2是最佳算法,实际上也是可能的最佳算法,因此他给它取了一个名称A *,该符号象征性地包含了所有可能的版本号. 来源: 1964年,尼尔斯·尼尔森(Nils Nilsson)发明了一 ..
发布时间:2020-08-22 19:29:32 其他开发

为什么A-star算法需要g(n)?

Dijkstra的算法为 f(n)= g(n) 并且A *为 f(n)= g(n)+ h(n)。 g(n)是从起始节点到n的路径成本。 br> h(n)是一种启发式函数,用于估算从n到目标的最便宜路径的成本。 是否需要g(n)?它找不到g(n)的最短路径吗? 为什么A *需要g(n)? 解决方案 我们需要 g(n) 当 h(n)为目标的某个给定路径上的所有节点的 ..
发布时间:2020-06-03 21:42:49 其他开发

A *认识到不可能达到目标

我为8个难题的问题实现了A *,几乎与 Wiki文章,但是即使我已经关闭 ,我仍然在应该失败的板上获得无限的运行时间。 似乎打开新节点的速率大于关闭新节点的速率,因为对于每个节点,将大约1-4个新节点添加到打开,但只有一个节点从打开移到关闭。 那么,如何做才能知道给定的起始板没有通往目标的道路,而无需永远等待? 这是代码: public List ..
发布时间:2020-06-03 21:31:19 C#/.NET

通过四维数据寻路

问题是找到飞机通过四向风的最佳路线(风在不同高度,并且随行进而变化(预测风模型))。 我使用了传统的A *搜索算法,并对其进行了破解,以使其能够在3维和风矢量下正常工作。 在很多情况下都可以使用,但是非常慢(我正在处理大量数据节点),并且在某些极端情况下不起作用。 我觉得我已经“很好”地工作了,但是感觉 是否存在一种更好的,更有效的路径来查找像这样的数据(可能是遗传算法或神 ..
发布时间:2020-06-03 21:02:26 其他开发

A *搜索算法

关于以下A *搜索示例,我想澄清一些问题: 用红色椭圆突出显示的部分是我不了解的区域;看来 {S,B} f = 2 + 6 = 8 已从展开S (上方),并在展开A 中使用。似乎 {S,A,X} f =(1 + 4)+ 5 = 10 已从展开/移动/复制A 并在 Expand B 中使用。 有人可以解释一下为什么会这样吗?我能够很好地阅读该图,并且在解释它时没有任何麻烦-这仅仅是事实, ..
发布时间:2020-06-03 20:39:11 其他开发

IDA *与A *算法的区别是什么

我不明白 IDA * 如何节省内存空间。 据我了解, IDA * 是 A * ,而且迭代式加深。 A * 使用的内存量与 IDA *之间的内存量有什么区别 code>。 IDA *的最后迭代不是的行为c> A * 并使用相同数量的内存。当我跟踪 IDA * 时,我意识到它还必须记住 f(n)阈值。 我了解ID深度优先搜索通过允许深度优先搜索来帮助深度优先搜索,而不必记住每个节点 ..
发布时间:2020-06-03 20:36:10 其他开发

大地图上的寻路

我正在创建具有10,000 x 10,000地图的游戏。 我希望用户能够设置位置并让计算机立即找到最佳路径。 但是,由于映射是10,000 x 10,000,因此有100,000,000个节点,要通过常规方法(例如A *或Dijkstra's)找到此路径,将需要大量的内存和较长的时间。 所以我的问题是:如何找到最佳路径? 我正在考虑的算法会将世界分为100个部分,每个部分有 ..
发布时间:2020-06-03 20:31:27 Java开发

正确制定A *算法

我正在查看A *路径查找算法的定义,并且似乎在不同的地方定义不同。 区别在于 一种方法(由维基百科和这篇文章)说:如果后继者在封闭列表中,只需忽略它即可。 另一种方法(建议此处和此处)说:如果后继者在封闭列表中,请检查其成本。如果它高于当前计算的分数,请从封闭列表中删除该项目以供将来检查。 我很困惑-哪种方法是正确的 ?凭直觉,第一个对我来说更有意义,但我想知道定义的区别。定义 ..

如何实现A *算法?

哪种方法应该可以在C#中简单实现A *(星型)算法? 解决方案 本文解释了基本的实现方式: 这篇博客的目的是通过一个真正的例子来展示A *的基本原理。简单的C#实现。 它也指出了更好的实现,更适合生产使用: 至于找到更好路线的方法,周围有很多C#示例比这更好,更丰富。 CastorTiu 在CodeProject上有一个非常好的演示解决方案, C#中的A *算法实现,该算 ..
发布时间:2020-06-03 19:50:34 C#/.NET

A *路径查找算法运行极慢

我目前正在为Android开发第一款游戏,也是我第一次创建a *路径查找算法。这是一个2D游戏。我创建了一个包含此算法的敌人(即,每帧运行一次),并将性能从60fps降低到1-2 fps。显然出了什么问题,我曾尝试在网上寻找解决方案,但尚未找到答案。这是我的寻路类: package com.frog8fly.nunca; import com.badlogic.gdx. ..
发布时间:2020-05-31 20:41:35 Java开发

大型图形的A *算法,对缓存快捷方式有何想法?

我正在OpenStreetMap地图上编写快递/后勤仿真,并且已经意识到,如下图所示的基本A *算法对于大型地图(例如大伦敦)来说不够快. 绿色节点对应于放置在开放集合/优先级队列中的节点,由于数量巨大(整个地图大约为1-2百万),因此需要5秒钟左右的时间才能找到所描绘的路线.不幸的是,每条路线100ms大约是我的绝对极限. 当前,节点既存储在邻接列表中,又存储在空间100x100 2 ..

路径未到达我的A *算法中的末端节点

接着如何进行加快在大空间范围内的最小成本路径模型,我尝试在Netlogo中编写A *算法,以在大空间范围内增加我的最小成本路径模型.这是我的代码: to findPath [ID-start-node ID-end-node] let currentNodesInList [ ] let current-node node ID-start-node let end-node nod ..
发布时间:2020-05-17 02:48:30 其他开发

A *算法:关闭列表包含太多元素/太大

我目前正在用JavaScript实现A *算法。但是,我遇到了一个问题:我的closedList似乎太大了。以下是输出的屏幕截图: 什么可能导致这个问题?我的启发式计算是错误的吗? Node.prototype.getHeuristic = function(pos0,pos1) { // Manhatten Distance var horizo​​ntalDistance ..
发布时间:2019-05-24 18:38:40 前端开发

无法在java中实现A Star

我一直在努力让这个算法运行起来,但是我不能为我的生活做准备。我在网上阅读了很多教程,以及AS3,javascript和C ++中的源代码;但我无法适应我所看到的自己的代码。 我创建了一个AStar类,它有一个名为Node的嵌套类。地图是一个名为MAP的2D数组。 我遇到的最大问题是在pathfind函数中拉出F值。 我已经实现了F = G + H,我的问题是实际的AStar算法。 ..
发布时间:2018-12-12 19:24:27 Java开发