Решение проблемы квадратичного программирования с помощью алгоритма active-set
Используя mpcActiveSetSolver, можно решить задачу квадратичного программирования (QP) с помощью алгоритма активного набора. Эта функция обеспечивает доступ к встроенному решателю QP «Управление предсказанием модели» (Model Predictive Control Toolbox™ active-set 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 с помощью метода активного набора, алгоритма KWIK, основанного на [1]. Дополнительные сведения см. в разделе Решатели QP.
[1] Шмид, C. и Л.Т. Биглер. «Квадратичные методы программирования для сокращенного гессенского SQP». Computers & Chemical Engineering 18, No 9 (сентябрь 1994 года): 817-32. https://doi.org/10.1016/0098-1354 (94) E0001-4.
mpcActiveSetOptions | mpcInteriorPointSolver | quadprog (Панель инструментов оптимизации)