Я пытаюсь найти оптимизированную матрицу с бинарными записями (0,1), чтобы моя объектная функция была максимизирована.Оптимизация в scipy для матрицы
My X input - это двумерная матрица с 0 и 1 элементами.
Моя целевая функция выглядит так:
def objective(x):
w=[[2,3],[4,6],[1,0],[2,8]]
return -1* (x[0][0]*w[0][0]+x[0][1]*w[0][1]+x[1][0]*w[1][0]+x[1][1]*w[1][1])
А вот моя начальная X:
x0=[[1,0],[1,0],[0,1],[0,0]]
Здесь я определить границы для X:
b=(0,1)
bnds=((b,b),(b,b))
И, наконец, проблема максимизации
sol=minimize(objective2,x0,method='SLSQP',bounds=bnds)
Но у меня есть две проблемы:
Первое: bnds имеет другое измерение, чем мой X, и я получаю сообщение об ошибке для этого. Во-вторых, когда я запускаю функцию минимизации, которую я получаю, и ошибка, которая говорит о некорректном индексе для скалярной переменной.
Я думаю, что ваш 'x0' должен быть 1d. Я ответил на недавний вопрос по этой линии. – hpaulj
@hpaulj Итак, вы имеете в виду, что нет способа, чтобы это могло быть двухмерным? – HimanAB
Это не серьезное ограничение, так как вы можете разгадать и изменить его в своей функции по мере необходимости. – hpaulj