Создать GlobalSearch
или MultiStart
объект со свойствами не по умолчанию, используйте пары "имя-значение". Например, чтобы создать GlobalSearch
объект, который имеет итеративное отображение и запускается только от допустимых точек относительно границ и неравенств, входит
gs = GlobalSearch('Display','iter', ... 'StartPointsToRun','bounds-ineqs');
Установить свойство существующего GlobalSearch
или MultiStart
объект, используйте запись через точку. Например, если ms
MultiStart
объект, и вы хотите установить Display
свойство к 'iter'
, войти
ms.Display = 'iter';
Чтобы установить несколько свойств существующего объекта одновременно, используйте конструктора (GlobalSearch
или MultiStart
) с парами "имя-значение". Например, чтобы установить Display
свойство к 'iter'
и MaxTime
свойство к 100
, войти
ms = MultiStart(ms,'Display','iter','MaxTime',100);
Для получения дополнительной информации об установке свойств см. Изменяющиеся Глобальные Опции.
Можно создать MultiStart
объект от GlobalSearch
возразите и наоборот.
Синтаксис для создания нового объекта от существующего объекта:
ms = MultiStart(gs); or gs = GlobalSearch(ms);
Новый объект содержит свойства, которые применяются старого объекта. В этом разделе описываются те разделяемые свойства:
Значения для Display
свойство:
'final'
(значение по умолчанию) — Сводные данные заканчиваются к командной строке после последнего запущенного решателя.
'off'
— Никакой выход к командной строке.
'iter'
— Сводные данные заканчиваются к командной строке после каждого локального запущенного решателя.
FunctionTolerance
свойство описывает, как близко два значения целевой функции должны быть для решателей, чтобы считать их идентичными для создания вектора локальных решений. Установите FunctionTolerance
к 0
получить результаты каждого локального запущенного решателя. Установите FunctionTolerance
к большему значению, чтобы иметь меньше результатов.
Решатели считают два решения идентичными, если они в XTolerance
расстояние друг друга и имеет значения целевой функции в FunctionTolerance
друг из друга. Если оба условия не соблюдают, решатели сообщают о решениях как отличных. Допуски являются относительными, не абсолютными. Для получения дополнительной информации смотрите Когда Запуски fmincon для GlobalSearch
, и создайте объект GlobalOptimSolution для MultiStart
.
MaxTime
свойство описывает допуск на номере секунд, поскольку решатель начал свой запуск. Решатели останавливаются, когда они видят MaxTime
секунды передали с начала запуска. Время означает настенные часы в противоположность циклам процессора. Значением по умолчанию является Inf
.
OutputFcn
свойство направляет глобальный решатель, чтобы запустить одну или несколько выходных функций после того, как каждый локальный запущенный решатель завершится. Выходные функции также запускаются, когда глобальный решатель запускается и заканчивается. Включайте указатель на выходную функцию, написанную в соответствующем синтаксисе, или включайте массив ячеек таких указателей. Значением по умолчанию является пустая запись ([]
).
Синтаксис выходной функции:
stop = outFcn(optimValues,state)
stop
булевская переменная. Когда true
, остановки алгоритма. Когда false
, алгоритм продолжается.
Локальный решатель может иметь выходную функцию. Глобальный решатель не обязательно останавливается, когда локальная выходная функция решателя вызывает локальный решатель, запущенный, чтобы остановиться. Если вы хотите, чтобы глобальный решатель остановился в этом случае, имейте глобальную остановку выходной функции решателя когда optimValues.localsolution.exitflag=-1
.
optimValues
структура, описанная в optimValues Структуре.
state
текущее состояние глобального алгоритма:
'init'
— Глобальный решатель не вызвал локальный решатель. Поля в optimValues
структура пуста, за исключением localrunindex
, который является 0
, и funccount
, который содержит количество цели и ограничительных оценок функции.
'iter'
— Глобальный решатель вызывает выходные функции после каждого локального запущенного решателя.
'done'
— Глобальный решатель закончил вызывать локальные решатели. Поля в optimValues
обычно имейте те же значения как те от вызова функции окончательного результата с state
='iter'
. Однако значение optimValues.funccount
для GlobalSearch
может быть больше, чем значение в последнем вызове функции с 'iter'
, потому что GlobalSearch
алгоритм может выполнить некоторые функциональные оценки, которые не были частью локального решателя. Для получения дополнительной информации см. Алгоритм GlobalSearch.
Для примера с помощью выходной функции смотрите Выходную функцию GlobalSearch.
Выведите и функции построения графика не запускаются когда MultiStart
имеет UseParallel
набор опции к true
и существует открытый parpool
.
Структура optimValues. optimValues
структура содержит следующие поля:
bestx
— Текущая лучшая точка
bestfval
— Значение целевой функции в bestx
funccount
— Общее количество функциональных оценок
localrunindex
— Индекс локального решателя запущен
localsolution
— Структура, содержащая часть выхода локального вызова решателя: X
fval
и Exitflag
PlotFcn
свойство направляет глобальный решатель, чтобы запустить одну или несколько функций построения графика после того, как каждый локальный запущенный решатель завершится. Включайте указатель на функцию построения графика, написанную в соответствующем синтаксисе, или включайте массив ячеек таких указателей. Значением по умолчанию является пустая запись ([]
).
Синтаксис функции построения графика совпадает с синтаксисом выходной функции. Для получения дополнительной информации смотрите OutputFcn.
Существует две предопределенных функции построения графика для глобальных решателей:
@gsplotbestf
строит лучшее значение целевой функции.
@gsplotfunccount
строит количество функциональных оценок.
Для примера с помощью функции построения графика смотрите Функцию построения графика MultiStart.
Если вы задаете больше чем одну функцию построения графика, все графики появляются как подграфики в том же окне. Щелкните правой кнопкой по любому подграфику, чтобы получить увеличенную версию в отдельном окне рисунка.
Выведите и функции построения графика не запускаются когда MultiStart
имеет UseParallel
набор опции к true
и существует открытый parpool
.
StartPointsToRun
свойство направляет решатель, чтобы исключить определенные стартовые точки из того, чтобы быть запущенным:
all
— Примите все стартовые точки.
bounds
— Отклоните стартовые точки, которые не удовлетворяют границам.
bounds-ineqs
— Отклоните стартовые точки, которые не удовлетворяют границам или ограничениям неравенства.
XTolerance
свойство описывает, как близко две точки должны быть для решателей, чтобы считать их идентичными для создания вектора локальных решений. Установите XTolerance
к 0
получить результаты каждого локального запущенного решателя. Установите XTolerance
к большему значению, чтобы иметь меньше результатов. Решатели вычисляют расстояние между парой точек с norm
, Евклидово расстояние.
Решатели считают два решения идентичными, если они в XTolerance
расстояние друг друга и имеет значения целевой функции в FunctionTolerance
друг из друга. Если оба условия не соблюдают, решатели сообщают о решениях как отличных. Допуски являются относительными, не абсолютными. Для получения дополнительной информации смотрите Когда Запуски fmincon для GlobalSearch
, и создайте объект GlobalOptimSolution для MultiStart
.
Количество потенциальных стартовых точек, чтобы исследовать в дополнение к x0
от problem
структура. GlobalSearch
запуски только те потенциальные стартовые точки, которые проходят несколько тестов. Для получения дополнительной информации см. Алгоритм GlobalSearch.
Значение по умолчанию: 1000
Количество стартовых точек на Этапе 1. Для получения дополнительной информации смотрите, Получают Стартовую точку Этапа 1, Запуск.
Значение по умолчанию: 200
Положительный целочисленный допуск, появляющийся в нескольких точках в алгоритме.
Если наблюдаемая функция штрафа MaxWaitCycle
последовательные испытательные точки являются, по крайней мере, порогом штрафа, затем повысьте порог штрафа (см. PenaltyThresholdFactor).
Если MaxWaitCycle
последовательные испытательные точки находятся в области, затем обновляют радиус той области (см. BasinRadiusFactor).
Значение по умолчанию: 20
Радиус области уменьшается после MaxWaitCycle
последовательные стартовые точки в области. Радиус области уменьшается фактором 1–BasinRadiusFactor
.
Значение по умолчанию: 0.2
Множитель для определения, является ли испытательная точка в существующей области притяжения. Для получения дополнительной информации смотрите, Исследуют Испытательную Точку Этапа 2, чтобы Видеть если Запуски fmincon. Значение по умолчанию: 0.75
Определяет увеличение порога штрафа. Для получения дополнительной информации смотрите, Реагируют на Большие Встречные Значения.
Значение по умолчанию: 0.2
UseParallel
свойство определяет, распределяет ли решатель стартовые точки нескольким процессорам:
false
(значение по умолчанию) — не запускается параллельно.
true
runInParallel.
Для решателя, чтобы запустить параллельно вас должен настроить параллельную среду с parpool
. Для получения дополнительной информации смотрите, Как Использовать Параллельную обработку в Global Optimization Toolbox.