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

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

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

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

Желаемое решениеСглаживание цели и ограниченийНезабываемая цель или ограничения
Объяснение «Желаемого Решения»Выбор между решателями для сглаживания задачВыбор между решателями для задач Nonsmooth
Единое локальное решениеФункции 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 (<reservedrangesplaceholder1>) =100 <reservedrangesplaceholder0>2(1–<reservedrangesplaceholder0>)2x,

который имеет локальные минимальные 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 передает все сгенерированные стартовые точки локальному решателю. Для получения дополнительной информации см. «Алгоритм глобального поиска».

  • MultiStart предлагает выбор локального решателя: fmincon, fminunc, lsqcurvefit, или lsqnonlin. The GlobalSearch решатель использует только fmincon как его локальный решатель.

  • GlobalSearch использует алгоритм поиска рассеяния для генерации начальных точек. Напротив, MultiStart генерирует точки равномерно случайным образом в границах или позволяет вам предоставить свои собственные точки.

  • MultiStart может проходить параллельно. Смотрите, как использовать параллельную обработку в Global Optimization Toolbox.

Выбор между решателями для задач Nonsmooth

Выберите применимый решатель с самым низким числом. Для задач с целочисленными ограничениями используйте 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 обрабатывает все типы ограничений. ga и surrogateopt являются единственными решателями Global Optimization Toolbox, которые принимают целочисленные ограничения.

  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
Население
Градиентов нет
Допускает целочисленные ограничения; см. Смешанная целочисленная оптимизация ga
Автоматический запуск населения или пользовательского населения, или комбинации обоих
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 объекты являются контейнерами для алгоритмов и глобальных опций. Вы используете эти объекты, чтобы запустить локальный решатель несколько раз. У локального решателя есть свои опции.

Для получения дополнительной информации см. документацию по классам.

Похожие примеры

Подробнее о