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' — Никакой выход к командной строке.

  • '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' — Глобальный решатель вызывает выходные функции после каждого локального запущенного решателя.

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

Для примера с помощью выходной функции смотрите Выходную функцию GlobalSearch.

Примечание

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

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

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

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

  • funccount — Общее количество функциональных оценок

  • localrunindex — Индекс локального решателя запущен

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

PlotFcn

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

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

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

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

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

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

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

Примечание

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

StartPointsToRun

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

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

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

  • 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.