绘制图解旅行商问题

Plotting graph an answer to traveling-salesman problem

我需要绘制 TSP 解的图形。我正在使用 TSPLIB 95 库和 public 问题 (ch130.tsp)。

我已获得作业要求,只需 3 个基本步骤即可解决问题。

第 1 步。Select 随机开始城市和 'move' 那里。

第 2 步。Select距离当前居住城市最近的可用(未访问)城市。

第三步,如果有可用的城市,则重复第二步。

我实现了给我一个列表的代码——作为答案的路径。现在我想用我的答案绘制一个看起来接近这个的图表,但只有我的答案路径。但不知道如何。我试着做一个变量 G = tsplib95.fields.ToursField(list_of_visited_cities) 但不知道下一步该怎么做。一些代码向导可以帮助我吗?

图表生成自

problem = tsplib95.load('ch130.tsp') 
G = problem.get_graph() 
nx.draw_networkx(G) 
plt.show()

您可以使用 nx.draw_networkx_edges()edgelist 参数来仅绘制特定的边:

pos = G.nodes(data="coord")
nx.draw_networkx_nodes(G, pos)
nx.draw_networkx_labels(G, pos)
nx.draw_networkx_edges(G, pos, edgelist=list(zip(path, path[1:])))