Квадратичное программирование на Python с помощью CVXOPT

Я ищу полное руководство по формулировке задачи квадратичного программирования CVXOPT с квадратичными ограничениями. Здесь представлены хорошие документы:

Постановка проблемы, с которой я имею дело, идентична проблеме здесь:

введите описание изображения здесь

Как должна выглядеть матрица G? Я сформулировал как систему линейных уравнений, но, глядя на примеры, это не кажется правильным?

Лучший ресурс, который я нашел, это https://courses.csail.mit.edu/6.867/wiki/images/a/a7/Qp-cvxopt.pdf, но ссылки в конце не нужны для дальнейшего чтения.

У меня есть ноутбук ipython, пытающийся использовать этот метод программирования, но он постоянно терпит неудачу: https://gist.github.com/jaredvacanti/62010beda0ccfc20d2eac3c900858e50

Изменить: я отредактировал файл источника данных в записной книжке, чтобы обеспечить доступ к реальным данным, используемым в этой задаче оптимизации.

1 ответ

В записной книжке, которую вы разместили, похоже, все выяснено. Проблема у меня в том, что исходный файл для данных недоступен.

Теперь к вашему вопросу:

Как должна выглядеть матрица G? Я сформулировал как систему линейных уравнений, но, глядя на примеры, это не кажется правильным?

Перепишите ваши "линейные уравнения" в матричную форму, т.е.

2x + 2y = 4
x  - y  = 1

эквивалентно

matrix([[2,2],[1,-1]]) * matrix([[x],[y]])  = matrix([[4],[1]])

где matrix из cvxopt,

Другие вопросы по тегам