a-star相关内容

曼哈顿距离启发式的 A* 算法

我一直在用 C 语言开发一个 15 拼图解算器.我的代码使用了大量内存,但我遇到了一些问题. 我不会发布我的代码,因为它太长了......我已经实现了我正在使用的大部分库,它可能只会给你带来困惑.让我们从基础开始. 我现在使用的东西是:(所有这些都是用 C 实现的) - 斐波那契堆: /* 斐波那契堆的结构 */类型定义结构_fiboheap {整数大小;//堆中的节点数节点最 ..

C++ A-star实现——判断一个节点是否已经在open item的优先队列中

A* 寻路算法中的一个步骤需要搜索您当前正在与之交互的节点的开放节点列表,如果该节点尚不存在,则将该节点添加到列表中,或者更新其值和父节点,如果它存在但权重高于节点的当前版本. STL priority_queue 结构不支持这些行为.我应该如何实施该步骤? 更新,因为这个问题获得了很多观点: std::priority_queue 可能看起来是一个不错的选择,但事实并非如此. ..
发布时间:2021-11-30 13:09:03 C/C++开发

四维数据寻路

问题是为飞机找到一条通过四维风(不同高度的风并且随着您的旅行而变化(预测风模型))的最佳路线. 我使用了传统的 A* 搜索算法并对其进行了修改,使其在 3 维和风向量中工作. 它适用于很多情况,但速度极慢(我处理大量数据节点)并且不适用于某些边缘情况. 我觉得我让它运行得“很好",但它感觉很糟糕. 是否有更好更有效的方法通过这样的数据(可能是遗传算法或神经网络)或我什至没有 ..
发布时间:2021-11-30 13:08:43 其他开发

机器人路径规划 - A*(星级)

我正在用 C++ 为我的主要机器人探索行为实现 A* 路径规划算法.当机器人移动时,它会将自身周围的环境映射为 2D 图形.从这张图中,我设置了一个 Vector2D 元组 {x, y} ,它保存了这个航点的位置,我也希望机器人在那里导航. 我对 A* 做的第一件事是有一个 Node 类,它保存有关当前节点的信息; double f;//F,最终得分双 g;//移动成本双 h;//Huer ..
发布时间:2021-11-30 13:08:31 C/C++开发

在 8 拼图游戏中用 Python 计算曼哈顿距离

我正在尝试用 Python 编写一个简单的 A* 求解器,用于一个简单的 8-Puzzle 游戏.我以这种方式代表了我的比赛目标: 目标 = [[1, 2, 3],[8, 0, 4],[7, 6, 5]] 我的问题是我不知道如何为我的目标编写一个简单的曼哈顿距离启发式方法.我知道它应该被定义为通用状态和我的目标状态之间距离的总和.我想我应该编写如下代码: def manhattan_dist ..
发布时间:2021-11-30 13:08:11 Python

寻路算法:A* Vs 跳转点搜索

我知道 A* 比 Dijkstra 的算法更好,因为它考虑了启发式值,但是从 A* 和 Jump Point 搜索来看,哪个是在有障碍物的环境中找到最短路径的最有效算法?有什么区别? 解决方案 Jump Point Search 是基于图形上的某些条件改进的 A*.因此,如果您满足这些条件(主要是均匀成本网格),则 JPS 绝对优于 A*(相同的最优性,最好的情况可以好几个数量级,最坏的情 ..
发布时间:2021-11-30 13:08:02 其他开发

有人可以在曼哈顿为我解释 java 中的 8 谜题吗?

我正在编写一个 A* 算法,它可以解决 Java 中的 8 拼图,到目前为止,我已经使用不合适的图块数量实现了 DFS、BFS、A*,我只需要使用启发式算法来实现它曼哈顿距离. 您可能知道曼哈顿距离是每个瓦片位移与其当前位置及其在目标状态下的索引的总和. 我在谷歌上搜索并找到了这些关于流主题的堆栈: 计算曼哈顿距离A* 中的曼哈顿距离 返回以下代码: int manha ..
发布时间:2021-11-30 13:07:54 Java开发

A星算法:距离启发式

我正在使用这里看到的 A 星算法(取自 http://code.activestate.com/recipes/578919-python-a-pathfinding-with-binary-heap/),但我有一个我不明白的问题. 这里给出的启发式是两点之间距离的平方.我发现如果我取它的平方根,我的结果会更准确,但函数的运行时间会急剧增加(即它比以前经历了很多很多的循环). 为什么启 ..
发布时间:2021-11-30 13:07:47 Python

A* 在 HTML5 Canvas 中开始路径查找

我正在尝试在我的游戏(用 JavaScript、HTML5 Canvas 编写)中实现 A* 开始路径查找.A* 开始库找到了这个 - http://46dogs.blogspot.com/2009/10/star-pathroute-finding-javascript-code.html 现在我正在使用这个库进行路径查找.使用这个库,我正在尝试编写一个简单的测试,但遇到了一个问题.当在 HTM ..
发布时间:2021-11-30 13:07:37 前端开发

AI:查找路径是否存在的最快算法?

我正在寻找一种寻路算法,用于控制 2D 网格中实体的 AI 需要找到从 A 到 B 的路径.它不一定是最短路径,但需要非常快速地计算.网格是静态的(从不改变),一些网格单元被障碍物占据. 我目前正在使用 A*,但它对我来说太慢了,因为它总是试图计算最快的路径.当路径不存在时会出现主要的性能问题,在这种情况下,A* 将尝试探索过多的单元格. 如果路径不必是最短路径,我是否可以使用其他算法 ..

如果我使用 4xManhattan 距离作为 15-Puzzle 的启发式,为什么 A* 更快

我已经实现了一个 A* 算法来解决 15 拼图.我进行了一项研究,以寻找一些可行的或可接受的启发式方法,寻找快速解决方案,我发现使用 4*曼哈顿距离作为启发式方法总是可以在不到一秒的时间内解决任何 15 难题.我试过这个并且有效地工作.我试图找到答案,但我找不到. 谁能解释一下? 解决方案 4* manhattan distance 是不可接受的启发式算法,这使得算法首先表现得“更接 ..
发布时间:2021-11-30 13:07:14 其他开发

A*,开放列表的最佳数据结构是什么?

免责声明:我真的相信这不是类似问题的重复.我读过这些,他们(大部分)推荐使用堆或优先级队列.我的问题更多是“我不明白在这种情况下它们会如何工作". 简而言之: 我指的是典型的 A*(A 星)寻路算法,如(例如)维基百科所述: https://en.wikipedia.org/wiki/A*_search_algorithm 更具体地说,我想知道什么是最好的数据结构(可以是一 ..
发布时间:2021-11-30 13:07:06 其他开发

在有界子图之间寻找最小割集

如果一个游戏地图被划分为子图,如何最小化子图之间的边? 我遇到了一个问题,我试图通过像吃豆子或推箱子这样的基于网格的游戏进行 A* 搜索,但我需要找到“外壳".我说的外壳是什么意思?给定最大尺寸和最小数字尺寸的子图,尽可能少 切割边作为软约束的每个子图的顶点数. 或者你可以说我正在寻找子图之间的桥梁,但它通常是相同的问题. 示例 基于网格的游戏地图示例 http://dl.dr ..

A* 搜索算法

我想就以下 A* 搜索示例进行澄清: 用红色椭圆突出显示的部分是我不明白的地方;看起来 {S,B} f=2+6=8 已经从 Expand S(上面)中提取/移动/复制并用于 Expand A.似乎 {S,A,X} f=(1+4)+5=10 已从 Expand A 中提取/移动/复制并用于 展开B. 有人可以解释一下为什么会发生这种情况吗?我能够很好地阅读图表并且在解释它时没有任何问题 ..
发布时间:2021-11-30 13:06:47 其他开发

使用 A 星寻找路径的启发式函数

我正在尝试为以下问题找到最佳解决方案 每个节点内表示的数字表示为(x,y). 一个节点的相邻节点总是有一个 y 值,即(当前节点 y 值 +1). 当我们从一个节点到其相邻节点时,x 值的变化成本为 1 如果 x 的值没有变化,则从节点到其相邻节点没有成本. 没有 2 个具有相同 y 值的节点被认为是相邻的. 最优方案是成本最低的方案,我正在考虑使用 A* 寻路算法来寻找最优方 ..

A-star (A*) 的曼哈顿启发式函数

我发现了这个算法 这里. 我有一个问题,我似乎无法理解如何设置和传递我的启发式函数. 静态公共路径AStar(TNode开始,TNode目的地,Func距离,Func估计),其中 TNode : IHasNeighbours{var closed = new HashSet();var queue = ..
发布时间:2021-11-30 13:06:28 C#/.NET

关于在 15 方格拼图中使用 A* 的问题

我正在尝试为 A* 求解器构建一个15 方拼图. 目标是重新排列图块,使它们出现在自然位置.您一次只能滑动一个图块.拼图的每个可能状态都是搜索图中的一个节点. 对于 h(x) 函数,我使用的是所有图块与目标状态的错位的总和.在上图中,5 位于位置 0,0,它属于位置 1,0,因此它对 h(x) 函数贡献了 1.下一个图块是 11,位于 0,1,属于 2,2,因此它对 h(x) 贡献了 ..
发布时间:2021-11-30 13:06:19 其他开发