В этом разделе описываются характеристики решателя Global Optimization Toolbox. В раздел включены рекомендации по более эффективному получению результатов.
Чтобы достичь лучших или более быстрых решений, сначала попробуйте настроить рекомендуемые решатели, установив соответствующие опции или границы. Если результаты неудовлетворительны, попробуйте другие решатели.
Желаемое решение | Сглаживание цели и ограничений | Незабываемая цель или ограничения |
---|---|---|
Объяснение «Желаемого Решения» | Выбор между решателями для сглаживания задач | Выбор между решателями для задач Nonsmooth |
Единое локальное решение | Функции 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 (<reservedrangesplaceholder1>) =100 <reservedrangesplaceholder0>2(1–<reservedrangesplaceholder0>)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
передает все сгенерированные стартовые точки локальному решателю. Для получения дополнительной информации см. «Алгоритм глобального поиска».
MultiStart
предлагает выбор локального решателя: fmincon
, fminunc
, lsqcurvefit
, или lsqnonlin
. The 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
обрабатывает все типы ограничений. ga
и surrogateopt
являются единственными решателями Global Optimization Toolbox, которые принимают целочисленные ограничения.
Попробуй 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
объекты являются контейнерами для алгоритмов и глобальных опций. Вы используете эти объекты, чтобы запустить локальный решатель несколько раз. У локального решателя есть свои опции.
Для получения дополнительной информации см. документацию по классам.