exponenta event banner

optimwarmstart

Создать теплый начальный объект

Описание

пример

ws = optimwarmstart(x0,options) создает теплый начальный объект ws для использования с решателем, указанным в options. Пример использования теплого стартового объекта см. в разделе Теплый стартовый квадрог.

пример

ws = optimwarmstart(x0,options,Name,Value) включает границы памяти в ws с использованием аргументов «имя-значение». Используйте границы памяти только при создании кода.

Примеры

свернуть все

Создание объекта теплого запуска по умолчанию для quadprog.

x0 = [1 3 5];
options = optimoptions('quadprog','Algorithm','active-set');
ws = optimwarmstart(x0,options)
ws = 

  QuadprogWarmStart with properties:

          X: [3×1 double]
    Options: [1×1 optim.options.Quadprog]

    Code generation limitations

Создание lsqlin объект теплого запуска для генерации кода с ограничениями памяти.

x0 = [1 3 5];
options = optimoptions('lsqlin','Algorithm','active-set');
ws = optimwarmstart(x0,options,...
    'MaxLinearEqualities',30,...
    'MaxLinearInequalities',5)

ws = LsqlinWarmStart with properties X and Options and a link "Code generation limitations"

Щелкните значок Code generation limitations для просмотра настроек памяти.

  MaxLinearEqualities: 30 
MaxLinearInequalities: 5 

Входные аргументы

свернуть все

Начальная точка, заданная как вещественный массив. Эта точка хранится в ws.X.

Пример: 10*rand(5,1)

Типы данных: double

Опции оптимизации, указанные как выходные данные optimoptions. Необходимо указать хотя бы поддерживаемый решатель. lsqlin или quadprog, и 'active-set' для и Algorithm вариант. Например, введите следующий код, чтобы указать quadprog решатель.

options = optimoptions('quadprog','Algorithm','active-set');

Эти параметры хранятся в ws.Options.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: ws = optimwarmstart(x0,options,'MaxLinearEqualities',30,'MaxLinearInequalities',5) задает до 30 линейных уравнений и 5 линейных неравенств.

Максимальное число линейных ограничений равенства, указанных как положительное целое число. Чтобы выделить достаточно памяти для ограничений равенства, укажите максимальное количество ограничений равенства в течение всего выполнения кода.

Этот аргумент используется только для создания кода без динамического выделения памяти. Необходимо использовать как этот аргумент, так и 'MaxLinearInequalities'.

Значение этого аргумента хранится в ws.MaxLinearEqualities.

Пример: 25

Типы данных: double

Максимальное число линейных ограничений неравенства, указанных как положительное целое число. Чтобы выделить достаточно памяти для ограничений неравенства, укажите максимальное количество ограничений неравенства в течение всего выполнения кода.

Этот аргумент используется только для создания кода без динамического выделения памяти. Необходимо использовать как этот аргумент, так и 'MaxLinearEqualities'.

Значение этого аргумента хранится в ws.MaxLinearInequalities.

Пример: 25

Типы данных: double

Выходные аргументы

свернуть все

Теплый начальный объект, возвращенный как LsqlinWarmStart объект или QuadprogWarmStart объект. Пример использования теплого стартового объекта см. в разделе Теплый стартовый квадрог.

ws имеет следующие свойства, доступные только для чтения:

  • X - Начальная точка

  • Options - Варианты оптимизации

  • MaxLinearEqualities - Максимальное количество линейных уравнений для генерации кода

  • MaxLinearInequalities - Максимальное количество линейных неравенств для генерации кода

Изменение любых свойств ws, воссоздать объект путем вызова optimwarmstart.

Алгоритмы

Объект теплого начала сохраняет список активных ограничений из предыдущей решенной задачи. Решатель переносит как можно больше информации об активных ограничениях для решения текущей задачи. Если предыдущая проблема слишком отличается от текущей, информация об активном наборе не используется повторно. В этом случае решатель эффективно выполняет холодный запуск, чтобы перестроить список активных ограничений.

Расширенные возможности

.
Представлен в R2021a