В patternsearch
, a search является алгоритмом, который запускается перед опросом. Поиск пытается найти лучшую точку, чем текущая точка. (Лучше означает один с более низким значением целевой функции.) Если поиск находит лучшую точку, лучшая точка становится текущей точкой, и никакого опроса на этой итерации не выполняется. Если поиск не находит лучшую точку, patternsearch
выполняет опрос.
По умолчанию, patternsearch
не использует поиск. Для поиска см. раздел «Как использовать метод поиска».
pattersearch рисунка With a Search Method содержит график прямого поиска, включая использование метода поиска.
pattersearch с методом поиска
Iteration limit применяется ко всем встроенным методам поиска, кроме методов опроса. Если для метода поиска выбран предел итерации, поиск активируется до достижения предела итерации. После этого, patternsearch
останавливает поиск и только опрашивает.
Как использовать поиск в patternsearch
:
В задаче Optimize Live Editor выберите функцию поиска в Specify solver options > Algorithm settings > Search function.
В командной строке создайте опции с методом поиска с помощью optimoptions
. Для примера, чтобы использовать латинский поиск гиперкуба:
opts = optimoptions('patternsearch','SearchFcn',@searchlhs);
Для получения дополнительной информации, включая список всех встроенных методов поиска, обратитесь к patternsearch
function страницы с описанием и раздел Search Options ссылки на опции.
Можно написать свой собственный метод поиска. Используйте синтаксис, описанный в Structure of the Search Function. Чтобы использовать свой метод поиска в поиске шаблона, передайте его указатель на функцию как Custom
Function (SearchFcn
) опция.
Методы опроса - Вы можете использовать любой метод опроса в качестве алгоритма поиска. patternsearch
проводит один шаг опроса как поиск. Чтобы этот тип поиска был полезным, ваш тип поиска должен отличаться от вашего типа опроса. (patternsearch
не выполняет поиск, если выбранный метод поиска совпадает с типом опроса.) Поэтому используйте поиск MADS с опросом GSS или GPS или поиск GSS или GPS с опросом MADS.
fminsearch
, также называемый Нельдер-Мид - fminsearch
предназначен только для задач без ограничений. fminsearch
выполняется до его естественных критериев остановки; это не делает всего лишь одного шага. Поэтому используйте fminsearch
всего за одну итерацию. Это значение по умолчанию. Для изменения настроек см. раздел «Опции поиска».
ga
— ga
выполняется до его естественных критериев остановки; это не делает всего лишь одного шага. Поэтому используйте ga
всего за одну итерацию. Это значение по умолчанию. Для изменения настроек см. раздел «Опции поиска».
Латинский поиск гиперкуба - Описан в опциях поиска. По умолчанию поиск 15 n точках, где n - количество переменных, и выполняется только во время первой итерации. Для изменения настроек см. раздел «Опции поиска».
Существует две основные причины использовать метод поиска:
Чтобы ускорить оптимизацию (см. Методы поиска для повышенной скорости)
Чтобы получить лучшее локальное решение или получить глобальное решение (см. Методы поиска для лучших решений)
Как правило, вы не знаете заранее, ускоряет ли метод поиска оптимизацию или нет. Так что попробуйте метод поиска, когда:
Вы выполняете повторную оптимизацию для аналогичных задач или для той же задачи с различными параметрами.
Можно экспериментировать с различными методами поиска, чтобы найти меньшее время решения.
Поиск не всегда ускоряет оптимизацию. Для одного примера, где это так, смотрите Поиск и Опрос.
Поскольку методы поиска выполняются перед методами опроса, использование поиска может быть эквивалентно выбору другой начальной точки для оптимизации. Этот комментарий относится к Nelder-Mead, ga
, и латинские методы поиска гиперкуба, все из которых по умолчанию запуск один раз в начале оптимизации. ga
и латинские гиперкубы являются стохастическими и могут искать через несколько областей притяжения.