Минимизируйте линейную цель под ограничениями LMI
[copt,xopt] = mincx(lmisys,c,options,xinit,target)
[copt,xopt] = mincx(lmisys,c,options,xinit,target)
решает выпуклую программу
(1) |
где x обозначает вектор скалярных переменных решения.
Система LMI описывается lmisys
. Векторная c
должна иметь ту же длину, что и x. Эта длина соответствует количеству переменных принятия решений, возвращенных функцией decnbr
. Для линейных целей, выраженных в терминах матричных переменных, адекватное c
вектор легко выведен с defcx
.
Функция mincx
возвращает глобальный минимум copt
для цели cTx, а также минимизирующее значение xopt
вектора переменных принятия решений. Соответствующие значения матричных переменных получают из xopt
с dec2mat
.
Остальные аргументы являются необязательными. Векторная xinit
является начальным предположением о минимизаторе xopt
. Он игнорируется, когда недопустимо, но может ускорить расчеты в противном случае. Обратите внимание, что xinit
должна иметь ту же длину, что и c
. Что касается target
, он устанавливает некоторую цель для целевого значения. Код прекращается, как только эта цель достигается, то есть, как только некоторые допустимые x такие, что cT<reservedrangesplaceholder1> ≤ <reservedrangesplaceholder0> найден. Задайте
options
на []
использовать xinit
и target
с опциями по умолчанию.
Необязательный аргумент options
предоставляет доступ к определенным параметрам управления кода оптимизации. В mincx
, это вектор с пятью входами, организованный следующим образом:
options(1)
устанавливает необходимую относительную точность по оптимальному значению lopt
(по умолчанию = 10-2).
options(2)
устанавливает максимальное количество итераций, разрешенное для выполнения процедурой оптимизации (100 по умолчанию).
options(3)
задает радиус допустимости. Его назначение и использование как для feasp
.
options(4)
помогает ускорить завершение. Если установлено целое значение J > 0, код завершается, когда цель cTx не уменьшилась больше, чем желаемая относительная точность во время последних итераций J.
options(5) = 1
отключает трассировку выполнения процедуры оптимизации. Сброс options(5)
к нулю (значение по умолчанию) включает его обратно.
Настройка option(i)
Значение нуля эквивалентно установке соответствующего параметра управления на его значение по умолчанию. Посмотрите feasp
для получения дополнительной информации.
В оптимизации LMI вычислительные накладные расходы на итерацию в основном исходят из решения задачи наименьших квадратов вида
где x - вектор переменных принятия решений. Для решения этой задачи используются два метода: Факторизация Холесского из ATA (по умолчанию) и QR-факторизация A, когда нормальное уравнение становится плохо обусловленным (когда оно обычно близко к решению). Сообщение
* switching to QR
отображается, когда решатель должен переключиться в QR-режим.
Поскольку QR-факторизация постепенно дороже в большинстве задач, иногда желательно предотвратить переключение на QR. Это осуществляется путем настройки options(4) = 1
. Хотя это не гарантировано для получения оптимального значения, это обычно достигает хорошего компромисса между скоростью и точностью.
Линейная алгебра на основе QR (см. выше) является не только дорогой с точки зрения вычислительных накладных расходов, но и с точки зрения требований к памяти. В результате объем памяти, требуемый QR, может превысить ваше пространство подкачки для больших проблем с многочисленными ограничениями LMI. В этом случае MATLAB® выдает ошибку
??? Error using ==> pds Out of memory. Type HELP MEMORY for your options.
Затем необходимо попросить системного менеджера увеличить пространство свопов или, если нет дополнительного пространства свопов, задать options(4) = 1
. Это предотвратит переключение на QR и mincx
завершится, когда Холецкий не справится из-за численных нестабильностей.
Решатель mincx
реализует проективный метод Нестерова и Немировского, как описано в
Нестеров, Ю и А. Немировски, Interior Point Polynomial Methods in Convex Programming: Theory and Applications, SIAM, Philadelphia, 1994.
Немировски, А. и П. Гахинет, «Проективный метод решения линейных матричных неравенств», прок. Amer. Contr. Конф., 1994, Балтимор, Мэриленд, стр. 840-844.
Оптимизацию выполняет файл MEX на C pds.mex
.