sdo.OptimizeOptions

Опция оптимизации установлена для sdo.optimize функция

    Описание

    Используйте sdo.OptimizeOptions объект задать опции для решения задачи оптимизации проекта с помощью sdo.optimize функция. Можно задать опции, такие как метод решателя, опции решателя и использование параллельных вычислений во время оптимизации.

    Создание

    Описание

    пример

    opt = sdo.OptimizeOptions создает набор опции по умолчанию для решения задачи оптимизации проекта с помощью sdo.optimize функция. Чтобы изменить свойства этого набора опции для вашего определенного приложения, используйте запись через точку.

    пример

    opt = sdo.OptimizeOptions(Name,Value) создает набор опции со свойствами, заданными с помощью одних или нескольких аргументов name-value.

    Свойства

    развернуть все

    Решатель оптимизации это sdo.optimize использование, чтобы решить задачу оптимизации в виде одного из следующих значений:

    • 'fmincon' — Значение по умолчанию для оптимизации проекта, основанного на производной метода, позволяет нелинейные ограничения и границы параметра

    • 'fminsearch' — Метод без производных

    • 'lsqnonlin' — Значение по умолчанию для оценки параметра, работает с градиентом невязки между выходом модели и данными, позволяет границы параметра

    • 'patternsearch' — Метод без производных, позволяет нелинейные ограничения, и границы параметра (требует программного обеспечения Global Optimization Toolbox),

    • 'surrogateopt' — Основанный на суррогате метод, позволяет нелинейные ограничения, требует границ параметра (требует программного обеспечения Global Optimization Toolbox),

    Смотрите Optimization Toolbox™ и документацию Global Optimization Toolbox для получения дополнительной информации об этих решателях.

    Опции решателя оптимизации в виде объекта опций оптимизации, созданное использование optimoptions. Опции сконфигурированы на основе Method свойство. Поскольку 'fmincon' метод решателя оптимизации по умолчанию, значением по умолчанию для этого свойства является optimoptions объект для fmincon решатель. Для получения информации о доступных опциях решателя оптимизации консультируйтесь с таблицей опций для своего решателя на основе Method заданный:

    Чтобы изменить опции решателя, используйте запись через точку. Например, opt.MethodOptions.StepTolerance = 1.5e-3.

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

    Опция, чтобы остановить оптимизацию однажды возможное решение удовлетворяющие ограничения найдена в виде одного из следующих значений:

    • 'on' — Оконечный, когда скоро возможное решение найдено.

    • 'off' — Продолжите искать решения, которые обычно располагаются далее в области ограничений.

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

    Опция, чтобы указать, что стоимость или ограничение функционируют, вы обеспечиваете к sdo.optimize предоставляет информацию о градиенте в виде одного из следующих значений:

    • 'off' — Ваша функция стоимости или ограничения не предоставляет информацию о градиенте. Программное обеспечение использует центральные различия, чтобы вычислить градиенты.

    • 'on' — Ваша функция стоимости или ограничения предоставляет информацию о градиенте как один из ее выходных аргументов.

    Опция параллельных вычислений для fmincon, lsqnonlin, и patternsearch решатели оптимизации в виде одного из следующего:

    • false или 0 — Не используйте параллельные вычисления во время оптимизации.

    • true или 1 — Используйте параллельные вычисления во время оптимизации.

    Программное обеспечение Parallel Computing Toolbox™ должно быть установлено, чтобы включить параллельные вычисления для методов оптимизации.

    Когда установлено в true, методы вычисляют следующее параллельно:

    • fmincon — Градиенты конечной разности

    • lsqnonlin — Градиенты конечной разности

    • patternsearch — Опросите и ищите оценку набора

    Примечание

    Параллельные вычисления не поддерживаются для fminsearch.

    Для параллельных вычислений задайте сценарий симуляции для Simulink® модель, чтобы оптимизировать как sdo.SimulationTest объект в OptimizedModel свойство. Можно задать зависимости от файла модели в ParallelFileDependencies свойство, или можно задать пути к зависимостям в ParallelPathDependencies свойство, в случае необходимости.

    Зависимости от файла, чтобы использовать во время параллельной оптимизации в виде массива ячеек из символьных векторов. Каждый вектор символов может задать или абсолютный или относительный путь к файлу. Эти файлы копируются в рабочих во время параллельной оптимизации. Использование sdo.getModelDependencies найти зависимости модели Simulink.

    Пример: opt.ParallelFileDependencies = {'C:\matlab\work\file1.m','C:\matlab\myProject\file2.m'}

    Пути к зависимостям, чтобы использовать во время параллельной оптимизации в виде массива ячеек из символьных векторов. Если вы не хотите копировать файлы в рабочих, используйте это свойство вместо ParallelFileDependencies свойство. Эти зависимости от пути временно добавляются к рабочим во время параллельной оптимизации. Использование sdo.getModelDependencies найти зависимости модели Simulink.

    Пример: opt.ParallelPathDependencies = {'C:\matlab\work','C:\matlab\myProject'}

    Имя модели Simulink, чтобы оптимизировать в виде любого sdo.SimulationTest возразите или вектор символов с именем модели.

    Задайте OptimizedModel как sdo.SimulationTest объект при использовании обеих параллельной оптимизации (UseParallel = true) и fastRestart.

    Программное обеспечение Parallel Computing Toolbox должно быть установлено, чтобы включить параллельную оптимизацию.

    Пример: Simulator = sdo.SimulationTest('model_demo')

    Функции объекта

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

    Примеры

    свернуть все

    Создайте sdo.OptimizeOptions по умолчанию опция установлена.

    opt = sdo.OptimizeOptions;

    Задайте опции с помощью записи через точку.

    opt.Method = 'lsqnonlin';
    opt.GradFcn = 'on';

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

    Создайте объект набора опции, который задает решатель оптимизации нелинейного метода наименьших квадратов как его метод решения.

    opt = sdo.OptimizeOptions('Method','lsqnonlin')
    opt = 
      OptimizeOptions with properties:
    
                          Method: 'lsqnonlin'
                   MethodOptions: [1x1 optim.options.Lsqnonlin]
                        Restarts: 0
                  StopIfFeasible: 'on'
                         GradFcn: 'off'
                     UseParallel: 0
        ParallelPathDependencies: {}
        ParallelFileDependencies: {}
                  OptimizedModel: ''
    
    

    Можно изменить опции решателя с помощью записи через точку. Например, установите алгоритм решателя для метода Levenberg-Marquardt.

    opt.MethodOptions.Algorithm = 'levenberg-marquardt';

    Просмотрите опции метода.

    opt.MethodOptions
    ans = 
      lsqnonlin options:
    
       Options used by current Algorithm ('levenberg-marquardt'):
       (Other available algorithms: 'trust-region-reflective')
    
       Set properties:
                       Algorithm: 'levenberg-marquardt'
                         Display: 'iter'
               FunctionTolerance: 1.0000e-03
          MaxFunctionEvaluations: Inf
                   MaxIterations: 100
        SpecifyObjectiveGradient: 1
                   StepTolerance: 1.0000e-03
    
       Default properties:
                  CheckGradients: 0
        FiniteDifferenceStepSize: 'sqrt(eps)'
            FiniteDifferenceType: 'forward'
                       OutputFcn: []
                         PlotFcn: []
                        TypicalX: 'ones(numberOfVariables,1)'
                     UseParallel: 0
    
       Show options not used by current Algorithm ('levenberg-marquardt')
    
    

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

    Введенный в R2011a