Документация Engee

optimize

Страница в процессе разработки.

Решает задачу оптимизации.

Библиотека

EngeeDesignOptimization

Описание

Функция optimize решает задачу оптимизации, чтобы найти значения проектных переменных, удовлетворяющих заданным требованиям.

Синтаксис

Вызов функции

  • optimParam,optimInfo = optimize(fcn,p) — использует метод оптимизации lsqnonlin, применяемый по умолчанию, — для поиска значений параметров optimParam, удовлетворяющих требованиям, заданным в целевой функции fcn.

  • optimParam,optimInfo = optimize(fcn,p,opt) — решает задачу оптимизации с параметрами, заданными в аргументе opt. Для задания аргумента opt используйте функцию OptimizeOptions.

  • optimParam,optimInfo = optimize(fcn,prob) — решает задачу оптимизации prob, которая содержит минимизируемую функцию, проектные переменные и настройки оптимизации.

Аргументы

Входные аргументы

# fcn — целевая функция для минимизации
функция

Details

Целевая функция для минимизации. Алгоритм оптимизации вызывает эту функцию в процессе оптимизации.

К функции предъявляются следующие требования:

  • один входной аргумент — вектор настраиваемых параметров, представленный объектами EngeeDesignOptimization.Continuous. Для передачи дополнительных входных аргументов используйте анонимную функцию. Например: new_fcn = (p) -> fcn(p,arg1,arg2,).

  • один выходной аргумент — словарь, который должен предоставлять по ключу "F" векторное или скалярное значение целевой функции. Например: Dict("F"=>0.1).

  • градиент целевой функции вычисляется методом численного возмущения. Если вы хотите задать способ вычисления градиента, то добавьте второй выходной аргумент и установите для свойства GradFcn объекта OptimizeOptions значение true. Второй выходной аргумент должен быть словарем, который должен предоставлять по ключу "F" производные целевой функции по параметрам p, то есть dF(p)/dp.

Типы данных

Function

# p — проектные параметры
вектор объектов

Details

Настраиваемые проектные параметры, заданные как вектор объектов EngeeDesignOptimization.Continuous.

Типы данных

EngeeDesignOptimization.Continuous

# opt — настройки оптимизации
объект

Details

Настройки оптимизации, заданные как объект EngeeDesignOptimization.OptimizeOptions.

Настройки позволяют указать:

  • количество перезапусков алгоритма оптимизации;

  • максимальное количество итераций;

  • допуски.

Типы данных

EngeeDesignOptimization.OptimizeOptions

# prob — задача оптимизации
объект

Details

Задача оптимизации, заданная как объект EngeeDesignOptimization.OptimizeProblem со следующими свойствами:

  • OptFcn — целевая функция, подлежащая минимизации. Требования к входным и выходным аргументам этой функции см. в описании fcn.

  • Parameters — проектные параметры для оптимизации, заданные как вектор объектов EngeeDesignOptimization.Continuous.

  • Options — настройки оптимизации, заданные как объект EngeeDesignOptimization.OptimizeOptions.

Типы данных

EngeeDesignOptimization.OptimizeProblem

Выходные аргументы

# optimParam — оптимизированные проектные параметры
объект

Details

Оптимизированные проектные параметры, возвращаемые в виде вектора объектов EngeeDesignOptimization.Continuous. Состав вектора и размерность параметров соответствуют p. Оптимизированные значения хранятся в свойстве value соответствующего возвращенного объекта параметра.

Типы данных

EngeeDesignOptimization.Continuous

# optimInfo — информация об оптимизации
словарь

Details

Информация об оптимизации, возвращаемая в виде словаря, содержащего один или несколько из следующих ключей:

  • F — значение целевой функции в оптимальной точке.

  • Jacobian — матрица Якоби целевой функции в оптимальной точке.

  • exitflag — целое число, указывающее причину завершения работы метода оптимизации. Список значений и соответствующих им причин завершения указан в описании метода оптимизации lsqnonlin.

  • iterations — целое число итераций.

  • SolverOutput — словарь, содержащий параметры метода оптимизации. Список выходных параметров метода оптимизации и их описание указаны в описании lsqnonlin.

  • Stats — структура, содержащая статистику, собранную в процессе оптимизации, такую как время начала и окончания, количество вычислений функции и число перезапусков.

Типы данных

Dict