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) является целым числом и нелинейным ограничением, которое . Для получения информации о функции, реализующей это ограничение, см. раздел 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