Создание 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и Создать объект, для которого MultiStart.
MaxTime свойство описывает допуск для количества секунд с момента запуска решателя. Решатели останавливаются, когда видят MaxTime с начала пробега прошли секунды. Время означает настенные часы в отличие от циклов процессора. Значение по умолчанию: Inf.
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 алгоритм мог выполнить некоторые оценки функций, которые не были частью локального решателя. Дополнительные сведения см. в разделе Алгоритм, используемый при поиске.
Пример использования функции вывода см. в разделе Выходная функция, выполняющая поиск.
Примечание
Функции вывода и печати не выполняются, когда MultiStart имеет UseParallel параметр имеет значение true и есть открытая parpool.
optimValues Structure. 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и Создать объект, для которого MultiStart.
Количество потенциальных начальных точек для изучения в дополнение к x0 от problem структура. GlobalSearch запускает только те потенциальные точки запуска, которые прошли несколько тестов. Дополнительные сведения см. в разделе Алгоритм, используемый при поиске.
По умолчанию: 1000
Количество начальных точек в стадии 1. Дополнительные сведения см. в разделе Получение начальной точки этапа 1, выполнение.
По умолчанию: 200
Положительный целочисленный допуск, появляющийся в нескольких точках алгоритма.
Если наблюдаемая функция штрафа MaxWaitCycle последовательные пробные баллы - это, по крайней мере, порог штрафа, а затем порог штрафа увеличивается (см. ThresholdFactor).
Если MaxWaitCycle последовательные пункты испытания находятся в бассейне, затем обновляют радиус того бассейна (см. BasinRadiusFactor).
По умолчанию: 20
Радиус бассейна уменьшается после MaxWaitCycle последовательные начальные точки находятся в пределах бассейна. Радиус бассейна уменьшается в 1- раз.BasinRadiusFactor.
По умолчанию: 0.2
Множитель для определения того, находится ли пробная точка в существующем бассейне притяжения. Дополнительные сведения см. в разделе Изучение пробной точки на этапе 2, чтобы узнать, выполняется ли fmincon. По умолчанию: 0.75
Определяет увеличение порога штрафа. Дополнительные сведения см. в разделе Реакция на значения больших счетчиков.
По умолчанию: 0.2
UseParallel определяет, распределяет ли решатель начальные точки нескольким процессорам:
false (по умолчанию) - Не выполнять параллельно.
true - Выполнять параллельно.
Чтобы решатель работал параллельно, необходимо настроить параллельную среду с помощью parpool. Дополнительные сведения см. в разделе Использование параллельной обработки в инструментарии глобальной оптимизации.