Graph 部分图中的最短路径算法

Graph 部分图中的最短路径算法,graph,path,heuristics,shortest,large-data,Graph,Path,Heuristics,Shortest,Large Data,我正在使用graphstream库递归地用java构建一个图形。。然而,这个图是如此巨大,以至于递归非常深入,最终导致stackoverflow。相信我,即使是迭代也不能解决我的问题。。我只会得到一个运行时错误 我的目标是使用搜索算法,例如Disjktra或a*,或者最终在图形上使用任何搜索算法 由于我没有完整的图,我一直在文献中寻找一些东西,比如局部地图中的最短路径算法;使用启发式我找不到太多 如果有人能给我一些提示(论文、想法;实现将是一个大赢家!!!!:-D)我看过PHA*或其他算法。我知

我正在使用graphstream库递归地用java构建一个图形。。然而,这个图是如此巨大,以至于递归非常深入,最终导致stackoverflow。相信我,即使是迭代也不能解决我的问题。。我只会得到一个运行时错误

我的目标是使用搜索算法,例如Disjktra或a*,或者最终在图形上使用任何搜索算法

由于我没有完整的图,我一直在文献中寻找一些东西,比如局部地图中的最短路径算法;使用启发式我找不到太多


如果有人能给我一些提示(论文、想法;实现将是一个大赢家!!!!:-D)我看过PHA*或其他算法。

我知道这篇文章很老了。。。但我当时用Korf,R.E.(1990)“实时启发式搜索”的1990年算法解决了这个问题:

我不认为局部图上的最短路径算法会有任何帮助,因为每个新边都可能使迄今编译的所有结果无效。我也不明白为什么迭代也会杀死你——只要确保当前的dfs根路径是从堆而不是从堆栈分配的(例如,使用
new
而不是自动VAR),你就会没事,除非你真的有数十亿个节点。是否您的实际问题是没有检测到代码中的循环,可能带有负权重?我将研究处理完整图形读取和写入文件的算法,而不尝试将其全部加载到内存中;例如,通过根据距起点的距离对节点进行排序,您可以轻松地执行宽度优先的最短路径搜索。@collapsar:谢谢您的想法。迭代会杀死我,因为我有很多节点。可能高达数十亿。。对我对我的代码进行了双重和三重检查:我确信我的代码中没有循环。这就是为什么我认为使用启发式应该/可能帮助我找到解决方案的原因…@LorenzoGatti:我会看看你的建议。谢谢。@pro:你找到解决办法了吗?那是什么?