В этом разделе описываются характеристики решателя Global Optimization Toolbox. Раздел включает рекомендации для получения результатов эффективнее.
Чтобы достигнуть лучше или более быстрые решения, сначала попытайтесь настроить рекомендуемые решатели путем установки подходящих вариантов или границ. Если результаты являются неудовлетворительными, попробуйте другие решатели.
| Требуемое решение | Сглаживайте цель и ограничения | Не сглаживайте цель или ограничения |
|---|---|---|
| Объяснение “требуемого решения” | Выбор между решателями для сглаженных проблем | Выбор между решателями для несглаженных проблем |
| Одно локальное решение | Функции Optimization Toolbox™; см. Таблицу решений Оптимизации (Optimization Toolbox) | fminbnd, patternsearch, fminsearch, ga, particleswarm, simulannealbnd, surrogateopt |
| Несколько локальных решений | GlobalSearch, MultiStart | patternsearch, ga, particleswarm, simulannealbnd или surrogateopt, запущенный с нескольких начальной буквы, указывают x0 или с нескольких начального населения |
| Одно глобальное решение | GlobalSearch, MultiStart, patternsearch, particleswarm, ga, simulannealbnd, surrogateopt | patternsearch, ga, particleswarm, simulannealbnd, surrogateopt |
| Одно локальное решение с помощью параллельной обработки | MultiStart, функции Optimization Toolbox | patternsearch, ga, particleswarm, surrogateopt |
| Несколько локальных решений с помощью параллельной обработки | MultiStart | patternsearch, ga или particleswarm, запущенный с нескольких начальной буквы, указывают x0 или с нескольких начального населения |
| Одно глобальное решение с помощью параллельной обработки | MultiStart | patternsearch, ga, particleswarm, surrogateopt |
Чтобы понять значение условий в “Требуемом решении”, рассмотрите пример
f (x) =100x2 (1–x) 2–x,
который имеет локальные минимумы x1 около 0 и x2 около 1:

Минимумы расположены в:
fun = @(x)(100*x^2*(x - 1)^2 - x);
x1 = fminbnd(fun,-0.1,0.1)
x1 =
0.0051
x2 = fminbnd(fun,0.9,1.1)
x2 =
1.0049Описание условий
| Термин | Значение |
|---|---|
| Одно локальное решение | Найдите одно локальное решение, точка x, где целевая функция f (x) является локальным минимумом. Для получения дополнительной информации смотрите Локальный по сравнению с Глобальными оптимумами. В примере и x1 и x2 являются локальными решениями. |
| Несколько локальных решений | Найдите набор локальных решений. В примере полным набором локальных решений является {x1,x2}. |
| Одно глобальное решение | Найдите точку x, где целевая функция f (x) является глобальным минимумом. В примере глобальным решением является x2. |
Попробуйте GlobalSearch сначала. Это больше всего фокусируется на нахождении глобального решения и имеет эффективный локальный решатель, fmincon.
Попробуйте MultiStart затем. Это имеет эффективные локальные решатели и может искать большое разнообразие стартовых точек.
Попробуйте patternsearch затем. Это менее эффективно, поскольку это не использует градиенты. Однако patternsearch устойчив и более эффективен, чем остающиеся локальные решатели, Чтобы искать глобальное решение, запустить patternsearch со множества стартовых точек.
Попробуйте surrogateopt затем за связано ограниченные проблемы. surrogateopt пытается найти глобальное решение с помощью наименьшего количества оценок целевой функции. surrogateopt имеет больше служебное на функциональную оценку, чем большинство других решателей. Можно также попробовать surrogateopt другими типами ограничений; смотрите Суррогатную Оптимизацию с Нелинейным Ограничением.
Попробуйте particleswarm затем, если ваша проблема неограничена или только связала ограничения. Обычно, particleswarm более эффективен, чем остающиеся решатели и может быть более эффективным, чем patternsearch.
Попробуйте ga затем. Это может обработать все типы ограничений и обычно более эффективно, чем simulannealbnd.
Попробуйте simulannealbnd в последний раз. Это может решить проблемы без ограничений или связанных ограничений. simulannealbnd обычно является наименее эффективным решателем. Однако, учитывая достаточно медленное расписание охлаждения, это может найти глобальное решение.
GlobalSearch и MultiStart оба предоставляют несколько локальных решений. Для синтаксиса, чтобы получить несколько решений, смотрите Несколько Решений. GlobalSearch и MultiStart отличаются по следующим характеристикам:
MultiStart может найти больше локальных минимумов. Это вызвано тем, что GlobalSearch отклоняет много сгенерированных стартовых точек (начальные точки для локального решения). По существу GlobalSearch принимает стартовую точку только, когда он решает, что точка имеет хороший шанс получения глобального минимума. Напротив, MultiStart передает все сгенерированные стартовые точки локальному решателю. Для получения дополнительной информации см. Алгоритм GlobalSearch.
MultiStart предлагает выбор локального решателя: fmincon, fminunc, lsqcurvefit или lsqnonlin. Решатель GlobalSearch использует только fmincon в качестве своего локального решателя.
GlobalSearch использует поля точек алгоритм поиска для генерации стартовых точек. Напротив, MultiStart генерирует точки однородно наугад в границах или позволяет вам обеспечивать свои собственные точки.
MultiStart может запуститься параллельно. Смотрите, Как Использовать Параллельную обработку в Global Optimization Toolbox.
Выберите применимый решатель с самым низким номером. Для проблем с целочисленными ограничениями используйте ga.
Используйте fminbnd сначала на одномерных ограниченных задачах только. fminbnd доказуемо сходится быстро в одной размерности.
Используйте patternsearch на любом другом типе проблемы. patternsearch доказуемо сходится и обрабатывает все типы ограничений.
Попробуйте surrogateopt за связано ограниченные проблемы, которые имеют длительные целевые функции. surrogateopt ищет глобальное решение. Можно также попробовать surrogateopt другими типами ограничений; смотрите Суррогатную Оптимизацию с Нелинейным Ограничением.
Попробуйте fminsearch затем за низко-размерные неограниченные проблемы. fminsearch не является столь же общим как patternsearch и может не сходиться. Для низко-размерных проблем прост в использовании fminsearch, поскольку он имеет немного настраивающихся опций.
Попробуйте particleswarm затем на неограниченных или связано ограниченных проблемах. particleswarm имеет мало теории поддержки, но часто является эффективным алгоритмом.
Попробуйте ga затем. ga имеет мало теории поддержки и часто менее эффективен, чем patternsearch или particleswarm. Это обрабатывает все типы ограничений. ga является единственным решателем, который обрабатывает целочисленные ограничения.
Попробуйте simulannealbnd в последний раз за неограниченные проблемы, или за проблемы с границами. simulannealbnd доказуемо сходится только для логарифмического расписания охлаждения, которое является чрезвычайно медленным. simulannealbnd берет только связанные ограничения и часто менее эффективен, чем ga.
| Решатель | Сходимость | Характеристики |
|---|---|---|
GlobalSearch | Быстрая сходимость к локальным оптимумам для сглаженных проблем | Детерминированный выполняет итерации |
| Основанный на градиенте | ||
| Автоматические стохастические стартовые точки | ||
| Удаляет много стартовых точек эвристическим образом | ||
MultiStart | Быстрая сходимость к локальным оптимумам для сглаженных проблем | Детерминированный выполняет итерации |
| Может запуститься параллельно; смотрите, Как Использовать Параллельную обработку в Global Optimization Toolbox | ||
| Основанный на градиенте | ||
| Стохастические или детерминированные стартовые точки или комбинация обоих | ||
| Автоматические стохастические стартовые точки | ||
| Выполнения все стартовые точки | ||
Выбор локального решателя: fmincon, fminunc, lsqcurvefit или lsqnonlin | ||
patternsearch | Доказанная сходимость к локальному оптимуму; медленнее, чем основанные на градиенте решатели | Детерминированный выполняет итерации |
| Может запуститься параллельно; смотрите, Как Использовать Параллельную обработку в Global Optimization Toolbox | ||
| Никакие градиенты | ||
| Предоставленная пользователями стартовая точка | ||
surrogateopt | Доказанная сходимость к глобальному оптимуму для ограниченных задач; медленнее, чем основанные на градиенте решатели | Стохастический выполняет итерации |
| Может запуститься параллельно; смотрите, Как Использовать Параллельную обработку в Global Optimization Toolbox | ||
| Только связанные ограничения | ||
| Никакие градиенты | ||
| Автоматические стартовые точки или предоставленные пользователями точки или комбинация обоих | ||
particleswarm | Никакое доказательство сходимости | Стохастический выполняет итерации |
| Может запуститься параллельно; смотрите, Как Использовать Параллельную обработку в Global Optimization Toolbox | ||
| Основанный на генеральной совокупности | ||
| Никакие градиенты | ||
| Автоматическая генеральная совокупность запуска или предоставленная пользователями генеральная совокупность или комбинация обоих | ||
| Только связанные ограничения | ||
ga | Никакое доказательство сходимости | Стохастический выполняет итерации |
| Может запуститься параллельно; смотрите, Как Использовать Параллельную обработку в Global Optimization Toolbox | ||
| Основанный на генеральной совокупности | ||
| Никакие градиенты | ||
| Позволяет целочисленные ограничения; смотрите Смешанную Целочисленную Оптимизацию | ||
| Автоматическая генеральная совокупность запуска или предоставленная пользователями генеральная совокупность или комбинация обоих | ||
simulannealbnd | Доказанный сходиться к глобальному оптимуму для ограниченных задач с очень медленным расписанием охлаждения | Стохастический выполняет итерации |
| Никакие градиенты | ||
| Предоставленная пользователями стартовая точка | ||
| Только связанные ограничения |
Объяснение некоторых характеристик:
Сходимость — Решатели могут не сходиться ни к какому решению, когда запущено далекому от локального минимума. Когда запущено около локальной переменной минимальные, основанные на градиенте решатели сходятся к локальному минимуму быстро для сглаженных проблем. patternsearch доказуемо сходится для широкого спектра проблем, но сходимость медленнее, чем основанные на градиенте решатели. И ga и simulannealbnd могут не сходиться за разумное количество времени для некоторых проблем, несмотря на то, что они являются часто эффективными.
Выполняет итерации — Решатели выполняют итерации, чтобы найти решения. Шаги в итерации, выполняет итерации. Некоторые решатели имеют детерминированный, выполняет итерации. Другие используют случайные числа и имеют стохастический, выполняет итерации.
Градиенты — Некоторое использование решателей оцененные или предоставленные пользователями производные в вычислении выполнения итерации. Другие решатели не используют или оценивают производные, но используют только ограничительные значения функции и цель.
Стартовые точки — Большинство решателей требует, чтобы вы обеспечили отправную точку для оптимизации в порядке получить размерность переменных решения. ga и surrogateopt не требуют никаких отправных точек, потому что они берут размерность переменных решения как вход. Эти решатели генерируют стартовую точку или генеральную совокупность автоматически, или они принимают точку, или указывает, что вы предоставляете.
Сравните характеристики решателей Global Optimization Toolbox к решателям Optimization Toolbox.
| Решатель | Сходимость | Характеристики |
|---|---|---|
fmincon, fminunc, fseminf, lsqcurvefit, lsqnonlin | Доказанная квадратичная сходимость к локальным оптимумам для сглаженных проблем | Детерминированный выполняет итерации |
| Основанный на градиенте | ||
| Предоставленная пользователями отправная точка | ||
fminsearch | Никакое доказательство сходимости — контрпримеры существуют. | Детерминированный выполняет итерации |
| Никакие градиенты | ||
| Предоставленная пользователями стартовая точка | ||
| Никакие ограничения | ||
fminbnd | Доказанная сходимость к локальным оптимумам для сглаженных проблем, медленнее, чем квадратичный. | Детерминированный выполняет итерации |
| Никакие градиенты | ||
| Предоставленная пользователями стартовая точка | ||
| Только одномерные проблемы |
Все эти решатели Optimization Toolbox:
Имейте детерминированный, выполняет итерации
Запустите с одной предоставленной пользователями точки
Ищите всего один бассейн привлекательности
GlobalSearch и MultiStart являются объектами. Что это означает для вас?
Вы создаете объект GlobalSearch или MultiStart прежде, чем запустить вашу проблему.
Можно снова использовать объект для выполнения многочисленных проблем.
GlobalSearch и объекты MultiStart являются контейнерами для алгоритмов и глобальных опций. Вы используете эти объекты запустить локальный решатель многократно. Локальный решатель имеет свои собственные опции.
Для получения дополнительной информации смотрите Классы (MATLAB) документация.