Этот пример показывает, как решить задачу оптимизации с помощью алгоритма GPS, который является по умолчанию для patternsearch
решатель. Пример использует задачу Optimize Live Editor, чтобы завершить оптимизацию с помощью визуального подхода.
Этот пример использует целевую функцию ps_example
, в комплекте с программным обеспечением Global Optimization Toolbox. Просмотрите код функции путем ввода следующей команды.
type ps_example
Этот рисунок показывает график функции.
Чтобы найти минимум ps_example
используя задачу Оптимизации Live Editor, выполните следующие шаги.
Создайте новый live скрипт, нажав кнопку New Live Script в разделе File на вкладке Home.
Вставьте задачу Optimize Live Editor. Перейдите на вкладку Insert и в секции кода выберите Task > Optimize.
Для использования при вводе данных о задаче вставьте новый раздел, нажав кнопку Section Break на вкладке Insert. Новые разделы появляются выше и ниже задачи.
В новом разделе над задачей введите следующий код, чтобы определить начальную точку и целевую функцию.
x0 = [2.1 1.7]; fun = @ps_example;
Чтобы поместить эти переменные в рабочую область, запустите раздел, нажав Ctrl + Enter.
В Specify problem type разделе задачи нажмите кнопку Objective > Nonsmooth.
Убедитесь, что выбранный решатель patternsearch
.
В Select problem data разделе задачи выберите Objective function > Function handle и затем fun
.
Выберите Initial point (x0) > x0.
В разделе «Отображение прогресса задачи» выберите графики «Лучшее значение» и «Размер сетки».
Чтобы запустить решатель, нажмите кнопку options ⁝ в верхней части окна задачи и выберите Run Section. Графики появляются в отдельном окне рисунка и в области выхода задачи.
Верхний график показывает значение целевой функции лучшей точки в каждой итерации. Как правило, значения целевой функции быстро улучшаются в ранних итерациях, а затем выравниваются, когда они приближаются к оптимальному значению.
Нижний график показывает размер сетки при каждой итерации. Размер сетки увеличивается после каждой успешной итерации и уменьшается после каждой неудачной итерации. Для получения дополнительной информации смотрите, Как работает опрос поиска шаблона.
Оптимизация остановлена, потому что размер сетки стал меньше значения допуска размера сетки, заданного MeshTolerance
опция. Минимальное значение функции составляет приблизительно -2.
Чтобы увидеть решение и значение целевой функции, смотрите в верхней части задачи.
Задача Optimize помещает переменные solution
и objectiveValue
в рабочей области. Просмотрите эти значения, поместив новый раздел под задачей и включив этот код.
disp(solution) disp(objectiveValue)
Запустите раздел нажатием Ctrl+Enter.
disp(solution)
-4.7124 -0.0000
disp(objectiveValue)
-2.0000
Оптимизировать | patternsearch