567得票18回答
什么算法可以计算在地图上从点A到点B的方向?

地图提供商(比如谷歌或雅虎地图)是如何建议路线的呢? 它们可能有某种形式的真实世界数据,肯定包括距离,但也可能包括行驶速度、人行道存在情况、火车时间表等等。但假设数据以更简单的格式存在,例如一个非常大的有向图,边缘权重反映距离。我想能够快速计算从任意一点到另一点的方向。有时这些点会很近(在同...

19得票1回答
IDA*算法与A*算法相比有何优劣之处?

我不理解IDA*如何节省内存空间。 根据我的理解,IDA*是使用迭代加深的A*算法。 A*与IDA*在内存使用量上有什么区别。 难道IDA*的最后一次迭代行为不会像A*那样并且使用相同数量的内存吗?当我追踪IDA*时,我意识到它还必须记住所有低于f(n)阈值的节点的优先级队列。 我了解I...

40得票5回答
A*可行启发式算法在网格上掷骰子问题中的应用

我需要一些帮助来找到以下问题的良好启发式方法: 给定一个R行×C列的网格和一个六面骰子。 假设start和 end是该网格上的两个不同单元格。 找到从start 到 end 的路径, 使得沿着路径旋转时,骰子朝上的面的总和最小。 骰子的起始朝向如下所示(“2”面向南)...

18得票3回答
A-star算法在2D网格中是否保证给出最短路径?

我正在使用A星算法,其中有一个2D网格和一些障碍物。现在,我只有垂直和水平的障碍物,但它们可能会变得很密集。 现在,A星算法效果不错(即对大多数情况找到了最短路径),但如果我尝试从左上角到达右下角,则有时会发现路径不是最短的,即路径存在某些不必要的绕路。 路径似乎偏离了最短路径。 现在这...

7得票3回答
如何修改递归算法以找到最短路径?

https://vimeo.com/70999946 我实现了一个递归路径查找算法。这个递归算法基于一组预设的相互连接的节点工作。每个节点都有四个指针,包含进一步的方向:上、下、左和右。递归算法简单地遍历每个节点,并依次寻找这四个方向中的每一个,以达到其最终目的地;例如,考虑以下7个节点:A...

14得票7回答
什么是寻找小世界图路径的最有效方法?

我有一个带权节点的海洋,有边将节点群体链接在一起。该图遵循典型的小世界布局。 我希望找到一种路径查找算法,它在处理器功耗方面不会太昂贵,以找到沿着最优路径的路径,其中节点权重最有利,最快的路线不是最重要的因素。这个算法还考虑了负载承载和交通重新路由。 (旁注:神经网络能在这里使用吗?) ...

11得票2回答
如何限制NetworkX图中的特定路径?

我正在尝试使用Dijkstra和A Star算法计算两点之间的最短路径(在有向的NetworkX图中)。 目前它可以正常运行并且我能够看到计算出来的路径,但我想找到一种限制某些路径的方法。 例如,如果我们有以下节点: nodes = [1,2,3,4] 这些边: edges = ( ...

9得票2回答
D*-Lite算法

我正在尝试实现D*-Lite路径规划算法,参考Koenig和Likhachev在2002年发表的文章2002 article,并将其应用于Boost::Graph。我认为我已经基本掌握了其背后的基本思想和理论,但我不理解何时更新Pred和Succ集合。 我猜这发生在Main中的Move to...

12得票2回答
Java中A星(A*)算法的实现

免责声明:我在Java方面的背景很少,因为我主要是C#开发人员。 想要获得A *算法的Java实现。 是的,我看了许多在线版本,但我无法在它们之间进行选择。 我正在寻找一个使用所有新功能的Java A*算法实现,使算法更快(即使只是略微)。原因是我们正在为大型多人在线游戏中的路径查找而实现...

26得票5回答
无限制地随机移动物体而不发生碰撞

我有一个应用程序,需要在屏幕上以随机方式移动许多对象,并且它们不能相互碰撞。我正在寻找一种算法,允许我生成不会产生碰撞的路径,并可以无限期地继续移动(即:对象继续在程序中移动,直到用户驱动的事件将其从程序中删除)。 我不是游戏程序员,但我认为这似乎是一个AI问题,你们可能闭着眼睛就能解决。根...