Я хочу минимизировать стандартное отклонение средних расстояний между точками 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
- суммирование элементов из столбца x = 1 : нет потерянной точки B и когда точка B связана с точкой A она не может быть связана с другой точкой A
- каждая точка A должна быть связана с одинаковым количеством точек B (2 точки A и 10 точек B -> каждая точка A будет связана с 5 Точки B)
Может ли кто-нибудь дать мне подсказку, как достичь этой цели с помощью шифрованный пакет? У меня возникли некоторые трудности с реализацией ограничений. Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/792 ... ion-matrix
Мобильная версия