Я пытаюсь решить проблему QP с помощью cvxopt.Есть два ограничения
0 <= y <= b wy = 0 </p>
Поэтому я определяю
p=np.diag(-np.ones(len(myset))
p1=np.diag(np.ones(len(myset)))
dd=np.concatenate((p,p1),axis=0)
, которые представляют собой две единичные матрицы, которые позволяют мне определить:
-y <= 0 </p>
Я также пишу
v=np.concatenate((zero,b),axis=0)
, в котором 'zero' - это массив, который имеет размерность (len (set), 1), а также b, и, соответственно, является моей нижней и верхней границей для переменной y.Я определяю G и h:
G=matrix(dd)
h=matrix(v)
Но когда я печатаю решение, значения для y также являются отрицательными, поэтому он полностью игнорирует ограничение, накладывающее на y положительное значение.Может ли кто-нибудь помочь мне, пожалуйста?
Я напечатал матрицу G, h и A, b и был охарактеризован всеми нулевыми значениями, поэтому в определении этой матрицы есть ошибка?