После того, как вы запустите глобальный решатель, вы можете хотеть изменить некоторые глобальные или локальные опции. Чтобы определить, какие опции измениться, руководящий принцип:
Чтобы влиять на локальный решатель, установите локальные опции решателя.
Чтобы влиять на стартовые точки или набор решения, измените problem структура или набор глобальные свойства объектов решателя.
Например, чтобы получить:
Больше локальных минимумов — глобальные свойства объектов решателя Набора.
Быстрее локальные итерации решателя — Набор локальные опции решателя.
Различные допуски к рассмотрению идентичных локальных решений (чтобы получить больше или меньше локальных решений) — глобальные свойства объектов решателя Набора.
Различная информация, отображенная в командной строке — Решает, хотите ли вы итеративное отображение от локального решателя (установите локальные опции решателя), или глобальная информация (глобальные свойства объектов решателя набора).
Различные границы, чтобы исследовать различные области — Набор границы в problem структура.
Чтобы запустить ваш локальный решатель в точках, только удовлетворяющих ограничениям неравенства, установите StartPointsToRun свойство в глобальном решателе возражает против 'bounds-ineqs'. Эта установка может ускорить ваше решение, поскольку локальные решатели не должны пытаться найти точки, удовлетворяющие этим ограничениям. Однако установка может привести ко многим меньше локальных запусков решателя, поскольку глобальный решатель может отклонить много стартовых точек. Для примера смотрите, Оптимизируют Только Используя Выполнимые Стартовые точки.
Использовать fmincon interior-point алгоритм, набор локальный решатель Algorithm опция к 'interior-point'. Для примера, показывающего, как сделать это, смотрите Примеры Обновляющихся проблемных Опций.
Для вашего локального решателя, чтобы иметь различные границы, установите границы в problem структура. Исследуйте различные области путем установки границ.
Чтобы видеть каждое решение, которое имеет положительный локальный выходной флаг, устанавливает XTolerance свойство в глобальном решателе возражает против 0. Для примера, показывающего, как сделать это, см. Изменяющиеся Глобальные Опции.
Существует несколько способов изменить значения в локальных опциях:
Обновите значения с помощью записи через точку и optimoptions. Синтаксис
problem.options = optimoptions(problem.options,'Parameter',value,...);
Можно также заменить локальные опции полностью:
problem.options = optimoptions(@solvername,'Parameter',value,...);
Используйте запись через точку на одной локальной опции. Синтаксис
problem.options.Parameter = newvalue;
Воссоздайте целую структуру задачи. Для получения дополнительной информации смотрите, Создают Структуру задачи.
Создайте структуру задачи:
problem = createOptimProblem('fmincon','x0',[-1 2], ...
'objective',@rosenboth);Установите проблему использовать sqp алгоритм в fmincon:
problem.options.Algorithm = 'sqp';
Обновите проблему использовать градиент в целевой функции, иметь FunctionTolerance значение 1e-8, и XTolerance значение 1e-7:
problem.options = optimoptions(problem.options,'GradObj','on', ...
'FunctionTolerance',1e-8,'XTolerance',1e-7);Существует несколько способов изменить характеристики GlobalSearch или MultiStart объект:
Используйте запись через точку. Например, предположите, что у вас есть MultiStart по умолчанию объект:
ms = MultiStart
ms =
MultiStart with properties:
UseParallel: 0
Display: 'final'
FunctionTolerance: 1.0000e-06
MaxTime: Inf
OutputFcn: []
PlotFcn: []
StartPointsToRun: 'all'
XTolerance: 1.0000e-06Изменить ms иметь его XTolerance значение, равное 1e-3, обновите XTolerance поле :
ms.XTolerance = 1e-3
ms =
MultiStart with properties:
UseParallel: 0
Display: 'final'
FunctionTolerance: 1.0000e-06
MaxTime: Inf
OutputFcn: []
PlotFcn: []
StartPointsToRun: 'all'
XTolerance: 1.0000e-03Восстановите объект, начинающий с текущих настроек. Например, чтобы установить FunctionTolerance поле в ms к 1e-3, сохранение значения не по умолчанию для XTolerance:
ms = MultiStart(ms,'FunctionTolerance',1e-3)
ms =
MultiStart with properties:
UseParallel: 0
Display: 'final'
FunctionTolerance: 1.0000e-03
MaxTime: Inf
OutputFcn: []
PlotFcn: []
StartPointsToRun: 'all'
XTolerance: 1.0000e-03Преобразуйте GlobalSearch возразите против MultiStart объект, или наоборот. Например, с ms объект от предыдущего примера, создайте GlobalSearch объект с теми же значениями XTolerance и FunctionTolerance:
gs = GlobalSearch(ms)
gs =
GlobalSearch with properties:
NumTrialPoints: 1000
BasinRadiusFactor: 0.2000
DistanceThresholdFactor: 0.7500
MaxWaitCycle: 20
NumStageOnePoints: 200
PenaltyThresholdFactor: 0.2000
Display: 'final'
FunctionTolerance: 1.0000e-03
MaxTime: Inf
OutputFcn: []
PlotFcn: []
StartPointsToRun: 'all'
XTolerance: 1.0000e-03