a-star相关内容

A* 允许在网格上滚动的启发式算法

我需要一些帮助来为以下问题找到一个好的启发式方法: 您将获得一个 R-by-C 网格和一个六面骰子.让 start 和end 是此网格上的两个不同单元格.找到从 start 到 end 的路径,使得当骰子沿着路径转动时,向上看的骰子面的总和是最小. 骰子的起始方向如下(“2"朝南): 我对这个问题建模的方法是将骰子的面值视为图中边的成本.图的顶点采用 (row, col, die ..
发布时间:2021-11-30 13:03:01 其他开发

Python - 加速 A Star 寻路算法

我已经编写了我的第一个稍微复杂的算法,一个 A Star Pathfinding算法.我遵循了一些关于实现图的 Python.org 建议,因此字典包含所有节点每个节点也是链接的.现在,由于这完全是为了游戏,每个节点实际上只是节点网格中的一个图块,因此我是如何制定启发式方法的,并且我偶尔会参考它们. 多亏了 timeit,我知道我可以每秒成功运行这个函数一百多次.可以理解,这让我有点不安,因 ..
发布时间:2021-11-30 13:02:54 Python

A* 是最好的寻路算法吗?

一般都说A*是解决寻路问题的最佳算法. 是否存在 A* 不是 最佳求解算法的情况? 与 BFS、DFS、UCS 等相比,A* 有多好? 解决方案 简短的回答是肯定的,在某些情况下,A* 不是解决问题的最佳算法.但是,有多种方法可以评估什么构成了最佳 算法以寻找解决方案. 如果您在从单一来源到多个目的地的多次搜索的性能方面考虑最佳,那么您应该考虑使用更合适的方法(Dijks ..

需要一个具有多个目标的明星搜索算法的想法

具有指定目标的星搜索算法非常简单.但是,如果图表中有多个目标会怎样.例如;您可能想要找到一条必须包含先前指定节点的最短路径.这里的约束是说你的路径必须包括 A、B 和 C 节点(或更多),而不仅仅是找到一条到节点 A 或 B 或 C 的路径.当然,图形包括一个或多个 A、B、C 类型的节点.所以有一个问题,我如何适应多个目标的A星搜索算法? 编辑:我们可以访问多个节点. 解决方案 您 ..
发布时间:2021-11-30 13:02:32 其他开发

如何使用 A 星算法找到前 100 条最短路径?

如何使用 A 星算法找到前 100 条最短路径? 解决方案 求第k条最短路径的问题是NP-Hard,因此对 A-Star 所做的任何修改都可以满足您的要求 - 输入的大小将呈指数级增长. 证明: (注意:我会在简单路径上显示) 假设你有一个多项式算法,它在多项式时间内运行并返回k的长度,最短路径让算法为A(G,k) 最大路径数为n!,通过对[1,n!]范围进行二分查找,找到 ..
发布时间:2021-11-30 13:02:23 其他开发

A-star:针对多个目标的启发式

让我们考虑一个简单的网格,其中任何点最多与其他 4 个点(东北-东-西-南邻域)相连. 我必须编写程序,计算从选定的初始点到连接的任意个目标点的最小路线(有由任意两个目标之间的目标点组成的路线).当然,网格上可能存在障碍. 我的解决方案非常简单:我使用的是带有可变启发式函数 h(x) 的 A* 算法 - 从 x 到最近目标点的曼哈顿距离.要找到最近的目标点,我必须进行线性搜索(在 O( ..
发布时间:2021-11-30 13:02:16 其他开发

Java中A星(A*)算法的实现

免责声明:我几乎没有 Java 背景,因为我主要是一名 C# 开发人员. 想要A*算法的java实现. 是的,我在网上看到了许多相同的版本,我无法在它们之间进行选择. 我正在寻找一种 A* 算法实现,它使用了 java 的所有新特性,使算法更快(即使有点).原因是我们正在实施它以在 MMO 上进行寻路,因此,性能是重中之重. 任何指示(至少在哪里看)? 解决方案 尝试几 ..
发布时间:2021-11-30 13:02:06 Java开发

使用 A* 解决旅行商

我的任务是编写解决旅行商问题的 A* 算法(提供启发式算法)的实现.我理解算法,它很简单,但我看不到实现它的代码.我的意思是,我明白了.节点的优先级队列,按距离 + 启发式(节点)排序,将最近的节点添加到路径上.问题是,如果从前一个最近的节点无法到达最近的节点会发生什么?人们实际上如何将“图形"作为函数参数?作为代码,我只是看不到算法的实际运作方式. 我在发布问题之前阅读了维基百科页面.反复 ..
发布时间:2021-11-30 13:01:55 其他开发

如何最佳地解决洪水填充难题?

我喜欢玩益智游戏 Flood-It,可以在线玩: https://www.lemoda.net/javascript/flood-it/game.html 它还可以作为 iGoogle 小工具使用.目的是用最少的连续充填次数填满整个棋盘. 我正在尝试编写一个可以最佳解决这个难题的程序.解决这个问题的最佳方法是什么?理想情况下,我想使用 A* 算法,但我不知道估计剩余步数的函数应该 ..

如何将 A* 算法应用于旅行商问题?

可能的重复: 使用 A* 解决旅行商问题 我最近了解到 A* 算法可以应用于旅行商问题.Bot 我们如何准确定义开始和目标,以及我们如何将权重应用于节点(启发式是什么)? 有人可以向我解释如何在这里应用 A* 吗? 解决方案 A* 是 Dijsktra 的衍生物,我认为不能以这种方式使用.首先,TSP一般从任意节点开始.更重要的是,这些算法寻求找到两点之间的最短路径,而不管访 ..
发布时间:2021-11-30 13:01:35 其他开发

寻路 - A* 最少转弯

是否可以修改 A* 以返回匝数最少的最短路径? 一个复杂的问题:节点不再能够仅仅通过它们的位置来区分,因为它们的父节点与确定未来的转弯相关,所以它们也必须有一个与它们相关联的方向. 但我遇到的主要问题是如何将匝数计算为部分路径成本 (g).如果我将 g 乘以所走的圈数 (t),就会发生一些奇怪的事情,例如:接近终点 N 圈的较长路径比接近开头 N 圈的较短路径更受欢迎. 我正在考 ..
发布时间:2021-11-30 13:01:24 其他开发

如何实现 A* 算法?

在 C# 中获得 A*(A 星)算法的简单实现的方法应该是什么? 解决方案 这篇文章长篇大论讲解基本实现: 这篇博文的目标是通过一个非常简单的 C# 实现展示 A* 的基础知识. 它还指出了更好的实现,更适合生产使用: 至于如何找到更好的路线,周围有很多 C# 示例,它们比这个更好、更丰富.CastorTiu 在 CodeProject 上有一个非常好的演示解决方案,C# ..
发布时间:2021-11-30 13:01:12 C#/.NET

在 A 星中回溯

蓝墙 绿色突出显示的单元格 = 打开列表 红色突出显示的单元格 = 关闭列表 你好,谁能告诉我如何在星星搜索算法中实现回溯?我已经根据 wiki 实现了星星搜索,但它没有回溯,我的意思是回溯是打开列表(绿色单元格)包含 2,0 和 3,3,如图所示,达到 2 时,0 当前节点将“跳转"到 3,3,因为成本现在超过 3,3 并从那里继续搜索,如何才能使其从 2,0->2,1-> 回 ..
发布时间:2021-11-30 13:01:04 其他开发

如何在大空间尺度上加速 A* 算法?

来自 http://ccl.northwestern.edu/netlogo/models/community/Astardemo,我通过使用网络中的节点来定义成本最低的路径来编写 A* 算法.该代码似乎可以工作,但是当我在大空间尺度上使用它时速度太慢了.我的景观范围为 1000 个补丁 x 1000 个补丁,其中 1 个补丁 = 1 像素.即使我将其减少为 400 个补丁 x 400 个补丁,1 ..
发布时间:2021-11-30 13:00:57 其他开发

A* 启发式,高估/低估?

我对高估/低估这两个术语感到困惑.我完全了解 A* 算法的工作原理,但我不确定高估或低估启发式算法的影响. 当你取直接鸟瞰线的平方时是不是高估了?为什么它会使算法不正确?所有节点都使用相同的启发式方法. 当您取直接鸟瞰线的平方根时是否低估?为什么算法仍然正确? 我找不到解释清楚的文章,所以我希望这里有人有一个很好的描述. 解决方案 当启发式的估计高于实际最终路径成本时,您 ..
发布时间:2021-11-28 22:31:42 AI人工智能

Dijkstra 算法与 A-Star 相比如何?

我正在查看 Mario AI 竞赛 中的人在做什么,其中一些使用 A*(A 星)路径算法构建了一些非常整洁的马里奥机器人. (马里奥 A* 机器人实战视频) 我的问题是,A-Star 与 Dijkstra 相比如何?仔细一看,它们看起来很相似. 为什么有人会使用一个而不是另一个?尤其是在游戏路径的背景下? 解决方案 Dijkstra 是 A* 的特例(当启发式为零时). ..

A* 寻路算法运行速度极慢

我目前正在开发我的第一款安卓游戏,也是我第一次创建 a* 寻路算法.这是一款2d游戏.我已经创建了一个包含该算法的敌人(即,它每帧运行一次)并且将性能从 60fps 降低到 1-2 fps.显然有些事情是非常错误的,我曾尝试在网上寻找解决方案,但还没有找到答案.这是我的寻路课程: 包 com.frog8fly.nunca; 导入 com.badlogic.gdx.utils.Array; ..
发布时间:2021-11-24 22:23:29 Java开发

二维数组中的寻路

假设我有这个二维数组地图 { 0,0,0,0,7,1,1,1,1,1,1,1,1 },{ 0,7,7,7,7,1,1,1,24,1,1,1,1 },{ 0,7,24,24,24,24,24,24,24,1,1,3,1 },{ 0,7,23,23,23,23,23,23,24,1,1,3,1 },{ 0,7,24,23,23,23,23,23,23,1,1,1,1 },{ 0,7,24,23,23 ..
发布时间:2021-11-24 22:19:49 Java开发

在二维网格C#中查找最接近的值

我已经创建了一个用于模拟机器人应用程序的c#控制台应用程序.我已经为机器人创建了一个2D网格来移动: List地图; 地图是一个25x25的网格(开始时),并填充了以下值: 0 =未使用的空间,1 =探索空间,2 =墙,3 =障碍,9 =机器人 机器人开始在位置(12,12).我希望能够在该网格中搜索最近的未探索空间并返回该位置,以便随后可以将该位置和机器人 ..
发布时间:2021-04-12 18:36:31 C#/.NET

在8难题游戏中使用Python计算曼哈顿距离

我正在尝试用Python编写一个简单的A *求解器,以编写简单的8-Puzzle游戏.我以这种方式表示了我的游戏目标: 目标= [[1、2、3],[8,0,4],[7,6,5] 我的问题是我不知道如何为我的目标编写一个简单的“曼哈顿距离"启发式方法.我知道应该将其定义为一般状态与目标状态之间的距离之和.我想我应该编写类似以下内容的代码: def manhattan_distance(st ..
发布时间:2021-04-12 18:36:27 Python