Решите квадратичную задачу программирования, используя алгоритм активного набора
Используя mpcActiveSetSolver
можно решить квадратичную задачу программирования (QP), используя алгоритм активного набора. Эта функция обеспечивает доступ к встроенному решателю Model Predictive Control Toolbox™ активному набору QP.
Использование решателя с активной установкой может обеспечить быструю и устойчивую эффективность для задач оптимизации малого и среднего масштаба как с двойной, так и с одинарной точностью.
Этот решатель полезен для:
Расширенные приложения MPC, которые выходят за рамки программного обеспечения Model Predictive Control Toolbox.
Пользовательские приложения QP, включая приложения, которые требуют генерации кода.
Также можно получить доступ к встроенной QP- решателя внутренней точки с помощью mpcInteriorPointSolver
.
Алгоритм KWIK требует, чтобы матрица Гессия H быть положительно определенной. При вычислении Linv
, использовать chol
функция.
[L,p] = chol(H,'lower');
Если p
= 0, затем H
положительно определено. В противном случае p
является положительным целым числом.
mpcActiveSetSolver
предоставляет доступ к решателю QP с активным набором по умолчанию, используемому программным обеспечением Model Predictive Control Toolbox. Используйте эту команду, чтобы решить проблемы QP в собственных пользовательских приложениях MPC. Для примера пользовательского приложения MPC, использующего mpcActiveSetSolver
, см. «Решение пользовательской квадратичной задачи программирования MPC и генерация кода».
mpcActiveSetSolver
решает задачу QP с помощью метода active-set, алгоритма KWIK, основанного на [1]. Для получения дополнительной информации см. Раздел «Решатели QP».
[1] Шмид, С. и Л.Т. Биглер. «Квадратичные методы программирования для сокращенного гессианского SQP». Компьютеры и химическая техника 18, № 9 (сентябрь 1994): 817-32. https://doi.org/10.1016/0098-1354 (94) E0001-4.
mpcActiveSetOptions
| mpcInteriorPointSolver
| quadprog
(Optimization Toolbox)