Поиск и опрос

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

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

По умолчанию, patternsearch не использует поиск. Чтобы искать, смотрите, Как Использовать Метод поиска.

Фигура patternsearch С Методом поиска содержит блок-схему прямого поиска включая использование метода поиска.

patternsearch С Методом поиска

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

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

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

  • В Оптимизировать задаче Live Editor выберите поисковую функцию в Specify solver options > Algorithm settings > Search function.

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

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

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

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

Поисковые типы

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

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

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

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

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

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

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

Обычно вы не знаете заранее, ускоряет ли метод поиска оптимизацию или нет. Так попробуйте метод поиска когда:

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

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

Поиск не всегда ускоряет оптимизацию. Для одного примера, где это делает, смотрите Поиск и Опрос.

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

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

Похожие темы