У меня есть этот код
import random as rand
W = 2
H = 2
n_riders = 10
n_drivers = 20
riders_coords = []
drivers_coords = []
for n in range(n_riders):
x = rand.uniform(-1,1)*W
y = rand.uniform(-1,1)*H
riders_coords.append((x, y))
for n in range(n_drivers):
x = rand.uniform(-1,1)*W
y = rand.uniform(-1,1)*H
drivers_coords.append((x, y))
print(riders_coords)
print(drivers_coords)
Я хотел бы найти способ соединить каждого водителя с ближайшим водителем (евклидово расстояние), учитывая, что один водитель может быть назначен только одному водителю , Задача состоит в том, чтобы найти такие варианты, которые минимизируют общее расстояние. Все гонщики должны быть назначены водителю, если n_riders <= n_drivers. Кто-нибудь знает простой способ добиться этого, или я должен начать рисовать полигоны вороной с нуля? </p>