GlobalSearch и свойства MultiStart (опции)

Как установить свойства

Чтобы создать объект 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 описывает, как близко два значения целевой функции должны быть для решателей, чтобы считать их идентичными для создания вектора локальных решений. Установите FunctionTolerance на 0 получать результаты каждого локального запущенного решателя. Установите FunctionTolerance на большее значение иметь меньше результатов.

Решатели считают два решения идентичными, если они на расстоянии XTolerance друг друга и имеют значения целевой функции в FunctionTolerance друг друга. Если оба условия не соблюдают, решатели сообщают о решениях как отличных. Допуски являются относительными, не абсолютными. Для получения дополнительной информации смотрите, Когда Выполнения fmincon для GlobalSearch, и Создадут Объект GlobalOptimSolution для MultiStart.

MaxTime

Свойство MaxTime описывает допуск на номере секунд, поскольку решатель начал свое выполнение. Решатели останавливаются, когда они видят, что секунды MaxTime передают с начала выполнения. Время означает настенные часы в противоположность циклам процессора. Значением по умолчанию является Inf.

'OutputFcn'

Свойство 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

Свойство PlotFcn направляет глобальный решатель, чтобы запустить одну или несколько функций построения графика после того, как каждый локальный запущенный решатель завершится. Включайте указатель на функцию построения графика, написанную в соответствующем синтаксисе, или включайте массив ячеек таких указателей. Значением по умолчанию является пустая запись ([]).

Синтаксис функции построения графика совпадает с синтаксисом выходной функции. Для получения дополнительной информации смотрите OutputFcn.

Существует две предопределенных функции построения графика для глобальных решателей:

  • @gsplotbestf строит лучшее значение целевой функции.

  • @gsplotfunccount строит количество функциональных оценок.

Для примера с помощью функции построения графика смотрите Функцию построения графика MultiStart.

Если вы задаете больше чем одну функцию построения графика, все графики появляются как подграфики в том же окне. Щелкните правой кнопкой по любому подграфику, чтобы получить увеличенную версию в отдельном окне рисунка.

Примечание

Выведите и функции построения графика не запускаются, когда MultiStart установили опцию UseParallel на true и существует открытый parpool.

StartPointsToRun

Свойство StartPointsToRun направляет решатель, чтобы исключить определенные стартовые точки из того, чтобы быть запущенным:

  • все Примите все стартовые точки.

  • границы Отклоните стартовые точки, которые не удовлетворяют границы.

  • bounds-ineqs — Отклоните стартовые точки, которые не удовлетворяют границы или ограничения неравенства.

XTolerance

Свойство XTolerance описывает, как близко две точки должны быть для решателей, чтобы считать их идентичными для создания вектора локальных решений. Установите XTolerance на 0 получать результаты каждого локального запущенного решателя. Установите XTolerance на большее значение иметь меньше результатов. Решатели вычисляют расстояние между парой точек с norm, Евклидово расстояние.

Решатели считают два решения идентичными, если они на расстоянии XTolerance друг друга и имеют значения целевой функции в FunctionTolerance друг друга. Если оба условия не соблюдают, решатели сообщают о решениях как отличных. Допуски являются относительными, не абсолютными. Для получения дополнительной информации смотрите, Когда Выполнения fmincon для GlobalSearch, и Создадут Объект GlobalOptimSolution для MultiStart.

Свойства GlobalSearch

NumTrialPoints

Количество потенциальных стартовых точек, чтобы исследовать в дополнение к x0 от структуры problem. GlobalSearch запускает только те потенциальные стартовые точки, которые проходят несколько тестов. Для получения дополнительной информации см. Алгоритм GlobalSearch.

Значение по умолчанию: 1000

NumStageOnePoints

Количество стартовых точек на Этапе 1. Для получения дополнительной информации смотрите, Получают Стартовую точку Этапа 1, Выполнение.

Значение по умолчанию: 200

MaxWaitCycle

Положительный целочисленный допуск, появляющийся в нескольких точках в алгоритме.

  • Если наблюдаемая функция штрафа MaxWaitCycle, последовательные испытательные точки являются, по крайней мере, порогом штрафа, то повысьте порог штрафа (см. PenaltyThresholdFactor).

  • Если MaxWaitCycle, последовательные испытательные точки находятся в бассейне, то обновляют радиус того бассейна (см. BasinRadiusFactor).

Значение по умолчанию: 20

BasinRadiusFactor

Радиус бассейна уменьшается после MaxWaitCycle последовательные стартовые точки в бассейне. Радиус бассейна уменьшается фактором 1–BasinRadiusFactor.

Значение по умолчанию: 0.2

DistanceThresholdFactor

Множитель для определения, является ли испытательная точка в существующем бассейне привлекательности. Для получения дополнительной информации смотрите, Исследуют Испытательную Точку Этапа 2, чтобы Видеть если Выполнения fmincon. Значение по умолчанию: 0.75

PenaltyThresholdFactor

Определяет увеличение порога штрафа. Для получения дополнительной информации смотрите, Реагируют на Большие Встречные Значения.

Значение по умолчанию: 0.2

Свойства MultiStart

'UseParallel'

Свойство UseParallel определяет, распределяет ли решатель стартовые точки нескольким процессорам:

  • false (значение по умолчанию) — не запускается параллельно.

  • tRUE RunInParallel.

Для решателя, чтобы запустить параллельно вас должен настроить параллельную среду с parpool. Для получения дополнительной информации смотрите, Как Использовать Параллельную обработку в Global Optimization Toolbox.