Оптимизируйте Используя алгоритм GPS

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

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

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

type ps_example

Этот рисунок показывает график функции.

2-D plot of a nonsmooth function

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

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

Найти минимум ps_example использование Оптимизировать задача Live Editor, завершите следующие шаги.

  1. Создайте новый live скрипт путем нажатия кнопки New Live Script в разделе File по вкладке Home.

    New Live Script button

  2. Вставьте Оптимизировать задачу Live Editor. Кликните по вкладке Insert и затем, в Секции кода, выберите Task> Optimize.

    Insert Optimize button

    Optimize Live Editor task

  3. Для использования во вводе проблемных данных вставьте новый раздел путем нажатия кнопки Section Break на вкладке Insert. Новые разделы появляются выше и ниже задачи.

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

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

  6. В разделе Specify problem type задачи нажмите кнопку Objective > Nonsmooth.

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

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

  9. Выберите Initial point (x0) > x0.

  10. В разделе прогресса Отображения задачи выберите графики размера Оптимального значения и Mesh.

    Solver, objective function, initial point, and plots specified

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

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

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

Более низкий график показывает размер mesh в каждой итерации. Увеличения размера mesh после каждой успешной итерации и уменьшений после каждой неудачной итерации. Для получения дополнительной информации смотрите Как Поиск Шаблона Опрос работ.

Оптимизация остановилась, потому что размер mesh стал меньшим, чем значение допуска размера mesh, заданное 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

Смотрите также

|

Похожие темы