Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 最快路径算法_Java_Algorithm_Permutation_Dijkstra - Fatal编程技术网

Java 最快路径算法

Java 最快路径算法,java,algorithm,permutation,dijkstra,Java,Algorithm,Permutation,Dijkstra,我需要想办法解决这个问题。我正在使用Java,但现在这并不重要。我不需要任何代码,因为我必须自己做。我只需要一些关于算法的建议,因为我找不到任何快速的方法来做这件事。我的解决方案在编译时花费了太长时间 问题是: 有4个城市。每一条都有从一条到另一条的不同路线,总共16条路线 从城市1到城市4不同于从城市4到城市1所有路线都是单向的,这就是为什么它们有不同的值 我有每条道路的规定时间清单,总共16次。实际上,该列表将由用户在程序启动时键入,但您可以假设我现在有该列表 在我们获得所需的时间后,用户选

我需要想办法解决这个问题。我正在使用Java,但现在这并不重要。我不需要任何代码,因为我必须自己做。我只需要一些关于算法的建议,因为我找不到任何快速的方法来做这件事。我的解决方案在编译时花费了太长时间

问题是:

有4个城市。每一条都有从一条到另一条的不同路线,总共16条路线

从城市1到城市4不同于从城市4到城市1所有路线都是单向的,这就是为什么它们有不同的值

我有每条道路的规定时间清单,总共16次。实际上,该列表将由用户在程序启动时键入,但您可以假设我现在有该列表

在我们获得所需的时间后,用户选择开始和结束城市,程序必须找到该旅行的最短持续时间

例如:

这是一张旅行持续时间表。irow x jcolumn和这些值显示了从i到j城市的旅行持续时间

当用户输入4 2,即从城市4到城市2时,作为答案的输出应为14

但是当用户输入2 1时,作为答案的输出应该是133+10。首先从2号城市到4号城市需要3个小时,然后从4号城市到1号城市需要10个小时,总共需要13个小时

因此,选择的路线不需要是直达路线,两个城市之间可以使用任意数量的路线,但使用最快的方式

这个4x4表只是4个城市的一个例子。这也是我所有的。该算法应适用于最多100个城市。在填写每个城市之间的旅行持续时间表之前,用户将键入城市数

我可能会为4个城市找到一个解决方案,但它不适用于100个城市。我还用java尝试了置换方法,但正如我所说的,编译花费的时间太长了。不过,编译过程不会超过4秒


对不起,我的问题冗长乏味,但我希望有人能提出一个有用的建议。

我已经找到了解决方法,所以我自己来回答这个问题。我已经设法通过编辑我找到的代码使它工作。它的运行速度非常快且完美无瑕。

这是纯形式的经典。使用Dijkstra的算法HMI尝试了Dijkstra的算法,但由于数字太大,编译需要花费很长时间。看看我问题的最后一部分,这个算法必须适用于100个城市。如果这个算法要花很长时间,那么你就错了。这是相当有效的。找到Dijkstra的算法。找到最短路径和成本的最佳方法
0  18 15 8
18 0  7  3
7  16 0  19
10 14 19 0