Используйте решатель 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 в настоящее время применяется только к основанному на решателе подходу.