Java 在有向图中查找从源到目标的所有可能路径
我正在制作一个Android总线应用程序,因为我必须找到源和目标之间所有可能的路径。我正在使用dijkstra算法进行dfs搜索 但当我输入查找结果的来源和目的地时,会花费更多的时间,我的应用程序会崩溃Java 在有向图中查找从源到目标的所有可能路径,java,android,algorithm,graph,Java,Android,Algorithm,Graph,我正在制作一个Android总线应用程序,因为我必须找到源和目标之间所有可能的路径。我正在使用dijkstra算法进行dfs搜索 但当我输入查找结果的来源和目的地时,会花费更多的时间,我的应用程序会崩溃 请提供一个解决方案。我认为它正在崩溃,因为我相信,您用于查找只有一条路径存在的路径的算法正在崩溃。在Kruskals中查找可以找到多条路径的算法 可能有助于在一个通用图中查找所有路径是不可能的,如果该图有循环,则可能有无限多条路径。找到所有的简单路径是可能的,这些路径的数量是有限的——但简单路径
请提供一个解决方案。我认为它正在崩溃,因为我相信,您用于查找只有一条路径存在的路径的算法正在崩溃。在Kruskals中查找可以找到多条路径的算法
可能有助于在一个通用图中查找所有路径是不可能的,如果该图有循环,则可能有无限多条路径。找到所有的简单路径是可能的,这些路径的数量是有限的——但简单路径的数量与节点的数量成指数关系——因此,对于一个大于15-20个节点的图来说,需要花费大量的时间。此外,如果没有代码,确定“崩溃”的原因是不可能的。我的猜测是,您使用的DFS没有访问集,因为您需要所有路径-这会导致堆栈爆炸,并且取决于实现-您会遇到堆栈溢出或内存不足。但这只是猜测,Kruskal算法找到了一棵生成树。一棵树在每对节点之间只有一条简单路径。更不用说,这个答案并不能回答两个节点之间存在无限多路径的问题。好的,我在发帖后意识到了这一点。有一些算法可以找到多条路径,但就是记不住名字。我也不认为无限是正确的,因为有限数量的节点会有有限数量的路径。他需要减少一些搜索。死胡同填充器/密封器查找多条路径不,无限多的节点意味着有有限数量的简单路径-如果图形有循环-您可以根据需要多次迭代循环,这将是一条新的非简单路径。这与形式语言领域中的类似。我的问题是,在我的图中,每个公交车站位于多条线路上Ex:xyzstop名称位于路线A、B、C编号上,因此花费的时间更多以下是我的代码: