У меня есть 2 матрицы с Nx2 элементами.Любое значение представляет собой число с плавающей запятой с 8-10 десятичными знаками, и они представляют соответственно 'x' и 'y' точки.
Для любой пары элементов (x, y) (x находится в первом столбце, а y во втором) в первом массиве, мне нужно найти ближайшую точку во втором.В любом найденном цикле мне нужно удалить это значение из второго массива.
Наконец, моей главной целью было бы найти оптимальное решение, чтобы между любым элементомпервый массив только с одним элементом второго массива, так что условие ближайшего значения выполнено.
Я создал матрицу NxN, в которой я вычислил расстояние от любой точки первого массива до любой точки второго массива.через
scipy.spatial.distance.cdist
Код:
def find_nearest(X_start, X_end):
mat = scipy.spatial.distance.cdist(X_start, X_end, metric='euclidean')
new_df = pd.DataFrame(mat)
return new_df;
![enter image description here](https://i.stack.imgur.com/aTCxc.png)
Следующий шаг - связать начальную точку с конечной точкой, и пересечения НЕ должно быть, то есть сопоставление один к одному.
Я думал сделать это с помощью целочисленного программирования (используя это ).Поэтому, если m [i] [j] является элементом матрицы NxN, я нашел эти ограничения
![enter image description here](https://i.stack.imgur.com/Xp78V.png)
Проблема в том, что я незнаю, как написать целевую функцию, и поэтому я уверен, что мне нужно добавить какие-либо другие ограничения, связанные с ней.
Как вы думаете, это хороший путь для подражания?Последний вопрос, похоже, не оценили, так как я не раскрыл то, что уже сделал.
Так что вот оно.