Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.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
Python中如何在纯节点图中找到输入的节点列表的最短路径_Python_Algorithm_Graph_Path - Fatal编程技术网

Python中如何在纯节点图中找到输入的节点列表的最短路径

Python中如何在纯节点图中找到输入的节点列表的最短路径,python,algorithm,graph,path,Python,Algorithm,Graph,Path,我对图形这个话题还很陌生,所以这可能是一个已知的问题,我只是还没有找到一个合适的名字。我想解释一下。假设我们有一个有n个节点的图——存储为邻接列表。这是一个无向加权图,放置在笛卡尔平面上(因此可以得到每个节点之间的距离)。但只有顶点,没有边,如图所示: 现在,我输入一个节点列表(随机排序),例如[n2,n7,n1],算法应该找到以最小距离连接这些节点的路径,然后返回有序数组-例如[n1,n2,n7] 对我来说,这似乎与寻路算法不同,因为您正在输入一个节点列表,您知道如何实现这一点吗?谢谢大家!

我对图形这个话题还很陌生,所以这可能是一个已知的问题,我只是还没有找到一个合适的名字。我想解释一下。假设我们有一个有n个节点的图——存储为邻接列表。这是一个无向加权图,放置在笛卡尔平面上(因此可以得到每个节点之间的距离)。但只有顶点,没有边,如图所示:

现在,我输入一个节点列表(随机排序),例如
[n2,n7,n1]
,算法应该找到以最小距离连接这些节点的路径,然后返回有序数组-例如
[n1,n2,n7]


对我来说,这似乎与寻路算法不同,因为您正在输入一个节点列表,您知道如何实现这一点吗?谢谢大家!

这看起来像是旅行推销员的问题。你可以找到很多关于它的文献,但你可以从维基百科页面开始

为了适应您的问题,您可以创建一个包含所有节点的图,并添加一个与所有其他节点距离相等的任意节点,这将作为您旅行推销员的起点


旅行商问题的求解技巧取决于问题的大小、您希望接近最优解的程度、您希望算法的速度等等。

TSP不是必须在起始节点结束,从而创建一个循环吗?@SamuelV。存在变体