Scipy Minimize с логической матрицей решенийPython

Программы на Python
Ответить
Anonymous
 Scipy Minimize с логической матрицей решений

Сообщение Anonymous »

У меня есть матрица расстояний между двумя наборами точек (наборами A и B). Каждая точка A связана с равным количеством точек B (если возможно).
Я хочу минимизировать стандартное отклонение средних расстояний между точками A и связанными с ними точками B.
Моя целевая функция следующая:

Код: Выделить всё

from scipy.optimize import minimize

def objective( x , distances ):

decision_matrix = x.reshape( distances.shape[0] , distances.shape[1] )

avg_distances = np.sum( distances * decision_matrix , axis = 1 ) / np.sum( decision_matrix , axis = 1 )

std_distances = np.std( avg_distances )

return std_distances
где x — матрица решений с 0 или 1: 0 нет связи между точкой A и точкой B, 1 связь.
Я хотел бы реализовать следующие ограничения:
  • элемент матрицы x равен 0 или 1
  • суммирование элементов из столбца x = 1 : нет потерянной точки B и когда точка B связана с точкой A она не может быть связана с другой точкой A
  • каждая точка A должна быть связана с одинаковым количеством точек B (2 точки A и 10 точек B -> каждая точка A будет связана с 5 Точки B)
Моя цель — получить пару точек A и B при заданных ограничениях, минимизирующих целевую функцию.
Может ли кто-нибудь дать мне подсказку, как достичь этой цели с помощью шифрованный пакет? У меня возникли некоторые трудности с реализацией ограничений. Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/792 ... ion-matrix
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»