В patternsearch
, search является алгоритмом, который запускается перед опросом. Поиск пытается определить местоположение лучшей точки, чем текущая точка. (Лучше означает один с более низким значением целевой функции.), Если поиск находит лучшую точку, лучшая точка становится текущей точкой, и никакой опрос не сделан в той итерации. Если поиск не находит лучшую точку, patternsearch
выполняет опрос.
По умолчанию, patternsearch
не использует поиск. Чтобы искать, смотрите, Как Использовать Метод поиска.
Фигура patternsearch С Методом поиска содержит блок-схему прямого поиска включая использование метода поиска.
patternsearch С Методом поиска
Iteration limit применяется ко всем встроенным методам поиска кроме тех, которые являются методами опроса. Если вы выбираете предел итерации для метода поиска, поиск включен, пока предел итерации не достигнут. Позже, patternsearch
поиск в остановках и только опрашивает.
Использовать поиск в patternsearch
:
В приложении Оптимизации выберите Search method в панели Search.
В командной строке создайте опции с методом поиска с помощью 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
всего для одной итерации. Это - настройка по умолчанию. Чтобы изменить настройки, смотрите Параметры поиска.
ga
— ga
запуски к его естественному критерию остановки; не делает всего одного шага. Поэтому используйте ga
всего для одной итерации. Это - настройка по умолчанию. Чтобы изменить настройки, смотрите Параметры поиска.
Латинский поиск гиперкуба — Описанный в Параметрах поиска. По умолчанию, поисковые запросы 15n точки, где n является количеством переменных, и только ищет во время первой итерации. Чтобы изменить настройки, смотрите Параметры поиска.
Существует две главных причины использовать метод поиска:
Ускорить оптимизацию (см. Методы поиска для Увеличенной Скорости),
Получить лучшее локальное решение или получить глобальное решение (см. Методы поиска для Лучших Решений),
Обычно вы не знаете заранее, ускоряет ли метод поиска оптимизацию или нет. Так попробуйте метод поиска когда:
Вы выполняете повторенную оптимизацию на подобных проблемах, или на той же проблеме различными параметрами.
Можно экспериментировать с различными методами поиска найти более низкое время решения.
Поиск не всегда ускоряет оптимизацию. Для одного примера, где это делает, смотрите Поиск и Опрос.
Начиная с методов поиска, запущенных, прежде чем, методы опроса, с помощью поиска могут быть эквивалентны выбору различной начальной точки для оптимизации. Этот комментарий содержит для Nelder-меда, ga
, и латинские методы поиска гиперкуба, все из которых, по умолчанию, запускаются однажды в начале оптимизации. ga
и латинские поисковые запросы гиперкуба являются стохастическими, и могут перерыть несколько областей притяжения.