У меня есть массив из 'n' узлов, скажем P, с некоторыми инициализированными значениями:
P = {x1,x2,x3,...,xn} [size is n x 1]
У меня есть матрица M
размера (n x n)
, в которой есть веса для каждой пары n(i)
и n(j)
, и я хочу оценить следующую целевую функцию:
objFN = minimize[P*M*P^T] (where P^T is P-transpose)
Я следую упомянутому примеру здесь
Для этого я использую каноническая форма вышеприведенного матричного представления квадратичной c формы, то есть:
objFN = minimize[SUM(m(i,j)*(x(i)-x(j))^2]
where m(i,j) is the weight of the pair x(i)-x(j) from the matrix M
Я инициализирую массив P
с некоторыми значениями, которые завершатся до некоторого другого значения после минимизации квадратичной суммы c. Но я не могу понять, как сохранить значения веса m(i,j)
постоянными и, тем не менее, дистанцией для каждой пары переменных решения в массиве P
?
Границы для каждой переменной решения (0,1)
PS -> Я пытаюсь понять дальнейшие действия, желательно с примером, используя набор инструментов на основе Python, такой как Platypus и Yabox. Я уже попробовал оптимизацию Scipy, установив границы для фиксированных весов, скажем, со значением q, равным (q,q)
, а для остальных переменных - (0,1)
. Но в конце я увидел, что оптимизация не учитывает границы для фиксированных переменных. Я считаю, что Platypus и Yabox более согласованы с точки зрения постановки задачи оптимизации. Я задал этот вопрос на Maths Stackexchange, но я не получил никакого ответа, поэтому разместил здесь.