В примере, приведенном в https://cvxopt.org/examples/tutorial/qp.html, они дают синтаксис для ситуации, когда есть одно ограничение равенства, но у меня возникают проблемы с его правильным определением, когда у меня есть три ограничения равенства.
Как настроить несколько ограничений равенства в квадратичном программировании на python?
comment
Планируете ли вы предоставить нам какие-либо подробности о проблемах?
- person Klaus D.   schedule 13.11.2019
Ответы (1)
CVXOPT можно легко реализовать с несколькими ограничениями неравенства и равенства, и они следуют одной и той же логике.
Таким образом, для неравенства Gx ‹= h вы будете иметь
G = opt.matrix(np.concatenate([G1,Gn])
h = opt.matrix(np.concatenate([h1,hn])
Та же логика будет применяться для ограничения множественного равенства, где Ax == b, следовательно
A = opt.matrix(np.concatenate([A1,An])
b = opt.matrix(np.concatenate([b1,bn])
тогда вы можете установить решатель
sol = solvers.qp(P, q, G, h, A, b)
Единственное, что вам нужно быть осторожным, чтобы не ошибиться, - это убедиться, что вы объединяете матрицы, поэтому вам нужно преобразовать значение в матрицу.
person
Marco_sbt
schedule
13.07.2020