exponenta event banner

Оптимизация с использованием алгоритма GPS

В этом примере показано, как решить задачу оптимизации с помощью алгоритма GPS, который является значением по умолчанию для patternsearch решатель. В примере используется задача «Оптимизировать интерактивный редактор» для завершения оптимизации с использованием визуального подхода.

Целевая функция

В этом примере используется целевая функция ps_example, который входит в комплект программного обеспечения Global Optimization Toolbox. Просмотрите код функции, введя следующую команду.

type ps_example

На этом рисунке показан график функции.

2-D plot of a nonsmooth function

 Код для создания фигуры

Найти минимум функции

Чтобы найти минимум ps_example с помощью задачи Оптимизировать интерактивный редактор (Optimize Live Editor) выполните следующие действия.

  1. Создайте новый сценарий в реальном времени, нажав кнопку «Создать сценарий в реальном времени» в разделе «Файл» на вкладке «Главная».

    New Live Script button

  2. Вставка задачи «Оптимизировать интерактивный редактор». Перейдите на вкладку Вставка, а затем в разделе Код выберите Задача > Оптимизировать.

    Insert Optimize button

    Optimize Live Editor task

  3. Для использования при вводе данных о проблемах вставьте новый раздел, нажав кнопку «Разрыв раздела» на вкладке «Вставка». Новые разделы появляются над и под задачей.

  4. В новом разделе над задачей введите следующий код для определения начальной точки и целевой функции.

    x0 = [2.1 1.7];
    fun = @ps_example;
  5. Чтобы поместить эти переменные в рабочее пространство, запустите раздел, нажав клавиши CTRL + ENTER.

  6. В разделе Указание типа проблемы задачи нажмите кнопку Цель > Не стрелять.

  7. Убедитесь, что выбранный решатель patternsearch.

  8. В разделе Select problem data задачи выберите Objective function > Function handle, а затем выберите fun.

  9. Выберите Начальная точка (x0) > x0.

  10. В разделе «Отображение хода выполнения» задачи выберите графики «Наилучшее значение» и «Размер сетки».

    Solver, objective function, initial point, and plots specified

  11. Чтобы запустить решатель, нажмите кнопку опций в правом верхнем углу окна задачи и выберите Выполнить раздел. Графики отображаются в отдельном окне рисунка и в области вывода задания.

    Function values decrease to -2, and the mesh size oscillates but converges to 9.53e-7.

Верхний график показывает значение целевой функции лучшей точки в каждой итерации. Как правило, значения целевой функции быстро улучшаются на ранних итерациях и затем выравниваются по мере приближения к оптимальному значению.

На нижнем графике показан размер сетки в каждой итерации. Размер сетки увеличивается после каждой успешной итерации и уменьшается после каждой неудачной итерации. Дополнительные сведения см. в разделе Как работает опрос поиска шаблонов.

Оптимизация остановлена, так как размер сетки стал меньше значения допуска размера сетки, определенного MeshTolerance вариант. Минимальное значение функции равно приблизительно -2.

Чтобы увидеть решение и значение целевой функции, посмотрите в верхней части задачи.

Optimize returns solution and objectiveValue variables to the workspace

Задача «Оптимизировать» помещает переменные solution и objectiveValue в рабочей области. Просмотрите эти значения, разместив новый раздел под задачей, и включите этот код.

disp(solution)
disp(objectiveValue)

Запустите раздел, нажав Ctrl + Enter.

disp(solution)
   -4.7124   -0.0000
disp(objectiveValue)
   -2.0000

См. также

|

Связанные темы