Набор опций оптимизации для sdo.optimize
функция
Использование sdo.OptimizeOptions
объект, чтобы задать опции для решения задачи оптимизации проекта с помощью sdo.optimize
функция. Можно задать опции, такие как метод решателя, опции решателя и использование параллельных вычислений во время оптимизации.
создает набор опций по умолчанию для решения задачи оптимизации проекта с помощью opt
= sdo.OptimizeOptionssdo.optimize
функция. Чтобы изменить свойства этого набора опций для вашего конкретного приложения, используйте запись через точку.
создает набор опций со свойствами, заданными с помощью одного или нескольких аргументов в виде имя-значение.opt
= sdo.OptimizeOptions(Name,Value
)
Method
- Оптимизационный решатель'fmincon'
(по умолчанию) | 'fminsearch'
| 'lsqnonlin'
| 'patternsearch'
Оптимизационный решатель, который sdo.optimize
используется для решения задачи оптимизации, заданной как одно из следующих значений:
'fmincon'
'fminsearch'
'lsqnonlin'
'patternsearch'
(требуется программное обеспечение Global Optimization Toolbox)
Для получения дополнительной информации об этих решателях см. документацию Optimization Toolbox™ и Global Optimization Toolbox.
MethodOptions
- Опции решателя оптимизации[1x1 optim.options.Fmincon]
(по умолчанию) | объект опций, созданный с помощью optimoptions
Опции решателя оптимизации, заданные как объект опций оптимизации, созданные с помощью optimoptions
. Опции сконфигурированы на основе Method
свойство. Потому что 'fmincon'
является методом оптимизационного решателя по умолчанию, значение по умолчанию для этого свойства является optimoptions
объект для fmincon
решатель. Для получения информации о доступных опциях решателя оптимизации смотрите:
Опции оптимизации при Method
задается как 'fmincon'
, 'fminsearch'
, или 'lsqnonlin'
Опции поиска шаблона (Global Optimization Toolbox) при Method
задается как 'patternsearch'
Чтобы изменить опции решателя, используйте запись через точку. Для примера, opt.MethodOptions.StepTolerance = 1.5e-3
.
Restarts
- Количество раз для перезапуска оптимизации0
(по умолчанию) | неотрицательное целое число Количество раз для перезапуска оптимизации, если критерии сходимости не удовлетворены, заданное как неотрицательное целое число. При каждом перезапуске начальные значения настраиваемых параметров устанавливаются на окончательное значение предыдущего запуска оптимизации.
StopIfFeasible
- Опция остановить оптимизацию, когда найдено допустимое решение'on'
(по умолчанию) | 'off'
Опция остановить оптимизацию, когда найдено возможное решение, удовлетворяющее ограничениям, заданная как одно из следующих значений:
'on'
- Завершите работу, как только будет найдено возможное решение.
'off'
- Продолжите поиск решений, которые обычно расположены дальше внутри области ограничений.
Программа игнорирует эту опцию, когда вы отслеживаете опорный сигнал или у вашей проблемы есть затраты.
GradFcn
- Опция для возврата информации о градиенте из функции затрат или ограничений'off'
(по умолчанию) | 'on'
Опция, чтобы указать, что стоимость или ограничительная функция, которую вы предоставляете sdo.optimize
предоставляет информацию о градиенте, заданную как одно из следующих значений:
'off'
- Ваша функция затрат или ограничений не предоставляет информацию о градиенте. Программа использует центральные различия для вычисления градиентов.
'on'
- Ваша функция затрат или ограничений предоставляет информацию о градиенте в качестве одного из выходных аргументов.
UseParallel
- Опция параллельных вычисленийfalse
или 0
(по умолчанию) | true
или 1
Опция параллельных вычислений для fmincon
, lsqnonlin
, и patternsearch
решатели оптимизации, заданные как один из следующих:
false
или 0
- Не используйте параллельные вычисления во время оптимизации.
true
или 1
- Используйте параллельные вычисления во время оптимизации.
Программное обеспечение Parallel Computing Toolbox™ должно быть установлено, чтобы включить параллельные вычисления для методов оптимизации.
Когда установлено значение true
методы вычисляют следующее параллельно:
fmincon
- Конечные градиенты различия
lsqnonlin
- Конечные градиенты различия
patternsearch
- Оценка опросов и поисковых наборов
Примечание
Параллельные вычисления не поддерживаются fminsearch
.
Для параллельных вычислений задайте сценарий симуляции для Simulink® модель для оптимизации как sdo.SimulationTest
объект в OptimizedModel
свойство. Можно задать зависимости файла модели в ParallelFileDependencies
свойство, или можно задать пути к зависимостям в ParallelPathDependencies
свойство, при необходимости.
ParallelFileDependencies
- Зависимости файла, используемые во время параллельной оптимизации{}
(по умолчанию) | массив ячеек из векторов символовЗависимости файла для использования во время параллельной оптимизации, заданные как массив ячеек из векторов символов. Каждый вектор символов может задать или абсолютный, или относительный путь к файлу. Эти файлы копируются в рабочие окна во время параллельной оптимизации. Использовать sdo.getModelDependencies
для поиска зависимостей модели Simulink.
Пример: opt.ParallelFileDependencies = {'C:\matlab\work\file1.m','C:\matlab\myProject\file2.m'}
ParallelPathDependencies
- Пути к зависимостям, используемым во время параллельной оптимизации{}
(по умолчанию) | массив ячеек из векторов символовПути к зависимостям для использования во время параллельной оптимизации, заданные как массив ячеек из векторов символов. Если вы не хотите копировать файлы в рабочие места, используйте это свойство вместо ParallelFileDependencies
свойство. Эти зависимости пути временно добавляются работникам во время параллельной оптимизации. Использовать sdo.getModelDependencies
для поиска зависимостей модели Simulink.
Пример: opt.ParallelPathDependencies = {'C:\matlab\work','C:\matlab\myProject'}
OptimizedModel
- Имя модели Simulink для оптимизации''
(по умолчанию) | sdo.SimulationTest
объект | вектор символовИмя модели 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')
Все значения свойств, которые вы не задаете, остаются равными их значениям по умолчанию.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.