CGO rbfSolve: Difference between revisions
Line 95: | Line 95: | ||
|colspan="2"|'''- Special RBF algorithm parameters in Prob.CGO -''' | |colspan="2"|'''- Special RBF algorithm parameters in Prob.CGO -''' | ||
|-valign="top" | |-valign="top" | ||
|''rbfType''|| | |''rbfType''||Selects type of radial basis function | ||
{|class="wikitable" | |||
!Value||Type | |||
|- | |||
|1||Thin Plate Spline | |||
|- | |||
|2||Cubic Spline (default) | |||
|- | |||
|3||Multiquadric | |||
|- | |||
|4||Inverse multiquadric | |||
|- | |||
|5||Gaussian | |||
|- | |||
|6||Linear. | |||
|} | |||
|-valign="top" | |-valign="top" | ||
|''infStep''||If =1, add search step with target value ''- | |''infStep''||If =1, add search step with target value ''-inf''first in cycle.<br>Default 0. Always =1 for the case ''fStartRule'' == 3 | ||
|-valign="top" | |-valign="top" | ||
|''fStarRule''||Global-Local search strategy | |''fStarRule''||Global-Local search strategy. N = cycle length.<br>Define ''min_sn'' as the global minimum on surface. | ||
{|class="wikitable" | |||
!Value||fStar target value | |||
|- | |||
|1||''min_sn - ''((''N - ''(''n - nInit''))''/N '')<sup>2</sup>'' * ''Delta<sub>n</sub>'' (Default) | |||
|- | |||
|2||''min_sn'' - (''N'' - (''n'' - ''nInit''))/''N'' * ''Delta<sub>n</sub>''. | |||
|- | |||
|colspan="2"|Strategy 1 and 2 depends on ''Delta<sub>n</sub>'' estimate (see ''DeltaRule''). | |||
|- | |||
|3||-inf-step, ''min_sn''-''k'' *0.1*<nowiki>|</nowiki>min_sn<nowiki>|</nowiki> k = N,...,0. | |||
|- | |||
|colspan="2"|If ''infStep'' true, addition of -inf-step first in cycle. | |||
|} | |||
|-valign="top" | |-valign="top" | ||
|''DeltaRule''||1 = Skip large f(x) when computing f(x) interval | |''DeltaRule''||1 = Skip large f(x) when computing f(x) interval ''Delta''.<br>0 = Use all points.<br>If ''objType'' > 0, default ''DeltaRule'' = 0, otherwise default is 1. | ||
|-valign="top" | |-valign="top" | ||
|''AddSurfMin''||Add up to AddSurfMin interior local minima on RBF surface as search points, based on estimated Lipschitz constants. AddSurfMin=0 implies no additional minimum added (Default). | |''AddSurfMin''||Add up to ''AddSurfMin'' interior local minima on RBF surface as search points, based on estimated Lipschitz constants. ''AddSurfMin''=0 implies no additional minimum added (Default ''AddSurfMin''==1).<br>Only possible if ''globalSolver'' = ''multiMin'' or glcDirect. <br>Test for additional minimum in local step (modN == N)<br>modN = -2,-3,-4,... are iteration steps with these search points. | ||
|-valign="top" | |-valign="top" | ||
|''TargetMin''||Which minimum | |''TargetMin''||Which minimum of several to pick in target value problem: | ||
=3 | {|class="wikitable" | ||
!Value||Minimum picked | |||
|- | |||
|0||Use global minimum. | |||
|- | |||
|1||Use best interior local minima, if none use global minimum. | |||
|- | |||
|2||Use best interior local minima, if none use RBF interior minimum. | |||
|- | |||
|3||Use best minimum with lowest number of coefficients on bounds. | |||
|} | |||
Default is ''TargetMin'' = 3. | |||
|-valign="top" | |-valign="top" | ||
|''eps_sn''||Relative tolerance used to test if the minimum of | |''eps_sn''||Relative tolerance used to test if the minimum of surface, ''min_sn'', is sufficiently lower than the best point (''fMin'') found. Default is ''eps_sn'' = 10<sup>-7</sup>. | ||
|} | |} |
Revision as of 07:55, 20 June 2014
This page is part of the CGO Manual. See CGO Manual. |
Purpose
Solve general constrained mixed-integer global black-box optimization problems with costly objective functions.
The optimization problem is of the following form
where ; ; the linear constraints are defined by , ; and the nonlinear constraints are defined by . The variables are restricted to be integers, where is an index subset of possibly empty. It is assumed that the function is continuous with respect to all variables, even if there is a demand that some variables only take integer values. Otherwise it would not make sense to do the surrogate modeling of used by all CGO solvers.
f (x) is assumed to be a costly function while c(x) is assumed to be cheaply computed. Any costly constraints can be treated by adding penalty terms to the objective function in the following way:
where weighting parameters wj have been added. The user then returns p(x) instead of f (x) to the CGO solver.
Calling Syntax
Result = rbfSolve(Prob,varargin) Result = tomRun('rbfSolve', Prob);
Description of Inputs
Problem description structure. The following fields are used:
Field | Description |
---|---|
Name | See common input for all CGO solvers |
FUNCS.f | |
FUNCS.c | |
x_L | |
x_U | |
b_U | |
b_L | |
A | |
c_L | |
c_U | |
WarmStart | |
MaxCPU | |
user | |
PriLevOpt | |
f_Low | |
optParam | |
CGO | See the table below but also this table for input common to all CGO solvers |
GO | See common input for all CGO solvers |
MIP | See common input for all CGO solvers |
varargin | Additional parameters to arbfmip are sent to the costly f(x) |
- Special RBF algorithm parameters in Prob.CGO - | |||||||||||||||
rbfType | Selects type of radial basis function
| ||||||||||||||
infStep | If =1, add search step with target value -inffirst in cycle. Default 0. Always =1 for the case fStartRule == 3 | ||||||||||||||
fStarRule | Global-Local search strategy. N = cycle length. Define min_sn as the global minimum on surface.
| ||||||||||||||
DeltaRule | 1 = Skip large f(x) when computing f(x) interval Delta. 0 = Use all points. If objType > 0, default DeltaRule = 0, otherwise default is 1. | ||||||||||||||
AddSurfMin | Add up to AddSurfMin interior local minima on RBF surface as search points, based on estimated Lipschitz constants. AddSurfMin=0 implies no additional minimum added (Default AddSurfMin==1). Only possible if globalSolver = multiMin or glcDirect. Test for additional minimum in local step (modN == N) modN = -2,-3,-4,... are iteration steps with these search points. | ||||||||||||||
TargetMin | Which minimum of several to pick in target value problem:
Default is TargetMin = 3. | ||||||||||||||
eps_sn | Relative tolerance used to test if the minimum of surface, min_sn, is sufficiently lower than the best point (fMin) found. Default is eps_sn = 10-7. |
Description of Outputs
Structure with result from optimization. The following fields are changed:
Field | Description |
---|---|
x_k | Matrix with the best points as columns. |
f_k | The best function value found so far. |
Iter | Number of iterations. |
FuncEv | Number of function evaluations. |
ExitText | Text string with information about the run. |
ExitFlag | Always 0. |
CGO | Subfield WarmStartInfo saves warm start information, the same information as in cgoSave.mat, see below. |
Inform | Information parameter.
0 = Normal termination. 1 = Function value f(x) is less than fGoal. 2 = Error in function value f (x), |f - fGoal| <= fTol, fGoal = 0. 3 = Relative Error in function value f (x) is less than fTol, i.e. |f - fGoal| |fGoal| <= fTol. 4 = No new point sampled for MaxCycle iteration steps. 5 = All sample points same as the best point for MaxCycle last iterations. 6 = All sample points same as previous point for MaxCycle last iterations. 7 = All feasible integers tried. 8 = No progress for MaxCycle * (N + 1) + 1 function evaluations (> MaxCycle cycles, input CGO.MaxCycle). 9 = Max CPU Time reached. |
cgoSave.mat | To make a warm start possible, all CGO solvers saves information in the file cgoSave.mat. The file is created independent of the solver, which enables the user to call any CGO solver using the warm start information. cgoSave.mat is a MATLAB mat-file saved to the current directory. If the parameter SAVE is 1, the CGO solver saves the mat file every iteration, which enables the user to break the run and restart using warm start from the current state. SAVE = 1 is currently always set by the CGO solvers. If the cgoSave.mat file fails to open for writing, the information is also available in the output field Result.CGO.WarmStartInfo, if the run was concluded without interruption. Through a call to WarmDefGLOBAL, the Prob structure can be setup for warm start. In this case, the CGO solver will not load the data from cgoSave.mat. The file contains the following variables: |
Name | Problem name. Checked against the Prob.Name field if doing a warmstart. |
O | Matrix with sampled points (in original space). |
X | Matrix with sampled points (in unit space if SCALE==1) |
F | Vector with function values (penalty added for costly Cc(x)) |
F_m | Vector with function values (replaced). |
F00 | Vector of pure function values, before penalties. Cc MMatrix with costly constraint values, C c(x). nInit Number of initial points. |
Fpen | Vector with function values + additional penalty if infeasible using the linear constraints and noncostly nonlinear c(x). |
fMinIdx | Index of the best point found. |
rngState | Current state of the random number generator used. |
Description
rbfSolve implements the Radial Basis Function (RBF) algorithm based on the work by Gutmann. The RBF method is enhanced to handle linear equality and inequality constraints, and nonlinear equality and inequality constraints, as well as mixed-integer problems.
A response surface based on radial basis functions is fitted to a collection of sampled points. The algorithm then balances between minimizing the fitted function and adding new points to the set.
M-files Used
daceInit.m, iniSolve.m, endSolve.m, conAssign.m, glcAssign.m, snSolve.m, gnSolve.m, expDesign.m.
MEX-files Used
tomsol
See Also
ego.m
Warnings
Observe that when cancelling with CTRL+C during a run, some memory allocated by rbfSolve will not be deal- located. To deallocate, do:
>> clear cgolib