Как настроить несколько ограничений равенства в квадратичном программировании на python?

В примере, приведенном в https://cvxopt.org/examples/tutorial/qp.html, они дают синтаксис для ситуации, когда есть одно ограничение равенства, но у меня возникают проблемы с его правильным определением, когда у меня есть три ограничения равенства.


person John Boland    schedule 13.11.2019    source источник
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