exponenta event banner

Интерпретировать surrogateoptplot

surrogateoptplot функция графика предоставляет много информации о шагах оптимизации суррогата.

Свернуть ограниченную функцию

Например, рассмотрим график шагов surrogateopt принимает на себя функцию встроенного контроля rastriginsfcn. Эта функция имеет глобальное минимальное значение 0 в точке [0,0].

Создание графика поверхности rastriginsfcn.

ezsurf(@(x,y)rastriginsfcn([x(:),y(:)]));

Процесс минимизации графика

Давая асимметричные границы, вы поощряете surrogateopt для поиска от глобального минимума. Установка асимметричных границ [-3,-3] и [9,10]. Задайте параметры для использования surrogateoptplot постройте график функции, а затем вызовите surrogateopt.

lb = [-3,-3];
ub = [9,10];
options = optimoptions('surrogateopt','PlotFcn','surrogateoptplot');
rng default
[x,fval] = surrogateopt(@rastriginsfcn,lb,ub,options);

Surrogateopt stopped because it exceeded the function evaluation limit set by 
'options.MaxFunctionEvaluations'.

Интерпретировать график

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

  • Первые точки - чёрные треугольники, указывающие квазирандомные выборки функции в пределах задач. Эти точки берутся из стадии конструирования суррогата.

  • Затем черные точки, указывающие на адаптивные пункты, пункты, созданные в Поиске Минимальной фазы.

  • Толстая зеленая линия представляет наилучшее (наименьшее) найденное значение целевой функции. Вскоре после оценки номер 30, surrogateopt застрял в локальном минимуме со значением целевой функции около 5. Увеличьте изображение, чтобы более четко увидеть это поведение.

xlim([20 100])
ylim([0 10])

  • Вблизи оценочного номера 120 вертикальная линия указывает на суррогатный сброс. В этот момент алгоритм возвращается к фазе конструирования суррогата.

  • Темно-синие точки x представляют действующего, что является лучшей точкой, найденной после предыдущего сброса суррогата.

  • Рядом с оценкой номер 160, сотрудник улучшает предыдущий лучший пункт, достигая значения около 4. После этого вычислительного номера наилучшая точка медленно падает в значении. Увеличьте изображение, чтобы более четко увидеть это поведение.

xlim([140 200])
ylim([0 6])

  • Оптимизация останавливается на оценочном номере 200, потому что это предел оценки функции по умолчанию для проблемы 2-D.

Проблема с нелинейными ограничениями

surrogateoptplot отображение изменений при наличии нелинейных ограничений. Наложить ограничение, x(1) является целым числом и нелинейным ограничением, которое x2≥x12-2. Для получения информации о функции, реализующей это ограничение, см. раздел rasfcn в конце этого примера.

fun = @rasfcn;

Установка целочисленных ограничений путем установки intcon = 1 и выполните минимизацию.

intcon = 1;
[x,fval] = surrogateopt(fun,lb,ub,intcon,options);

Surrogateopt stopped because it exceeded the function evaluation limit set by 
'options.MaxFunctionEvaluations'.

Теперь график показывает красные маркеры, где surrogateopt вычисляет неосуществимую точку. Конечная точка близка к истинной минимальной точке [0,0].

disp(x)
   1.0e-03 *

         0   -0.3913

Целочисленное ограничение, вероятно, помогает surrogateopt найти истинный минимум, уменьшив пространство поиска.

function F = rasfcn(x)
F.Fval = rastriginsfcn(x);
F.Ineq = x(1)^2 - 2 - x(2);
end

См. также

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