Чтобы создать объект 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'
— No вывод к командной строке.
'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'
— Глобальный решатель вызывает выходные функции после каждого локального запущенного решателя.
сделанный
Глобальный решатель закончил вызывать локальные решатели. Поля в 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
направляет решатель, чтобы исключить определенные стартовые точки из того, чтобы быть запущенным:
все
Примите все стартовые точки.
границы
Отклоните стартовые точки, которые не удовлетворяют границы.
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.