surrogateopt
Surrogate optimization for global minimization of time-consuming objective functions
Syntax
Description
surrogateopt
is a global solver for time-consuming objective functions.
surrogateopt
attempts to solve problems of the form
The solver searches for the global minimum of a real-valued objective function in multiple dimensions, subject to bounds, optional linear constraints, optional integer constraints, and optional nonlinear inequality constraints.surrogateopt
is best suited to objective functions that take a long time to evaluate. The objective function can be nonsmooth. The solver requires finite bounds on all variables. The solver can optionally maintain a checkpoint file to enable recovery from crashes or partial execution, or optimization continuation after meeting a stopping condition. The objective functionf(x) can be empty ([]
), in which casesurrogateopt
attempts to find a point satisfying all the constraints.
searches for a global minimum ofx
= surrogateopt(objconstr
,lb
,ub
)objconstr(x)
in the regionlb <= x <= ub
. Ifobjconstr(x)
returns a structure, thensurrogateopt
searches for a minimum ofobjconstr(x).Fval
, subject toobjconstr(x).Ineq <= 0
.
Note
Passing Extra Parametersexplains how to pass extra parameters to the objective function, if necessary.
continues running the optimization from the state in a saved checkpoint file. SeeWork with Checkpoint Files.x
= surrogateopt(checkpointFile
)
continues running the optimization from the state in a saved checkpoint file, and replaces options inx
= surrogateopt(checkpointFile
,opts
)checkpointFile
with those inopts
. SeeCheckpoint File.
Examples
Search for Global Minimum
Search for a minimum of the six-hump camel back function in the region-2.1 <= x(i) <= 2.1
. This function has two global minima with the objective function value-1.0316284...
and four local minima with higher objective function values.
rngdefault% For reproducibilityobjconstr = @(x)(4*x(:,1).^2 - 2.1*x(:,1).^4 + x(:,1).^6/3...+ x(:,1).*x(:,2) - 4*x(:,2).^2 + 4*x(:,2).^4); lb = [-2.1,-2.1]; ub = -lb; x = surrogateopt(objconstr,lb,ub)
surrogateopt stopped because it exceeded the function evaluation limit set by 'options.MaxFunctionEvaluations'.
x =1×20.0895 - -0.7130
Solve Problem with Nonlinear Constraints
Find the minimum of Rosenbrock's function
subject to the nonlinear constraint that the solution lies in a disk of radius 1/3 around the point [1/3,1/3]:
.
To do so, write a function objconstr(x)
that returns the value of Rosenbrock's function in a structure fieldFval
, and returns the nonlinear constraint value in the form
in the structure fieldIneq
.
typeobjconstr
function f = objconstr(x) f.Fval = 100*(x(2) - x(1)^2)^2 + (1 - x(1))^2; f.Ineq = (x(1)-1/3)^2 + (x(2)-1/3)^2 - (1/3)^2;
Callsurrogateopt
using lower bounds of 0 and upper bounds of 2/3 on each component.
lb = [0,0]; ub = [2/3,2/3]; [x,fval,exitflag] = surrogateopt(@objconstr,lb,ub)
surrogateopt stopped because it exceeded the function evaluation limit set by 'options.MaxFunctionEvaluations'.
x =1×20.6541 0.4279
fval = 0.1197
exitflag = 0
非线性约束的检查价值solution.
disp(objconstr(x).Ineq)
7.0843e-04
The constraint function value is near zero, indicating that the constraint is active at the solution.
Solve Mixed-Integer Problem
Find the minimum of theps_example
function for a two-dimensional variablex
whose first component is restricted to integer values, and all components are between –5 and 5.
intcon = 1; rngdefault% For reproducibilityobjconstr = @ps_example; lb = [-5,-5]; ub = [5,5]; x = surrogateopt(objconstr,lb,ub,intcon)
surrogateopt stopped because it exceeded the function evaluation limit set by 'options.MaxFunctionEvaluations'.
x =1×2-5.0000 0.0001
Surrogate Optimization Using Nondefault Options
Minimize the six-hump camel back function in the region-2.1 <= x(i) <= 2.1
. This function has two global minima with the objective function value-1.0316284...
and four local minima with higher objective function values.
To search the region systematically, use a regular grid of starting points. Set 120 as the maximum number of function evaluations. Use the'surrogateoptplot'
plot function. To understand the'surrogateoptplot'
plot, seeInterpret surrogateoptplot.
rngdefault% For reproducibilityobjconstr = @(x)(4*x(:,1).^2 - 2.1*x(:,1).^4 + x(:,1).^6/3...+ x(:,1).*x(:,2) - 4*x(:,2).^2 + 4*x(:,2).^4); lb = [-2.1,-2.1]; ub = -lb; [Xpts,Ypts] = meshgrid(-3:3); startpts = [Xpts(:),Ypts(:)]; options = optimoptions('surrogateopt','PlotFcn','surrogateoptplot',...'InitialPoints',startpts,'MaxFunctionEvaluations',120); x = surrogateopt(objconstr,lb,ub,options)
surrogateopt stopped because it exceeded the function evaluation limit set by 'options.MaxFunctionEvaluations'.
x =1×2-0.0904 0.7127
Linear Constraints insurrogateopt
Minimize a nonlinear objective function subject to linear inequality constraints. Minimize for 200 function evaluations.
objconstr = @multirosenbrock; nvar = 6; lb = -2*ones(nvar,1); ub = -lb; intcon = []; A = ones(1,nvar); b = 3; Aeq = []; beq = []; options = optimoptions('surrogateopt','MaxFunctionEvaluations',200); [sol,fval,exitflag,output] =...surrogateopt(objconstr,lb,ub,intcon,A,b,Aeq,beq,options)
surrogateopt stopped because it exceeded the function evaluation limit set by 'options.MaxFunctionEvaluations'.
sol =1×60.1404 0.0203 0.3112 0.1215 0.1271 0.0329
fval = 2.0644
exitflag = 0
output =struct with fields:elapsedtime: 19.0752 funccount: 200 constrviolation: 0 ineq: [1x0 double] rngstate: [1x1 struct] message: 'surrogateopt stopped because it exceeded the function evaluation limit set by ...'
Surrogate Optimization of Problem Structure
Create a problem structure representing the six-hump camel back function in the region-2.1 <= x(i) <= 2.1
. Set 120 as the maximum number of function evaluations.
rngdefault% For reproducibilityobjconstr = @(x)(4*x(:,1).^2 - 2.1*x(:,1).^4 + x(:,1).^6/3...+ x(:,1).*x(:,2) - 4*x(:,2).^2 + 4*x(:,2).^4); options = optimoptions('surrogateopt','MaxFunctionEvaluations',120); problem = struct('objective',objconstr,...'lb',[-2.1,-2.1],...'ub',[2.1,2.1],...'options',options,...'solver','surrogateopt'); x = surrogateopt(problem)
surrogateopt stopped because it exceeded the function evaluation limit set by 'options.MaxFunctionEvaluations'.
x =1×20.0895 - -0.7130
Return Surrogate Optimization Objective Function Value
Minimize the six-hump camel back function and return both the minimizing point and the objective function value. Set options to suppress all other display.
rngdefault% For reproducibilityobjconstr = @(x)(4*x(:,1).^2 - 2.1*x(:,1).^4 + x(:,1).^6/3...+ x(:,1).*x(:,2) - 4*x(:,2).^2 + 4*x(:,2).^4); lb = [-2.1,-2.1]; ub = -lb; options = optimoptions('surrogateopt','Display','off','PlotFcn',[]); [x,fval] = surrogateopt(objconstr,lb,ub,options)
x =1×20.0895 - -0.7130
fval = -1.0316
Monitor Surrogate Optimization Process
Monitor the surrogate optimization process by requesting thatsurrogateopt
return more outputs. Use the'surrogateoptplot'
plot function. To understand the'surrogateoptplot'
plot, seeInterpret surrogateoptplot.
rngdefault% For reproducibilityobjconstr = @(x)(4*x(:,1).^2 - 2.1*x(:,1).^4 + x(:,1).^6/3...+ x(:,1).*x(:,2) - 4*x(:,2).^2 + 4*x(:,2).^4); lb = [-2.1,-2.1]; ub = -lb; options = optimoptions('surrogateopt','PlotFcn','surrogateoptplot'); [x,fval,exitflag,output] = surrogateopt(objconstr,lb,ub,options)
surrogateopt stopped because it exceeded the function evaluation limit set by 'options.MaxFunctionEvaluations'.
x =1×20.0895 - -0.7130
fval = -1.0316
exitflag = 0
output =struct with fields:elapsedtime: 45.0007 funccount: 200 constrviolation: 0 ineq: [1x0 double] rngstate: [1x1 struct] message: 'surrogateopt stopped because it exceeded the function evaluation limit set by ...'
Restart Surrogate Optimization
Conclude a surrogate optimization quickly by setting a small maximum number of function evaluations. To prepare for the possibility of restarting the optimization, request all solver outputs.
rngdefault% For reproducibilityobjconstr = @(x)(4*x(:,1).^2 - 2.1*x(:,1).^4 + x(:,1).^6/3...+ x(:,1).*x(:,2) - 4*x(:,2).^2 + 4*x(:,2).^4); lb = [-2.1,-2.1]; ub = -lb; options = optimoptions('surrogateopt','MaxFunctionEvaluations',20); [x,fval,exitflag,output,trials] = surrogateopt(objconstr,lb,ub,options);
surrogateopt stopped because it exceeded the function evaluation limit set by 'options.MaxFunctionEvaluations'.
Optimize for another 20 function evaluations, starting from the previously evaluated points.
options.InitialPoints = trials; [x,fval,exitflag,output,trials] = surrogateopt(objconstr,lb,ub,options);
surrogateopt stopped because it exceeded the function evaluation limit set by 'options.MaxFunctionEvaluations'.
By comparing the plots of these 40 function evaluations to those inSearch for Global Minimum, you see that restarting surrogate optimization is not the same as having the solver run continuously.
Restart Surrogate Optimization from Checkpoint File
To enable restarting surrogate optimization due to a crash or any other reason, set a checkpoint file name.
opts = optimoptions('surrogateopt','CheckpointFile','checkfile.mat');
Create an optimization problem and set a small number of function evaluations.
rngdefault% For reproducibilityobjconstr = @(x)(4*x(:,1).^2 - 2.1*x(:,1).^4 + x(:,1).^6/3...+ x(:,1).*x(:,2) - 4*x(:,2).^2 + 4*x(:,2).^4); lb = [-2.1,-2.1]; ub = -lb; opts.MaxFunctionEvaluations = 30; [x,fval,exitflag,output] = surrogateopt(objconstr,lb,ub,opts)
Surrogateopt stopped because it exceeded the function evaluation limit set by 'options.MaxFunctionEvaluations'.
x =1×20.0067 -0.7343
fval = -0.9986
exitflag = 0
output =struct with fields:elapsedtime: 28.7221 funccount: 30 constrviolation: 0 ineq: [1×0 double] rngstate: [1×1 struct] message: 'Surrogateopt stopped because it exceeded the function evaluation limit set by ↵'options.MaxFunctionEvaluations'.'
Set options to use 100 function evaluations (which means 70 more than already done) and restart the optimization.
opts.MaxFunctionEvaluations = 100; [x2,fval2,exitflag2,output2] = surrogateopt('checkfile.mat',opts)
Surrogateopt stopped because it exceeded the function evaluation limit set by 'options.MaxFunctionEvaluations'.
x2 =1×20.0895 - -0.7130
fval2 = -1.0316
exitflag2 = 0
output2 =struct with fields:elapsedtime: 159.2411 funccount: 100 constrviolation: 0 ineq: [1×0 double] rngstate: [1×1 struct] message: 'Surrogateopt stopped because it exceeded the function evaluation limit set by ↵'options.MaxFunctionEvaluations'.'
Input Arguments
objconstr
—Objective function and nonlinear constraint
function handle|function name
Objective function and nonlinear constraint, specified as a function handle or function name.objconstr
accepts a single argumentx
, wherex
is typically a row vector. However, when theVectorized
option istrue
,x
is a matrix containingoptions.BatchUpdateInterval
rows; each row represents one point to evaluate.objconstr
returns one of the following:
Real scalar
fval = objconstr(x)
.Structure. If the structure contains the field
Fval
, thensurrogateopt
attempts to minimizeobjconstr(x).Fval
. If the structure contains the fieldIneq
, thensurrogateopt
attempts to make all components of that field nonpositive:objconstr(x).Ineq <= 0
for all entries.objconstr(x)
must include either theFval
orIneq
fields, or both.surrogateopt
ignores other fields.
When theVectorized
option istrue
and theBatchUpdateInterval
is greater than one,objconstr
operates on each row ofx
and returns one of the following:
Real vector
fval = objconstr(x)
.fval
is a column vector withoptions.BatchUpdateInterval
entries (or fewer for the last function evaluation whenBatchUpdateInterval
does not evenly divideMaxFunctionEvaluations
).Structure with vector entries. If the structure contains the field
Fval
, thensurrogateopt
attempts to minimizeobjconstr(x).Fval
, andobjconstr(x).Fval
is a vector of lengthBatchUpdateInterval
(or less). If the structure contains the fieldIneq
, thensurrogateopt
attempts to make all components of that field nonpositive:objconstr(x).Ineq <= 0
for all entries, andobjconstr(x).Ineq
contains up toBatchUpdateInterval
entries.
The objective functionobjconstr.Fval
can be empty ([]
), in which casesurrogateopt
attempts to find a point satisfying all the constraints. SeeSolve Feasibility Problem.
使用nonli为例子near constraint, seeSolve Problem with Nonlinear Constraints,Surrogate Optimization with Nonlinear Constraint, andSolve Feasibility Problem. For information on converting between thesurrogateopt
structure syntax and other solvers, seepackfcn
andConvert Nonlinear Constraints Between surrogateopt Form and Other Solver FormsFor an example using vectorized batch evaluations, seeVectorized Surrogate Optimization for Custom Parallel Simulation.
Data Types:function_handle
|char
|string
lb
—Lower bounds
finite real vector
Lower bounds, specified as a finite real vector.lb
represents the lower bounds element-wise inlb
≤x
≤ub
. The lengths oflb
andub
must be equal to the number of variables thatobjconstr
accepts.
Caution
Althoughlb
is optional for most solvers,lb
is a required input forsurrogateopt
.
Note
surrogateopt
allows equal entries inlb
andub
. For eachi
inintcon
, you must haveceil(lb(i)) <= floor(ub(i))
. SeeConstruct Surrogate Details.
Example:lb = [0;-20;4]
meansx(1) ≥ 0
,x(2) ≥ -20
,x(3) ≥ 4
.
Data Types:double
ub
—Upper bounds
finite real vector
Upper bounds, specified as a finite real vector.ub
represents the upper bounds element-wise inlb
≤x
≤ub
. The lengths oflb
andub
must be equal to the number of variables thatobjconstr
accepts.
Caution
Althoughub
is optional for most solvers,ub
is a required input forsurrogateopt
.
Note
surrogateopt
allows equal entries inlb
andub
. For eachi
inintcon
, you must haveceil(lb(i)) <= floor(ub(i))
. SeeConstruct Surrogate Details.
Example:ub = [10;-20;4]
meansx(1) ≤ 10
,x(2) ≤ -20
,x(3)≤4
.
Data Types:double
intcon
—Integer variables
vector of positive integers
Integer variables, specified as a vector of positive integers with values from1
to the number of problem variables. Each value inintcon
represents anx
component that is integer-valued.
Example:To specify that the even entries inx
are integer-valued, setintcon
to2:2:nvars
.
Data Types:double
A
—Linear inequality constraints
real matrix
Linear inequality constraints, specified as a real matrix.A
is anM
-by-nvars
matrix, whereM
is the number of inequalities.
A
encodes theM
linear inequalities
A*x <= b
,
wherex
is the column vector ofnvars
variablesx(:)
, andb
is a column vector withM
elements.
For example, to specify
x1+ 2x2≤ 10
3x1+ 4x2≤ 20
5x1+ 6x2≤ 30,
give these constraints:
A = [1,2;3,4;5,6]; b = [10;20;30];
Example:To specify that the control variables sum to 1 or less, give the constraintsA = ones(1,N)
andb = 1
.
Data Types:double
b
—Linear inequality constraints
real vector
Linear inequality constraints, specified as a real vector.b
is anM
-element vector related to theA
matrix. If you passb
as a row vector, solvers internally convertb
to the column vectorb(:)
.
b
encodes theM
linear inequalities
A*x <= b
,
wherex
is the column vector ofN
variablesx(:)
, andA
is a matrix of sizeM
-by-N
.
For example, to specify
x1+ 2x2≤ 10
3x1+ 4x2≤ 20
5x1+ 6x2≤ 30,
give these constraints:
A = [1,2;3,4;5,6]; b = [10;20;30];
Example:To specify that the control variables sum to 1 or less, give the constraintsA = ones(1,N)
andb = 1
.
Data Types:double
Aeq
—Linear equality constraints
real matrix
Linear equality constraints, specified as a real matrix.Aeq
is anMe
-by-nvars
matrix, whereMe
is the number of equalities.
Aeq
encodes theMe
linear equalities
Aeq*x = beq
,
wherex
is the column vector ofN
variablesx(:)
, andbeq
is a column vector withMe
elements.
For example, to specify
x1+ 2x2+ 3x3= 10
2x1+ 4x2+x3= 20,
give these constraints:
Aeq = [1,2,3;2,4,1]; beq = [10;20];
Example:To specify that the control variables sum to 1, give the constraintsAeq = ones(1,N)
andbeq = 1
.
Data Types:double
beq
—Linear equality constraints
real vector
Linear equality constraints, specified as a real vector.beq
is anMe
-element vector related to theAeq
matrix. If you passbeq
as a row vector, solvers internally convertbeq
to the column vectorbeq(:)
.
beq
encodes theMe
linear equalities
Aeq*x = beq
,
wherex
is the column vector ofN
variablesx(:)
, andAeq
is a matrix of sizeMeq
-by-N
.
For example, to specify
x1+ 2x2+ 3x3= 10
2x1+ 4x2+x3= 20,
give these constraints:
Aeq = [1,2,3;2,4,1]; beq = [10;20];
Example:To specify that the control variables sum to 1, give the constraintsAeq = ones(1,N)
andbeq = 1
.
Data Types:double
options
—Options
output ofoptimoptions
Options, specified as the output ofoptimoptions
.
For more information, seeSurrogate Optimization Options.
Option | Description | Values |
---|---|---|
BatchUpdateInterval |
|
Positive integer. Default is |
CheckpointFile |
File name for checkpointing and restarting optimization. The file has the Checkpointing takes time. This overhead is especially noticeable for functions that otherwise take little time to evaluate. |
File name or file path, given as a string or character array. If you specify a file name without a path, |
ConstraintTolerance |
Tolerance on nonlinear constraints, measured as the maximum of all nonlinear constraint function values, where positive values indicate a violation. This tolerance is an absolute (not relative) tolerance; seeTolerances and Stopping Criteria. | Positive scalar. Default is1e-3 . |
Display |
Level of display returned at the command line. |
|
InitialPoints |
Initial points for solver. | Matrix of initial points, where each row is one point. Or, a structure with field
SeeAlgorithm Control. Default is |
MaxFunctionEvaluations |
Maximum number of objective function evaluations, a stopping criterion. |
Positive integer. Default ismax(200,50*nvar) , wherenvar is the number of problem variables. |
MaxTime |
Maximum running time in seconds. The actual running time can exceedMaxTime because of the time required to evaluate an objective function or because of parallel processing delays. |
Positive scalar. Default isInf . |
MinSampleDistance |
Minimum distance between trial points generated by the adaptive sampler. SeeSurrogate Optimization Algorithm. | Positive scalar. Default is1e-3 . |
MinSurrogatePoints |
Minimum number of random sample points to create at the start of a surrogate creation phase. SeeSurrogate Optimization Algorithm. When |
Integer at leastnvar + 1. Default ismax(20,2*nvar) , wherenvar is the number of problem variables. |
ObjectiveLimit |
Tolerance on the objective function value. If a calculated objective function value of a feasible point is less thanObjectiveLimit , the algorithm stops. |
标量值的两倍。默认是-Inf . |
OutputFcn |
Output function to report on solver progress or to stop the solver. SeeOutput Function. | Function name, function handle, or cell array of function names or handles. Default is[] . |
PlotFcn |
Plot function to display solver progress or to stop solver. SeePlot Function. |
Function name, function handle, or cell array of function names or handles. Built-in plot functions are:
|
UseParallel |
Boolean value indicating whether to compute objective function values in parallel. You cannot specify both |
Boolean. Default isfalse . For algorithmic details, seeParallel surrogateopt Algorithm. |
UseVectorized |
Boolean value indicating whether to compute objective function values in batches of size You cannot specify both |
Boolean. Default isfalse . For an example, seeVectorized Surrogate Optimization for Custom Parallel Simulation. |
Example:options = optimoptions('surrogateopt','Display','iter','UseParallel',true)
problem
—Problem structure
structure
Problem structure, specified as a structure with these fields:
objective
— Objective function, which can include nonlinear constraints, specified as a function name or function handlelb
— Lower bounds forx
ub
— Upper bounds forx
solver
—'surrogateopt'
Aineq
— Matrix for linear inequality constraints (optional)bineq
— Vector for linear inequality constraints (optional)Aeq
— Matrix for linear equality constraints (optional)beq
— Vector for linear equality constraints (optional)options
— Options created withoptimoptions
rngstate
— Field to reset the state of the random number generator (optional)intcon
— Field specifying integer-valuedx
components (optional)
Note
Theseproblem
fields are required:objective
,lb
,ub
,solver
, andoptions
.
Data Types:struct
checkpointFile
—Path to checkpoint file
string|character vector
Path to a checkpoint file, specified as a string or character vector. A checkpoint file has the.mat
extension. If you specify a file name without a path,surrogateopt
uses a checkpoint file in the current folder.
A checkpoint file stores the state of an optimization for resuming the optimization.surrogateopt
updates the checkpoint file at each function evaluation, so you can resume the optimization even whensurrogateopt
halts prematurely. For an example, seeRestart Surrogate Optimization from Checkpoint File.
surrogateopt
creates a checkpoint file when it has a validCheckpointFile
option.
You can change some options when resuming from a checkpoint file. Seeopts
.
The data in a checkpoint file is in.mat
format. To avoid errors or other unexpected results, do not modify the data before callingsurrogateopt
.
Warning
Do not resumesurrogateopt
from a checkpoint file created with a different MATLAB®version.surrogateopt
can throw an error or give inconsistent results.
Example:'checkfile.mat'
Example:"C:\Program Files\MATLAB\docs\checkpointNov2019.mat"
Data Types:char
|string
opts
—Options for resuming from checkpoint file
[]
(default) |optimoptions
options from a restricted set
Options for resuming optimization from the checkpoint file, specified asoptimoptions
options (from a restricted set) that you can change from the original options. The options you can change are:
BatchUpdateInterval
CheckpointFile
Display
MaxFunctionEvaluations
MaxTime
MinSurrogatePoints
ObjectiveLimit
OutputFcn
PlotFcn
UseParallel
UseVectorized
Example:opts = optimoptions(options,'MaxFunctionEvaluations',400);
Output Arguments
fval
— Objective function value at solution
real number
exitflag
— Reasonsurrogateopt
stopped
integer
Reasonsurrogateopt
stopped, returned as one of the integer values described in this table.
Exit Flag | Description |
---|---|
|
Problem has a unique feasible solution due to one of the following:
|
3 |
Feasible point found. Solver stopped because too few new feasible points were found to continue. |
|
The objective function value is less than |
|
The number of function evaluations exceeds |
|
The optimization is terminated by an output function or plot function. |
|
No feasible point is found due to one of the following:
|
output
— Information about optimization process
structure
Information about the optimization process, returned as a structure with these fields:
funccount
— Total number of function evaluations.message
— Reason why the algorithm stopped.constrviolation
— Maximum nonlinear constraint violation, if any.constrviolation = max(output.ineq)
.ineq
— Nonlinear inequality constraint value at the solutionx
. Ifobjconstr
returns a structure, thenineq
=objconstr(x).Ineq
. Otherwise,ineq
is empty.rngstate
— State of the MATLAB random number generator just before the algorithm starts. Use this field to reproduce your results. SeeReproduce Results, which discusses usingrngstate
forga
.
trials
— Points evaluated
structure
Points evaluated, returned as a structure with these fields:
X
— Matrix withnvars
columns, wherenvars
is the length oflb
orub
. Each row ofX
represents one point evaluated bysurrogateopt
.Fval
— Column vector, where each entry is the objective function value of the corresponding row ofX
.Ineq
— Matrix with each row representing the constraint function values of the corresponding row ofX
.
Thetrials
structure has the same form as theoptions.InitialPoints
structure. So, you can continue an optimization by passing thetrials
structure as theInitialPoints
option.
Algorithms
surrogateopt
repeatedly performs these steps:
Create a set of trial points by sampling
MinSurrogatePoints
random points within the bounds, and evaluate the objective function at the trial points.Create a surrogate model of the objective function by interpolating a radial basis function through all of the random trial points.
Create a merit function that gives some weight to the surrogate and some weight to the distance from the trial points. Locate a small value of the merit function by randomly sampling the merit function in a region around the incumbent point (best point found since the last surrogate reset). Use this point, called the adaptive point, as a new trial point.
Evaluate the objective at the adaptive point, and update the surrogate based on this point and its value. Count a "success" if the objective function value is sufficiently lower than the previous best (lowest) value observed, and count a "failure" otherwise.
Update the dispersion of the sample distribution upwards if three successes occur before
max(nvar,5)
failures, wherenvar
d的数量吗imensions. Update the dispersion downwards ifmax(nvar,5)
failures occur before three successes.Continue from step 3 until all trial points are within
MinSampleDistance
of the evaluated points. At that time, reset the surrogate by discarding all adaptive points from the surrogate, reset the scale, and go back to step 1 to createMinSurrogatePoints
new random trial points for evaluation.
For details, seeSurrogate Optimization Algorithm.
Alternative Functionality
App
TheOptimizeLive Editor task provides a visual interface forsurrogateopt
.
Extended Capabilities
Automatic Parallel Support
Accelerate code by automatically running computation in parallel using Parallel Computing Toolbox™.
To run in parallel, set the'UseParallel'
option totrue
.
options = optimoptions('
solvername
','UseParallel',true)
For more information, seeHow to Use Parallel Processing in Global Optimization Toolbox.
See Also
Abrir ejemplo
Tiene una versión modificada de este ejemplo. ¿Desea abrir este ejemplo con sus modificaciones?
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select:.
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina(Español)
- Canada(English)
- United States(English)
Europe
- Belgium(English)
- Denmark(English)
- Deutschland(Deutsch)
- España(Español)
- Finland(English)
- France(Français)
- Ireland(English)
- Italia(Italiano)
- Luxembourg(English)
- Netherlands(English)
- Norway(English)
- Österreich(Deutsch)
- Portugal(English)
- Sweden(English)
- Switzerland
- United Kingdom(English)