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

Как задать свойства

Как создать GlobalSearch или MultiStart объект со свойствами nondefault, используйте пары "имя-значение". Например, чтобы создать 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

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

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

MaxTime

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

OutputFcn

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

Синтаксис выходной функции:

stop = outFcn(optimValues,state)
  • stop является логическим. Когда trueалгоритм останавливается. Когда false, алгоритм продолжается.

    Примечание

    Локальный решатель может иметь выходную функцию. Глобальный решатель не обязательно останавливается, когда выходная функция локального решателя заставляет локальный решатель останавливаться. Если вы хотите, чтобы глобальный решатель остановился в этом случае, остановите выходную функцию глобального решателя, когда optimValues.localsolution.exitflag=-1.

  • optimValues - структура, описанная в optimValues Structure.

  • state - текущее состояние глобального алгоритма:

    • 'init' - Глобальный решатель не вызвал локальный решатель. Поля в optimValues структура пуста, кроме localrunindex, что 0, и funccount, который содержит количество объективных и ограничительных вычислений функции.

    • 'iter' - Глобальный решатель вызывает выходные функции после каждого запуска локального решателя.

    • 'done' - Глобальный решатель закончил вызов локальных решателей. Поля в optimValues обычно имеют те же значения, что и таковые от последнего вызова выходной функции с state= 'iter'. Однако значение optimValues.funccount для GlobalSearch может быть больше, чем значение в последнем вызове функции с 'iter', потому что GlobalSearch алгоритм мог выполнить некоторые вычисления функции, которые не были частью локального решателя. Для получения дополнительной информации см. «Алгоритм глобального поиска».

Для примера, использующего выходную функцию, см. GlobalSearch Output Function.

Примечание

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

Структура optimValues.  The optimValues структура содержит следующие поля:

  • bestx - Текущая лучшая точка

  • bestfval - Значение целевой функции в bestx

  • funccount - Общее количество вычислений функции

  • localrunindex - Индекс выполнения локального решателя

  • localsolution - структура, содержащая часть выхода вызова локального решателя: X, Fval и Exitflag

PlotFcn

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

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

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

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

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

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

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

Примечание

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

StartPointsToRun

The StartPointsToRun свойство предписывает решателю исключить из выполнения определенные стартовые точки:

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

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

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

XTolerance

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

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

Свойства GlobalSearch

NumTrialPoints

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

По умолчанию: 1000

NumStageOnePoints

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

По умолчанию: 200

MaxWaitCycle

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

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

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

По умолчанию: 20

BasinRadiusFactor

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

По умолчанию: 0.2

DistanceThresholdFactor

Умножитель для определения, находится ли пробная точка в существующей области притяжения. Для получения дополнительной информации смотрите Исследуйте пробную точку этапа 2, чтобы увидеть, работает ли fmincon. По умолчанию: 0.75

PenaltyThresholdFactor

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

По умолчанию: 0.2

Свойства MultiStart

UseParallel

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

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

  • true - Прокрутка параллельно.

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