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

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

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

type ps_example

Следующий рисунок показывает график функции.

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

Нахождение минимума функции

Найти минимум ps_example, выполните следующие шаги:

  1. Войти

    optimtool

    и затем выберите patternsearch решатель.

  2. В поле Objective function приложения Оптимизации введите @ps_example.

  3. В поле Start point введите [2.1 1.7].

    Покиньте поля в пробеле панели Constraints, потому что проблема неограничена.

  4. Нажмите Start, чтобы запустить поиск шаблона.

Панель Run solver and view results отображает результаты поиска шаблона.

Причина, которой отключенная оптимизация состоит в том, что размер mesh стал меньшим, чем приемлемое значение допуска для размера mesh, заданного параметром Mesh tolerance в панели Stopping criteria. Минимальное значение функции - приблизительно-2. Панель Final point отображает точку, в которой происходит минимум.

Запускать эту проблему с помощью функций командной строки:

[x,fval] = patternsearch(@ps_example,[2.1 1.7])
Optimization terminated: mesh size less than options.MeshTolerance.

x =

   -4.7124   -0.0000


fval =

   -2.0000

Графический вывод значений целевой функции и размеров Mesh

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

  • Best function value

  • Mesh size

Затем нажмите Start, чтобы запустить поиск шаблона. Это отображает следующие графики.

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

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

Запускать эту проблему с помощью функций командной строки:

options = optimoptions('patternsearch',...
    'PlotFcn',{@psplotbestf,@psplotmeshsize});
[x,fval] = patternsearch(@ps_example,[2.1 1.7],....
    [],[],[],[],[],[],[],options);

Похожие темы