Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.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
Algorithm 算法:10个城市之间的最短旅行路线_Algorithm_Shortest Path_Heuristics_Minimum Spanning Tree - Fatal编程技术网

Algorithm 算法:10个城市之间的最短旅行路线

Algorithm 算法:10个城市之间的最短旅行路线,algorithm,shortest-path,heuristics,minimum-spanning-tree,Algorithm,Shortest Path,Heuristics,Minimum Spanning Tree,我有一张80个城市的图表。我需要找到一条穿过10个城市的最短路线 我必须从一个已经定义为起始城市的城市开始,用户将从城市列表中输入10个城市名称。我必须旅行这10个城市,然后我必须回到我开始的城市。我只知道相邻城市之间道路距离的所有信息,除此之外我没有其他信息 我知道Dijkstra等人找到了两个城市之间的最短路径,一些启发式算法需要更多的数据 我可以用Dijkstra求起点城市和其他10个城市之间的最短路径,然后找到该路径的最小生成树并遍历它吗?是否有任何启发式算法可用于此数据?给定您的10个

我有一张80个城市的图表。我需要找到一条穿过10个城市的最短路线

我必须从一个已经定义为起始城市的城市开始,用户将从城市列表中输入10个城市名称。我必须旅行这10个城市,然后我必须回到我开始的城市。我只知道相邻城市之间道路距离的所有信息,除此之外我没有其他信息

我知道Dijkstra等人找到了两个城市之间的最短路径,一些启发式算法需要更多的数据


我可以用Dijkstra求起点城市和其他10个城市之间的最短路径,然后找到该路径的最小生成树并遍历它吗?是否有任何启发式算法可用于此数据?

给定您的10个城市,找出每对城市之间的最短路径。只有45次调用Dijkstra的算法。这将为您提供10个顶点的完整图形

现在你有一个旅行推销员的问题,但是10个城市并不多,而且你得到了起始城市,所以只有9个!362880种可能性。我只需尝试所有排列,然后找到最小的排列

您可以做一些更聪明的事情,但这个简单的暴力解决方案将是快速和易于编码


[编辑:也许你有一个起始城市和10个其他城市。不过,10!3728800足够小,可以让搜索每个排列足够快]

给定你的10个城市,找出每对城市之间的最短路径。只有45次调用Dijkstra的算法。这将为您提供10个顶点的完整图形

现在你有一个旅行推销员的问题,但是10个城市并不多,而且你得到了起始城市,所以只有9个!362880种可能性。我只需尝试所有排列,然后找到最小的排列

您可以做一些更聪明的事情,但这个简单的暴力解决方案将是快速和易于编码


[编辑:也许你有一个起始城市和10个其他城市。不过,10!3728800足够小,可以让搜索每个排列足够快]

在事先准备好10/11城市子图之后,这听起来像是一个经典,有很多资源可用。如果您的图不完整,您可能会给缺失边带来非常高的成本,如果不能保证,您可能会在以后检查可行性。检查这是否适合您的问题,并可能采用整数规划方法。@sascha是正确的。此问题至少与TSP一样困难,如果您有任何有关图形结构的其他信息,请与我们共享。除非你们愿意接受一个近似值,否则你们需要使用蛮力。谢谢你们的评论。我们并没有关于图的结构类型的信息。我们只知道这个图基本上以矩阵的形式代表了所有的城市,它们的相邻城市和道路成本。我想我们正在试图解决同样的问题。昨天问,仍然没有回答。我使用的是APSP算法和Java的GraphStream库。在事先准备好10/11城市子图之后,这听起来像是一个经典,有很多资源可用。如果您的图不完整,您可能会给缺失边带来非常高的成本,如果不能保证,您可能会在以后检查可行性。检查这是否适合您的问题,并可能采用整数规划方法。@sascha是正确的。此问题至少与TSP一样困难,如果您有任何有关图形结构的其他信息,请与我们共享。除非你们愿意接受一个近似值,否则你们需要使用蛮力。谢谢你们的评论。我们并没有关于图的结构类型的信息。我们只知道这个图基本上以矩阵的形式代表了所有的城市,它们的相邻城市和道路成本。我想我们正在试图解决同样的问题。昨天问,仍然没有回答。我使用的是APSP算法和Java的GraphStream库。Dijkstra的算法可以找到从源到图中所有其他节点的最短路径,因此您只需在每个源上运行它,Dijkstra的算法寻找从源到图中所有其他节点的最短路径,因此只需在每个源上运行,而不是在每对城市上运行。