Решите квадратичную задачу программирования, используя алгоритм активного набора
Используя 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)