sdo.OptimizeOptions

Набор опций оптимизации для sdo.optimize функция

    Описание

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

    Создание

    Описание

    пример

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

    пример

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

    Свойства

    расширить все

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

    • 'fmincon'

    • 'fminsearch'

    • 'lsqnonlin'

    • 'patternsearch' (требуется программное обеспечение Global Optimization Toolbox)

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

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

    Чтобы изменить опции решателя, используйте запись через точку. Для примера, 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: ''
    
    

    Можно изменить опции решателя, используя запись через точку. Для примера установите алгоритм решателя в метод Левенберга-Марквардта.

    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