exponenta event banner

Поиск и опрос

Определение поиска

В patternsearch, поиск - это алгоритм, который запускается перед опросом. Поиск пытается найти точку лучше, чем текущая точка. (Лучше означает одну с меньшим значением целевой функции.) Если поиск находит лучшую точку, лучшей точкой становится текущая точка, и в этой итерации опрос не выполняется. Если поиск не находит лучшей точки, patternsearch выполняет опрос.

По умолчанию patternsearch не использует поиск. Сведения о поиске см. в разделе Как использовать метод поиска.

Рисунок patternsearch With a Search Method содержит блок-схему прямого поиска, включая использование метода поиска.

patternsearch с помощью метода поиска

Ограничение итерации применяется ко всем встроенным методам поиска, за исключением методов опроса. Если выбрать предел итерации для метода поиска, поиск будет разрешен до тех пор, пока не будет достигнут предел итерации. После этого patternsearch прекращает поиск и только опросы.

Использование метода поиска

Использование поиска в patternsearch:

  • В задаче «Оптимизировать интерактивный редактор» выберите функцию поиска в меню «Задать параметры решателя» > «Параметры алгоритма» > «Функция поиска».

  • В командной строке создайте параметры с помощью метода поиска optimoptions. Например, для использования поиска по латинскому гиперкубу:

    opts = optimoptions('patternsearch','SearchFcn',@searchlhs);

    Для получения дополнительной информации, включая список всех встроенных методов поиска, обратитесь к patternsearch страница ссылки на функцию и раздел Опции поиска (Search Options) ссылки на опции.

Можно написать собственный метод поиска. Используйте синтаксис, описанный в разделе Структура функции поиска. Чтобы использовать метод поиска в поиске шаблона, присвойте его функции дескриптор Custom Функция (SearchFcn) опцион.

Типы поиска

  • Методы опроса - в качестве алгоритма поиска можно использовать любой метод опроса. patternsearch выполняет один шаг опроса в качестве поиска. Чтобы этот тип поиска был полезным, тип поиска должен отличаться от типа опроса. (patternsearch не выполняет поиск, если выбранный метод поиска совпадает с типом опроса.) Поэтому используйте поиск MADS с опросом GSS или GPS или используйте поиск GSS или GPS с опросом MADS.

  • fminsearch, также называемый Нельдер-Мид - fminsearch только для неограниченных проблем. fminsearch выполняется в соответствии со своими естественными критериями остановки; это не занимает всего один шаг. Поэтому используйте fminsearch только для одной итерации. Это параметр по умолчанию. Сведения об изменении параметров см. в разделе Параметры поиска.

  • gaga выполняется в соответствии со своими естественными критериями остановки; это не занимает всего один шаг. Поэтому используйте ga только для одной итерации. Это параметр по умолчанию. Сведения об изменении параметров см. в разделе Параметры поиска.

  • Поиск по латинскому гиперкубу - описано в параметрах поиска. По умолчанию поиск выполняется в 15n точках, где n - количество переменных, а поиск выполняется только во время первой итерации. Сведения об изменении параметров см. в разделе Параметры поиска.

Когда использовать поиск

Существует две основные причины использования метода поиска:

Методы поиска увеличенной скорости

Как правило, вы заранее не знаете, ускоряет ли метод поиска оптимизацию или нет.

  • Вы выполняете повторную оптимизацию для аналогичных задач или для одной и той же задачи с различными параметрами.

  • Можно экспериментировать с различными методами поиска, чтобы найти меньшее время решения.

Поиск не всегда ускоряет оптимизацию. В одном примере см. Поиск и опрос.

Методы поиска лучших решений

Поскольку методы поиска выполняются до методов опроса, использование поиска может быть эквивалентно выбору другой начальной точки для оптимизации. Этот комментарий относится к Нелдер-Мид, gaи латинские методы поиска гиперкубов, которые по умолчанию выполняются один раз в начале оптимизации. ga и латинский гиперкуб поиск стохастический, и может искать через несколько бассейнов притяжения.

Связанные темы