Характеристики решателя Global Optimization Toolbox

Выбор решателя

В этом разделе описываются характеристики решателя Global Optimization Toolbox. Раздел включает рекомендации для получения результатов эффективнее.

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

Требуемое решениеСглаживайте цель и ограниченияНе сглаживайте цель или ограничения
Объяснение “требуемого решения”Выбор между решателями для сглаженных проблемВыбор между решателями для несглаженных проблем
Одно локальное решениеФункции Optimization Toolbox™; см. Таблицу решений Оптимизации (Optimization Toolbox)fminbnd, patternsearch, fminsearch, ga, particleswarm, simulannealbnd, surrogateopt
Несколько локальных решенийGlobalSearch, MultiStartpatternsearch, ga, particleswarm, simulannealbnd или surrogateopt, запущенный с нескольких начальной буквы, указывают x0 или с нескольких начального населения
Одно глобальное решениеGlobalSearch, MultiStart, patternsearch, particleswarm, ga, simulannealbnd, surrogateoptpatternsearch, ga, particleswarm, simulannealbnd, surrogateopt
Одно локальное решение с помощью параллельной обработкиMultiStart, функции Optimization Toolboxpatternsearch, ga, particleswarm, surrogateopt
Несколько локальных решений с помощью параллельной обработкиMultiStartpatternsearch, ga или particleswarm, запущенный с нескольких начальной буквы, указывают x0 или с нескольких начального населения
Одно глобальное решение с помощью параллельной обработкиMultiStartpatternsearch, 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.

Выбор между решателями для сглаженных проблем

Одно глобальное решение

  1. Попробуйте GlobalSearch сначала. Это больше всего фокусируется на нахождении глобального решения и имеет эффективный локальный решатель, fmincon.

  2. Попробуйте MultiStart затем. Это имеет эффективные локальные решатели и может искать большое разнообразие стартовых точек.

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

  4. Попробуйте surrogateopt затем за связано ограниченные проблемы. surrogateopt пытается найти глобальное решение с помощью наименьшего количества оценок целевой функции. surrogateopt имеет больше служебное на функциональную оценку, чем большинство других решателей. Можно также попробовать surrogateopt другими типами ограничений; смотрите Суррогатную Оптимизацию с Нелинейным Ограничением.

  5. Попробуйте particleswarm затем, если ваша проблема неограничена или только связала ограничения. Обычно, particleswarm более эффективен, чем остающиеся решатели и может быть более эффективным, чем patternsearch.

  6. Попробуйте ga затем. Это может обработать все типы ограничений и обычно более эффективно, чем simulannealbnd.

  7. Попробуйте 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.

  1. Используйте fminbnd сначала на одномерных ограниченных задачах только. fminbnd доказуемо сходится быстро в одной размерности.

  2. Используйте patternsearch на любом другом типе проблемы. patternsearch доказуемо сходится и обрабатывает все типы ограничений.

  3. Попробуйте surrogateopt за связано ограниченные проблемы, которые имеют длительные целевые функции. surrogateopt ищет глобальное решение. Можно также попробовать surrogateopt другими типами ограничений; смотрите Суррогатную Оптимизацию с Нелинейным Ограничением.

  4. Попробуйте fminsearch затем за низко-размерные неограниченные проблемы. fminsearch не является столь же общим как patternsearch и может не сходиться. Для низко-размерных проблем прост в использовании fminsearch, поскольку он имеет немного настраивающихся опций.

  5. Попробуйте particleswarm затем на неограниченных или связано ограниченных проблемах. particleswarm имеет мало теории поддержки, но часто является эффективным алгоритмом.

  6. Попробуйте ga затем. ga имеет мало теории поддержки и часто менее эффективен, чем patternsearch или particleswarm. Это обрабатывает все типы ограничений. ga является единственным решателем, который обрабатывает целочисленные ограничения.

  7. Попробуйте 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) документация.

Связанные примеры

Больше о