Квадратичное программирование на 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
,