Используйте решатель Global Optimization Toolbox, чтобы оптимизировать несглаженную функцию, искать глобальное решение или решить многоцелевую задачу. Используйте подход, основанный на проблеме для более простого способа настроить и решить задачи.
Подход, основанный на проблеме имеет эти общие преимущества:
Легче настроить и отладить. В подходе, основанном на проблеме вы используете переменные символьного стиля, чтобы создать выражения оптимизации и ограничения. В основанном на решателе подходе необходимо поместить все переменные в один вектор, который может быть неловким, особенно с переменными больших или отличающихся размерностей.
Легче запустить другие решатели на той же проблеме. Некоторые решатели имеют различные синтаксисы вызова. Например, синтаксис для нелинейных ограничений в surrogateopt
отличается от синтаксиса во всех других решателях. Запускать проблему с помощью обоих surrogateopt
и другой решатель в основанном на решателе подходе, необходимо создать различные версии целевой функции. В отличие от этого подход, основанный на проблеме заботится о переводе синтаксисов, таким образом, необходимо поменять только имя решателя и возможно некоторые опции.
Способный получить соответствующий решатель автоматически. solve
функция автоматически выбирает решатель, который может обработать вашу цель и ограничения. В основанном на решателе подходе необходимо выбрать соответствующий решатель.
Способный автоматически ускорить решение проблем, где объективные и нелинейные ограничения вычисляются в той же длительной функции (обычно симуляции). Часто, решатель симуляции или ОДУ вычисляет объективные и нелинейные ограничения в той же функции. Когда вы преобразуете длительную функцию в использование выражения оптимизации fcn2optimexpr
, можно сэкономить время решения путем установки 'ReuseEvaluation'
аргумент к true
. Эта установка заставляет решатель стараться не повторно вычислять длительную функцию при оценке объективных и нелинейных ограничений. При достижении этого экономия времени в основанном на решателе подходе может потребовать дополнительного программирования, как показано в примере Объективные и Нелинейные Ограничения в Той же Функции.
Подход, основанный на проблеме имеет эти ограничения, когда используется с решателями Global Optimization Toolbox:
Никакие проблемы уравнения. Вы не можете использовать решатель Global Optimization Toolbox, чтобы решить задачу уравнения типа EquationProblem
. Однако можно решить задачу выполнимости путем определения нулевой целевой функции и любых ограничений, принятых решателем. Для примера смотрите Решают задачу Выполнимости Используя surrogateopt, Основанный на проблеме.
Никакой GlobalSearch
или MultiStart
. В настоящее время чтобы использовать эти решатели необходимо использовать основанный на решателе подход.
Никакие многоцелевые проблемы. Решить многоцелевое использование задач gamultiobj
или paretosearch
, используйте основанный на решателе подход.
Никакие пользовательские типы данных. Использовать пользовательский тип данных с ga
или simulannealbnd
, необходимо использовать основанный на решателе подход. Для примеров смотрите, что Оптимизация Пользовательского типа данных Использует Планирование Генетического алгоритма и Многопроцессорной системы Используя Симулированный Отжиг с Пользовательским типом данных.
Никакой файл контрольной точки для surrogateopt
. Используйте основанный на решателе подход для файлов контрольной точки в surrogateopt
. Для получения дополнительной информации смотрите работу с Файлами контрольной точки.
Никакая векторизация (см. Используя Векторизацию). Если ваша целевая функция и какие-либо нелинейные ограничительные функции написаны в векторизованном виде, необходимо использовать основанный на решателе рабочий процесс, чтобы получить выгоду от векторизации. Если вы устанавливаете UseVectorized
опция в подходе, основанном на проблеме, вы получаете предупреждение, не улучшенную производительность.
Никакая начальная точка или население для ga
, particleswarm
, или surrogateopt
. Смотрите начальные точки для решателей Global Optimization Toolbox.
Необходимо преобразовать переменные для опций, которые относятся к основанному на решателе подходу. Например, пользовательские выходные функции используют основанный на решателе синтаксис. Использование varindex
преобразовывать проблемные базируемые переменные в основанные на решателе индексы. Для примера см. Опции Набора в Подходе, основанном на проблеме Используя varindex.
Никакой визуальный интерфейс. Оптимизировать задача Live Editor в настоящее время применяется только к основанному на решателе подходу.