TypeError Traceback most recent call lastCell In21 line 33 30 end_node = num_nodes - 1 32 # 寻找从起点到终点经过所有景点一次的最短路径--- 33 shortest_path = nxapproximationtraveling
在networkx库中,traveling_salesman_problem()函数没有cycle_nodes这个参数。根据你的代码,你可能想使用approximation.traveling_salesman_problem()函数来解决问题。然而,该函数不支持cycle_nodes参数。
如果你想找到从起点到终点,经过所有景点一次的最短路径,可以使用approximation.traveling_salesman_problem()函数来近似解决。以下是修改后的代码示例:
import networkx as nx
# 创建有向图
G = nx.DiGraph()
# 添加节点
num_nodes = 5
G.add_nodes_from(range(num_nodes))
# 添加边和权重
G.add_edge(0, 1, weight=1)
G.add_edge(0, 2, weight=2)
G.add_edge(0, 3, weight=3)
G.add_edge(0, 4, weight=4)
G.add_edge(1, 2, weight=5)
G.add_edge(1, 3, weight=6)
G.add_edge(1, 4, weight=7)
G.add_edge(2, 3, weight=8)
G.add_edge(2, 4, weight=9)
G.add_edge(3, 4, weight=10)
# 寻找从起点到终点,经过所有景点一次的最短路径
shortest_path = nx.approximation.traveling_salesman_problem(G)
# 计算最短路径长度
path_length = sum(G[shortest_path[i]][shortest_path[i + 1]]['weight'] for i in range(num_nodes - 1))
print("最短路径:", shortest_path)
print("最短路径长度:", path_length)
这样,你就可以找到从起点到终点,经过所有景点一次的最短路径,并计算最短路径的长度。
原文地址: https://www.cveoy.top/t/topic/iPHz 著作权归作者所有。请勿转载和采集!