Я использую этот фрагмент кода из здесь после изменения его, чтобы он соответствовал остальной части моего python скрипта, я думаю, что сделал эту модификацию неправильно.
positions = list_points
# Where list_points(np.array) = [[3.7440e+01 5.4121e+02] [6.1218e+02 4.9432e+02]...[3.8130e+01 3.5315e+02]]
x_sol = np.asarray(t)
# Where t = [(0.9481610257893822, 37.44, 541.21), ..., (0.9313909810893908, 49.92, 541.44)]
fig, ax = plt.subplots(2, figsize = (10,10), sharex=True, sharey=True) # Prepare 2 plots
ax[0].set_title('Raw nodes')
ax[1].set_title('Optimized tour')
ax[0].scatter(positions[:, 0], positions[:, 1]) # plot A
ax[1].scatter(positions[:, 0], positions[:, 1]) # plot B
start_node = 0
for i in range(N):
start_pos = positions[start_node]
next_node = np.argmax(x_sol[start_node])
end_pos = positions[next_node]
ax[1].annotate("",
xy=start_pos, xycoords='data',
xytext=end_pos, textcoords='data',
arrowprops=dict(arrowstyle="->",
connectionstyle="arc3"))
start_node = next_node
plt.tight_layout()
plt.show()
Потому что вместо полного связанного тура, где стрелки связывают все города в туре, при построении графика он дает:
Просто первый подключен, хотя он должен был дать что-то вроде этого: Любая помощь будет очень признательна.