Я получаю сообщение об ошибке при попытке выполнить свою функцию. Я думаю, что это связано с вычислением расстояния между двумя координатами. Например, [5,2] и [6,7], он не может рассчитать расстояние между этими координатами.
Вот мой код:
import math
import copy
def calculate_distance(starting_x, starting_y, destination_x, destination_y):
distance = math.hypot(destination_x - starting_x, destination_y - starting_y) # calculates Euclidean distance (straight-line) distance between two points
return distance
def nearest_neighbour_algorithm(selected_map):
temp_map = copy.deepcopy(selected_map)
optermised_map = []
optermised_map.append(temp_map.pop())
for x in range(len(temp_map)):
nearest_value = 1000
neares_index = 0
for i in range(len(temp_map[x])):
current_value = calculate_distance(*optermised_map[x], *temp_map[x])
if nearest_value > current_value:
nearest_value = current_value
nearest_index = i
optermised_map.append(temp_map[nearest_index])
del temp_map[nearest_index]
return optermised_map
copy_map = generate_map_1(200,200,5)
print("Map Points: ", copy_map)
print("Nearest Neighbour: ", nearest_neighbour_algorithm(copy_map))
Проблема здесь:
current_value = calculate_distance(optermised_map[x] - temp_map[i])
Я пытаюсь передать 2 координаты моей функции вычисления расстояния, но это не так я не могу это сделать, так как я получаю сообщение об ошибке