sdo.optimize

Решите задачу оптимизации проекта

    Описание

    Решите задачу оптимизации, чтобы найти значения переменных проекта, которые удовлетворяют конструктивным требованиям.

    Использование sdo.optimize решить задачу оптимизации проекта следующей формы:

    minpF(p)  при ограничениях {Cleq(p)0Ceq(p)=0A×pBAeq×p=Beqlbpub

    Здесь:

    • F является стоимостью (цель).

    • p является скаляром или вектором из переменных проекта.

    • Cleq и Ceq являются нелинейным неравенством и ограничениями равенства, соответственно.

    • A и B являются линейными ограничениями неравенства.

    • Aeq и Beq являются линейными ограничениями равенства.

    • lb и ub являются нижними и верхними границами на p, соответственно.

    [optimParam,optimInfo] = sdo.optimize(optimFcn,param) использование fmincon, метод оптимизации по умолчанию, чтобы найти значения параметров optimParam это удовлетворяет требованиям, заданным в optimFcn.

    пример

    [optimParam,optimInfo] = sdo.optimize(optimFcn,param,options) решает задачу оптимизации с опциями оптимизации, заданными в options. Используйте sdo.OptimizeOptions установить эти опции.

    [optimParam,optimInfo] = sdo.optimize(prob) решает задачу оптимизации, заданную в структуре prob это содержит функцию, которая будет минимизирована, переменные проекта и опции оптимизации.

    Примеры

    свернуть все

    Решите задачу оптимизации, заданную в sdoExampleCostFunction. Функция стоимости в качестве примера включена с программным обеспечением Simulink® Design Optimization™.

    Эта функция, взятая в качестве примера, вычисляет следующую стоимость:

    f(x)=x2

    Функция также включает следующие нелинейные и линейные ограничения неравенства, соответственно:

    x2-4x+10

    2x3-30

    Для оптимизации, f(x) минимизирован согласно удовлетворению ограничениям. Функция, взятая в качестве примера, также вычисляет ограничительные градиенты и стоимость.

    Создайте переменную проекта, с помощью начального значения 1.

    p = param.Continuous('x',1);

    Задайте опции оптимизации по умолчанию, чтобы использовать fmincon решатель. В данном примере включать стоимость и ограничительную оценку градиента от sdoExampleCostFunction, установите GradFcn опция к 'on'.

    opts = sdo.OptimizeOptions;
    opts.GradFcn = 'on';

    Оптимизируйте параметр.

    [pOptim,optim_info] = sdo.optimize(@(p) sdoExampleCostFunction(p),p,opts);
     Optimization started 25-Aug-2021 19:14:26
    
                                   max                     First-order 
     Iter F-count        f(x)   constraint    Step-size    optimality
        0      3            1            0
        1      5         0.09            0          0.7         0.59
        2      6    0.0716349     0.001047       0.0324       0.0129
        3      7    0.0717968    9.127e-08     0.000302     2.37e-06
    Local minimum found that satisfies the constraints.
    
    Optimization completed because the objective function is non-decreasing in 
    feasible directions, to within the value of the optimality tolerance,
    and constraints are satisfied to within the value of the constraint tolerance.
    

    Оптимизированное значение параметров хранится в Value свойство возвращенного param.Continuous объект pOptim.

    pOptim.Value
    ans = 0.2679
    

    Входные параметры

    свернуть все

    Функция стоимости, чтобы минимизировать в виде указателя на функцию. Решатель оптимизации вызывает эту функцию во время оптимизации.

    Функция требует:

    • Один входной параметр, который является вектором из param.Continuous объекты, которые будут настроены.

      Чтобы передать дополнительные входные параметры, используйте анонимную функцию. Например, new_fcn = @(p) fcn(p,arg1,arg2,...).

    • Один выходной аргумент, который является структурой с одним или несколькими следующих полей:

      Поле Значение
      F

      Стойте (цель), оцененная в p. Решатель минимизирует F.

      F скаляр дважды.

      Cleq

      Нелинейные нарушения ограничения неравенства оценены в p. Решатель удовлетворяет Cleq (p) ≤ 0.

      Cleq является двойной m-by-1 вектор, где m является количеством нелинейных ограничений неравенства.

      Ceq

      Нелинейные нарушения ограничения равенства оценены в p. Решатель удовлетворяет Ceq (p) = 0.

      Ceq является двойной r-by-1 вектор, где r является количеством нелинейных ограничений равенства.

      leq

      Линейные нарушения ограничения неравенства оценены в p. Решатель удовлетворяет leq (p) ≤ 0.

      leq является двойной n-by-1 вектор, где n является количеством линейных ограничений неравенства.

      eq

      Линейные нарушения ограничения равенства оценены в p. Решатель удовлетворяет eq (p) = 0.

      eq является двойной s-by-1 вектор или [], где s является количеством линейных ограничений равенства.

      Чтобы задать чистую проблему выполнимости, не используйте F или набор F = []. Чтобы задать проблему минимизации, не используйте Cleq, Ceq, leq, и eq, или установленный их значения к [].

      Программное обеспечение вычисляет градиенты стоимости и нарушений ограничений с помощью числового возмущения. Если вы хотите задать, как градиенты вычисляются, включают второй выходной аргумент и устанавливают GradFcn свойство sdo.OptimizeOptions к 'on'. Этот аргумент должен быть структурой с одним или несколькими следующих полей:

      Поле Значение
      FУдвойте n-by-1 вектор, который содержит dF(p)/dp, где n является количеством скалярных параметров
      CleqУдвойте n-by-m матрица, которая содержит dCleq(p)/dp, где m является количеством нелинейных ограничений неравенства
      CeqУдвойте n-by-r матрица, которая содержит dCeq(p)/dp, где r является количеством нелинейных ограничений равенства

      Необходимо возвратить производные всей применимой цели и нарушений ограничений.

    Пример: Для примера функции стоимости, что можно оптимизировать использование Simulink® Программное обеспечение Design Optimization™, введите edit sdoExampleCostFunction в MATLAB® командное окно.

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

    Параметры модели, чтобы оптимизировать в виде param.Continuous объект или вектор из param.Continuous объекты.

    • Чтобы задать один параметр для оптимизации, используйте param.Continuous объект.

    • Чтобы задать несколько параметров для оптимизации, используйте вектор из param.Continuous объекты.

    Опции оптимизации в виде объекта, созданного с помощью sdo.OptimizeOptions. Используйте этот набор опции, чтобы задать:

    • Метод оптимизации

    • Максимальное количество итераций

    • Допуски

    Структура задачи оптимизации в виде структуры со следующими полями:

    Имя поляЗначение
    OptFcnФункция стоимости, чтобы минимизировать. Смотрите optimFcn для требований аргумента ввода и вывода этой функции.
    ParametersПараметры модели, чтобы оптимизировать в виде param.Continuous объекты.
    OptionsОпции оптимизации, созданные с sdo.OptimizeOptions.

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

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

    свернуть все

    Оптимизированные значения параметров, возвращенные как param.Continuous объект или вектор из param.Continuous объекты. Размер optimParam совпадает с размером param. Оптимизированные значения параметров хранятся в Value свойство возвращенного param.Continuous объект.

    Информация об оптимизации, возвращенная как структура с одним или несколькими следующих полей:

    Поле Значение
    FОптимизированная стоимость (цель) значение.
    Cleq

    Оптимизированные нелинейные нарушения ограничения неравенства.

    Поле появляется, если вы задаете нелинейное ограничение неравенства в optimFcn.

    Значением является m-by-1 вектор, где порядок элементов соответствует порядку, заданному в optimFcn. Положительные значения указывают, что ограничению не удовлетворяют. Проверяйте exitflag поле, чтобы подтвердить, что оптимизация, за которой следуют.

    Ceq

    Оптимизированные нелинейные нарушения ограничения равенства.

    Поле появляется, если вы задаете нелинейное ограничение равенства в optimFcn.

    Значением является двойной r-by-1 вектор, где порядок элементов соответствует порядку, заданному в optimFcn. Любые ненулевые значения указывают, что ограничению не удовлетворяют. Проверяйте exitflag поле, чтобы подтвердить, что оптимизация, за которой следуют.

    leq

    Оптимизированные линейные нарушения ограничения неравенства.

    Поле появляется, если вы задаете линейное ограничение неравенства в optimFcn.

    Значением является двойной n-by-1 вектор, где порядок элементов соответствует порядку, заданному в optimFcn. Ненулевые значения указывают, что ограничению не удовлетворяют. Проверяйте exitflag поле, чтобы подтвердить, что оптимизация, за которой следуют.

    eq

    Оптимизированные линейные нарушения ограничения равенства.

    Поле появляется, если вы задаете линейные ограничения равенства в optimFcn.

    Значением является двойной s-by-1 вектор, где порядок элементов соответствует порядку, заданному в optimFcn. Ненулевые значения указывают, что ограничению не удовлетворяют. Проверяйте exitflag поле, чтобы подтвердить, что оптимизация, за которой следуют.

    Gradients

    Стойте и ограничительные градиенты в оптимизированных значениях параметров. Смотрите, Как Алгоритм Оптимизации Формулирует проблемы Минимизации о том, как решатель вычисляет градиенты.

    Это поле появляется, если решатель задал в Method свойство sdo.OptimizeOptions вычисляет градиенты.

    Значение является структурой, поля которой зависят от optimFcn.

    Jacobian

    Якобиевская информация в оптимизированных значениях параметров.

    Поле появляется, если решатель задал в Method свойство sdo.OptimizeOptions вычисляет Якобианы.

    Значение является структурой, поля которой зависят от optimFcn.

    exitflag

    Целое число, идентифицирующее причину завершения алгоритма. Смотрите fmincon, patternsearch (Global Optimization Toolbox), fminsearch, и lsqnonlin для списка значений и соответствующих причин завершения.

    iterationsКоличество итераций оптимизации.
    SolverOutput

    Структура со специфичной для решателя выходной информацией. Поля этой структуры зависят от решателя оптимизации, заданного в Method свойство sdo.OptimizeOptions. Смотрите fmincon, patternsearch (Global Optimization Toolbox), fminsearch, и lsqnonlin для списка решателя выходные параметры и их описание.

    Stats

    Структура, которая содержит статистические данные, собранные во время оптимизации, такой как времена начала и конца, количество вычислений функции и перезапуски.

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

    Советы

    По умолчанию программное обеспечение отображает информацию об оптимизации для каждой итерации в окне команды MATLAB. Чтобы узнать больше об отображенной информации, см.:

    Можно сконфигурировать уровень этого отображения с помощью MethodOptions.Display свойство опции оптимизации установлено.

    Альтернативная функциональность

    Приложения

    Приложение Response Optimizer обеспечивает графический интерфейс, чтобы задать конструктивные требования и оптимизировать параметры модели. Для получения дополнительной информации смотрите Оптимизацию Проекта, чтобы Достигнуть Пользовательской Цели (графический интерфейс пользователя) и Оптимизация Проекта, чтобы Отследить Опорный сигнал (графический интерфейс пользователя).

    Приложение Parameter Estimator обеспечивает графический интерфейс, чтобы задать эксперименты и настроить параметры модели так, чтобы модель выводила соответствия данные об эксперименте. Для получения дополнительной информации смотрите Оценочные Значения Параметра модели (графический интерфейс пользователя).

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

    Введенный в R2011a