path-finding相关内容

太空飞船的推进AI:将3D船降落在位置= 0且角度= 0

对于太空游戏来说,如何操纵可同时在3D中平移和旋转的宇宙飞船是一个非常困难的问题. 该宇宙飞船的n喷射器放置在不同的位置和方向. 第i个射流相对于宇宙飞船CM的变换常数= Ti. 变换是位置和方向的元组(四元数或矩阵3x3或更小) ,欧拉角). 变换也可以用单个4x4矩阵表示. 换句话说,所有喷气式飞机都粘在船上,无法旋转. 喷气机只能在其轴线(绿色)的方向上向飞船 ..

在无向图上查找所有路径

我有一个无向图,我想列出起始节点的所有可能路径. 在列出的路径中,两个节点之间的每个连接都是唯一的,例如,给出以下图形表示: {A: [B, C, D], B: [A, C, D], C: [A, B, D], D: [A, B, C]} 从A 开始的列出的某些路径 A, B, C, D, A, C in this path we have a connection betw ..
发布时间:2020-08-22 20:52:12 其他开发

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

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

如何避免两个NavMeshAgent在Unity中相互推开?

在我的游戏中,所有玩家和怪物角色都有一个 NavMeshAgent 组件,当一个角色移到另一个角色时,它将推开第二个角色. 我阅读了NavMeshAgent的统一文档,发现问题受避障类型和避障优先级的影响,我已经尝试过此方法,但仍然无法找到完美的解决方案,我需要角色不要互相推开,而仍要以其他角色为障碍. 请给我一些有关如何正确使用NavMeshAgent的建议,并解决此问题.预先感谢. ..
发布时间:2020-07-12 21:23:56 其他开发

吃豆子:眼睛如何找到回到怪物洞的路?

我在Pacman中找到了很多关于鬼魂AI的参考文献,但是没有人提到在Pacman吃掉鬼魂之后眼睛如何回到中央鬼魂洞. 在我的实现中,我实现了一个简单但糟糕的解决方案.我只是在每个角落硬编码了应该采取的方向. 有没有更好/或最好的解决方案?也许是适用于不同级别设计的通用产品? 解决方案 实际上,我想说您的方法是一个非常棒的解决方案,与任何寻路方法相比,运行时间成本几乎为零. ..

吃豆人寻路算法

我想实现《吃豆人》游戏.对于AI而言,在很多论坛上都看到过它,我正在考虑使用A *算法.但是,我通过“广度优先搜索"进行了一些简单的寻路(从点a到点b,中间有一些障碍),发现它总是提供最佳路径.我猜可能是因为在像pacman这样的游戏中,它使用简单的寻路,图中没有成本的概念.那么,如果我在Bacman中使用BFS而不是A *进行寻路,就可以了吗? 解决方案 有关路径查找,请注意以下内容 ..
发布时间:2020-07-02 05:01:53 其他开发

GKObstacleGraph如何找到最近的有效点?

在用户想要通过鼠标导航或触摸到某些无法通过的地图的情况下.将点发送到GKObstacleGRpah FindPath时,它只会返回一个空数组. 我希望该设备到达最接近(或足够接近)的可通过点. 在GKObstacleGraph中找到最接近的有效点的合适方法是什么. 我知道我可以得到GKObstacle,所以我可以枚举它的顶点,而且我知道我单位的位置... 但是...下一步是 ..
发布时间:2020-06-24 18:37:15 其他开发

游戏设置场景编辑器导航图>如何使用它进行寻路?

不久前,Apple在Xcode的场景编辑器中引入了GameplayKit元素,这很棒.但是,我似乎对Navigation Graph元素有疑问: 我想要实现的是从“场景编辑器"中绘制GKGraph,在代码中检索它,并将其用作寻路的基础. 所以我先画一个GKGraph: 然后我像这样在GameScene.swift中检索它: graph = self.graphs.values.f ..
发布时间:2020-06-24 18:37:06 移动开发

通过四维数据寻路

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

如果减少一个边缘权重,则更新最短路径距离矩阵

我们得到了一个加权图G及其最短路径距离的矩阵增量。因此,delta(i,j)表示从i到j的最短路径的权重(i和j是图的两个顶点)。最初给出 增量,其中包含最短路径的值。边缘E的权重突然从W​​减小到W'。如何更新O(n ^ 2)中的delta(i,j)? (n =图的顶点数) 问题不在于再次计算具有最佳O(n ^ 3)复杂度的全对最短路径。问题是更新三角洲,因此我们无需重新计算所有对最短路径。 ..
发布时间:2020-06-03 21:00:44 其他开发

单位有惯性时如何寻路?

我目前正在为单位正在移动但具有惯性的游戏进行寻路。大多数典型的寻路算法(A *,Djikastra等)都只是为了最小化路径的长度而设计。 但是,就目前而言,这些技术并不适用我知道,在单位具有惯性的情况下。如果单位具有惯性,则根据您要移动的方向,将瓷砖留在特定方向上的成本会有很大差异。 例如,如果您从东方进入瓷砖,则离开北方前进的费用要比从南方进入瓷砖的费用高得多。 (在前一个示例中,您 ..
发布时间:2020-06-03 20:59:11 其他开发

如何在迷宫中获得最短路径?

我想编写一个以迷宫为矩阵时给出最短路径的代码。 在这种情况下,此迷宫的矩阵表示如下。 ## [,1] [,2] [,3] [,4] ## [1,] 2 0 0 0 ## [2,] 1 1 0 1 ## [3,] 0 1 0 0 ## [4,] 1 1 1 3 ,其中0表示不可访问点,1表示可访问点。 2表示起点,3表示目的地。 而且,所需的结果 ..
发布时间:2020-06-03 20:59:01 其他开发

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开发

如何找到具有1,0,-1权重的精确0成本的多维路径

我得到了有向图,其中有n个节点,边为具有向量1(0,-1)的向量(每个向量的长度为m)的权重。我想找到从一个节点到另一节点(我们可以多次访问节点)的任何路径(或者说这种路径不存在),这样它的权重之和就等于零向量。我当时在考虑蛮力回溯算法,但不能保证它会结束。我们可以以n和m的方式限制这种路径的长度吗? n = 8,m = 2的图形示例 路径示例 解决方案 我们可以通过指出如果存在这样的路径 ..
发布时间:2020-06-03 20:29:19 其他开发

避免锯齿形的有效路径查找算法

我正在开发一种将物体与电线连接起来的软件。此接线的规则是这些电线不能通过其他物体,并且不接受对角线移动。 所有最短路径我知道的算法(A *,dijkstra等)会找到这种类型的路径: 我不希望第二个屏幕截图中出现不必要的锯齿。我如何实现这个目标? 注意:任何想尝试算法的人都可以使用此应用程序。 另一个注意:这是我所不希望的确切情况。它找到锯齿形路径,而不是“向右移动,直到到 ..
发布时间:2020-06-03 20:28:18 其他开发

正确制定A *算法

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

如何使用双向BFS查找最短路径?

如何使用双向BFS查找最短路径?假设有一个6x6的网格。 起点在(0,5)中,终点在(4,1)中。使用双向bfs的最短路径是什么?没有路径成本。 解决方案 双向BFS如何工作? 同时从源顶点和目标顶点运行两个BFS,一旦发现这两个运行点共有的顶点就终止。该顶点将位于源和目标之间。 为什么它比BFS更好? 在大多数情况下,双向BFS会比简单BFS产生更好的结果。假设源到目 ..

如果元素被包围,则使形成路径的元素无效

我正在构建一个由单元组成的2D网格游戏,玩家必须在其中放置令牌并尝试包含(包围)对手的令牌。现在每个单元格可以具有3种状态:空,包含红色标记或包含蓝色标记。 所有可以形成“路径”的单元格都在列表中,并且沿着那条路径,我可以画出穿过细胞中心的线(多边形)。 还有一个包含的令牌列表,该令牌被包围, 现在,我想找到一种方法来“无效”一个被包围的令牌,以便它可以被路径计算忽略 请参见以 ..
发布时间:2020-05-31 20:41:25 Java开发