|
|
Line 48: |
Line 48: |
| ==Description of Inputs== | | ==Description of Inputs== |
|
| |
|
| Problem description structure. The following fields are used: | | ===Problem structure=== |
| | |
| | The following fields are used in the problem description structure '''Prob''': |
|
| |
|
| {|class="wikitable" | | {|class="wikitable" |
| !Input||Description | | !Input||Description |
| | |-valign="middle" |
| | |''Name''||rowspan="16"|See [[Common input for all CGO solvers]] |
| |-valign="top" | | |-valign="top" |
| |''Name''||Name of the problem. Used for security when doing warm starts. | | |''FUNCS.f'' |
| |-valign="top" | | |-valign="top" |
| |''FUNCS.f''||Name of function to compute the objective function. | | |''FUNCS.c'' |
| |-valign="top" | | |-valign="top" |
| |''FUNCS.c''||Name of function to compute the nonlinear constraint vector. | | |''x_L'' |
| |-valign="top" | | |-valign="top" |
| |''x_L''||Lower bounds on the variables. Must be finite. | | |''x_U'' |
| |-valign="top" | | |-valign="top" |
| |''x_U''||Upper bounds on the variables. Must be finite. | | |''b_L'' |
| |-valign="top" | | |-valign="top" |
| |''b_U''||Upper bounds for the linear constraints. | | |''b_U'' |
| |-valign="top" | | |-valign="top" |
| |''b_L''||Lower bounds for the linear constraints. | | |''A'' |
| |-valign="top" | | |-valign="top" |
| |''A''||Linear constraint matrix. | | |''c_L'' |
| |-valign="top" | | |-valign="top" |
| |''c_L''||Lower bounds for the nonlinear constraints. | | |''c_U'' |
| |-valign="top" | | |-valign="top" |
| |''c_U''||Upper bounds for the nonlinear constraints. | | |''WarmStart'' |
| |-valign="top" | | |-valign="top" |
| |''WarmStart''||Set true (non-zero) to load data from previous run from ''cgoSave.mat ''and re- sume optimization from where the last run ended. If ''Prob.CGO.WarmStartInfo ''has been defined through a call to ''WarmDefGLOBAL'', this field is used instead of the ''cgoSave.mat ''file. All CGO solvers uses the same mat-file and structure field and can read the output of one another. | | |''MaxCPU'' |
| |-valign="top" | | |-valign="top" |
| |''MaxCPU''||Maximal CPU Time (in seconds) to be used. | | |''user'' |
| |-valign="top" | | |-valign="top" |
| |''user''||User field used to send information to low-level functions. | | |''PriLevOpt'' |
| |-valign="top" | | |-valign="top" |
| |''PriLevOpt''||Print Level. 0 = silent. 1 = Summary 2 = Printing each iteration. 3 = Info about local / global solution. 4 = Progress in x. | | |''f_Low'' |
| |-valign="top" | | |-valign="top" |
| |''PriLevSub''||Print Level in subproblem solvers, see help in ''snSolve ''and ''gnSolve''. | | |''optParam'' |
| |-valign="top" | | |-valign="top" |
| |''f_Low''||Lower bound on the optimal function value. If defined, used to restrict the target values into interval \[f Low,min(surface)\]. | | |''CGO''||See the table below but also [[common input for all CGO solvers#CGO structure|this table]] for input common to all CGO solvers |
| |-valign="top" | | |-valign="top" |
| |''optParam''||Structure with optimization parameters. The following fields are used: | | |''GO''||See [[common input for all CGO solvers#GO structure|common input for all CGO solvers]] |
| |-valign="top" | | |-valign="top" |
| |''MaxFunc''||Maximal number of costly function evaluations, default 300 for ''rbfSolve ''and ''arbfMIP'', and default 200 for ''ego''. ''MaxFunc ''must be ''<= ''5000. If WarmStart = 1 and MaxFunc ''<= ''nFunc (Number of f(x) used) then set MaxFunc := MaxFunc + nFunc. | | |''MIP''||See [[common input for all CGO solvers#MIP structure|common input for all CGO solvers]] |
| |-valign="top" | | |-valign="top" |
| |''IterPrint''||Print one information line each iteration, and the new x tried. Default IterPrint = 1. fMinI means the best f(x) is infeasible. fMinF means the best f(x) is feasible (also integer feasible). | | |''varargin''||Additional parameters to arbfmip are sent to the costly f(x) |
| |-valign="top"
| | |} |
| |''fGoal''||Goal for function value, not used if ''inf ''or empty.
| |
| |-valign="top"
| |
| |''eps_f''||Relative accuracy for function value, ''fTol ''== ''eps_f ''. Stop if ''<nowiki>|</nowiki>f - fGoal<nowiki>|</nowiki> ='' ''<nowiki>|</nowiki>f_Goal<nowiki>|</nowiki> * fTol '', if ''fGoal ''= 0. Stop if ''<nowiki>|</nowiki>f - fGoal<nowiki>|</nowiki> = fTol '', if ''fGoal ''= 0. See the output field maxTri.
| |
| |-valign="top"
| |
| |''bTol''||Linear constraint tolerance.
| |
| |-valign="top"
| |
| |''cTol''||Nonlinear constraint tolerance.
| |
| |-valign="top"
| |
| |''MaxIter''||Maximal number of iterations used in the local optimization on the re- sponse surface in each step. Default 1000, except for pure IP problems, then max(GO.MaxFunc, MaxIter);.
| |
| |-valign="top"
| |
| |''CGO''||Structure (''Prob.CGO'') with parameters concerning global optimization options.
| |
| | |
| The following general fields in Prob.CGO are used:
| |
| |-valign="top"
| |
| |''Percent''||Type of strategy to get the initial sampled values: | |
|
| |
|
| {|class="wikitable" | | {|class="wikitable" |
| |Percent||Experimental Design||ExD
| |
| |-valign="top"
| |
| |||'''Corner strategies'''||
| |
| |-valign="top"
| |
| |900||All Corners||1
| |
| |-valign="top"
| |
| |997||''xL ''+ ''xU ''+ adjacent corners||2
| |
| |-valign="top"
| |
| |998||''xU ''+ adjacent corners||3
| |
| |-valign="top"
| |
| |999||''xL ''+ adjacent corners||4
| |
| |-valign="top"
| |
| |||'''Deterministic Strategies'''||
| |
| |-valign="top"
| |
| |0||User given initial points||5
| |
| |-valign="top"
| |
| |94||DIRECT solver ''glbFast''||6
| |
| |-valign="top"
| |
| |95||DIRECT solver ''glcFast''||6
| |
| |-valign="top"
| |
| |96||DIRECT solver ''glbSolve''||6
| |
| |-valign="top"
| |
| |97||DIRECT solver ''glcSolve''||6
| |
| |-valign="top"
| |
| |98||DIRECT solver ''glbDirect''||6
| |
| |-valign="top"
| |
| |99||DIRECT solver ''glcDirect''||6
| |
| |-valign="top"
| |
| |||'''Latin Based Sampling'''||
| |
| |-valign="top"
| |
| |1||Maximin LHD 1-norm||7
| |
| |-valign="top"
| |
| |2||Maximin LHD 2-norm||8
| |
| |-valign="top"
| |
| |3||Maximin LHD Inf-norm||9
| |
| |-valign="top"
| |
| |4||Minimal Audze-Eglais||10
| |
| |-valign="top"
| |
| |5||Minimax LHD (only 2 dim)||11
| |
| |-valign="top"
| |
| |6||Latin Hypercube||12
| |
| |-valign="top"
| |
| |7||Orthogonal Samling||13
| |
| |-valign="top"
| |
| |||'''Random Strategies (pp in %)'''||
| |
| |-valign="top"
| |
| |1pp||Circle surrounding||14
| |
| |-valign="top"
| |
| |2pp||Ellipsoid surrounding||15
| |
| |-valign="top"
| |
| |3pp||Rectangle surrounding||16
| |
| |-valign="top" | | |-valign="top" |
| |} | | |colspan="2"|'''- Special ARBF algorithm parameters in Prob.CGO -''' |
| | |
| Negative values of Percent result in constrained versions of the experimental design methods 7-16. It means that all points sampled are feasible with respect to all given constraints.
| |
| | |
| For ExD 5,6-12,14-16 user defined points are used.
| |
| |-valign="top" | | |-valign="top" |
| |''nSample''||Number of sample points to be used in initial experimental design. ''nSample ''is used differently dependent on the value of Percent: | | |''rbfType''||Selects type of radial basis function |
|
| |
|
| {|class="wikitable" | | {|class="wikitable" |
| !||(n)Sample: | | !Value||Type |
| |-valign="top" | | |- |
| !ExD||''< ''0||= 0||''> ''0||[]
| | |1||Thin Plate Spline |
| |-valign="top" | | |- |
| |1||2<sup>''d''</sup>
| | |2||Cubic Spline (default) |
| |-valign="top" | | |- |
| |6||<nowiki>|</nowiki>n<nowiki>|</nowiki> | | |3||Multiquadric |
| |-valign="top" | | |- |
| |7-11||''d''+ 1||''d'' + 1||max (''d ''+ 1'', n'')||(''d ''+ 1)(''d ''+ 2)''/''2 | | |4||Inverse multiquadric |
| |-valign="top" | | |- |
| |12||LATIN(k) | | |5||Gaussian |
| |-valign="top" | | |- |
| |13||<nowiki>|</nowiki>n<nowiki>|</nowiki> | | |6||Linear. |
| |-valign="top" | |
| |14-16||''d'' + 1 | |
| |} | | |} |
|
| |
|
| where LATIN = [21 21 33 41 51 65 65] and ''k ''= ''<nowiki>|</nowiki>nSample<nowiki>|</nowiki>''. Otherwise nSample as input does not matter.
| |
|
| |
| '''Description of the experimental designs:'''
| |
|
| |
| '''ExD 1, '''All Corners. Initial points is the corner points of the box given by Prob.x L and Prob.x U. Generates 2''d ''points, which results in too many points when the dimension is high.
| |
|
| |
| '''ExD 2, '''Lower and Upper Corner point + adjacent points. Initial points are
| |
|
| |
| 2 ''* d ''+ 2 corners: the lower left corner ''xL ''and its ''d ''adjacent corners ''xL ''+ (''xU ''(''i'') ''- xL ''(''i'')) ''* ei , i ''= 1'', ..., d ''and the upper right corner ''xU ''and its ''d ''adjacent corners ''xU - ''(''xU ''(''i'') ''- xL ''(''i'')) ''* ei , i ''= 1'', ..., d''
| |
|
| |
| '''ExD 3. '''Initial points are the upper right corner ''xU ''and its ''d ''adjacent corners ''xU - ''(''xU ''(''i'') ''- xL ''(''i'')) ''* ei , i ''= 1'', ..., d''
| |
|
| |
| '''ExD 4. '''Initial points are the lower left corner ''xL ''and its ''d ''adjacent corners ''xL ''+ (''xU ''(''i'') ''- xL ''(''i'')) ''* ei , i ''= 1'', ..., d''
| |
|
| |
| '''ExD 5. '''User given initial points, given as a matrix in CGO.X. Each column is one sampled point. If ''d ''= length(Prob.x L), then size(X,1) = d, size(X,2) ''='' ''d ''+ 1. CGO.F should be defined as empty, or contain a vector of corresponding ''f ''(''x'') values. Any CGO.F value set as NaN will be computed by solver routine.
| |
|
| |
| '''ExD 6. '''Use determinstic global optimization methods to find the initial design. Current methods available (all DIRECT methods), dependent on the value of Percent:
| |
|
| |
| 99 = glcDirect, 98 = glbDirect, 97 = glcSolve, 96 = glbSolve, 95 = glcFast, 94 = glbFast.
| |
|
| |
| '''ExD 7-11. '''Optimal Latin Hypercube Designs (LHD) with respect to different norms. The following norms and designs are available, dependent on the value of Percent:
| |
|
| |
| 1 = Maximin 1-Norm, 2 = Maximin 2-Norm, 3 = Maximin Inf-Norm, 4 = Audze-Eglais Norm, 5 = Minimax 2-Norm.
| |
|
| |
| All designs taken from: [http://www.spacefillingdesigns.nl/ http://www.spacefillingdesigns.nl/]
| |
|
| |
| Constrained versions will try bigger and bigger designs up to ''M ''= max(10 ''* d, nT rial'') different designs, stopping when it has found nSample feasible points.
| |
|
| |
| '''ExD 12. '''Latin hypercube space-filling design. For nSample ''< ''0, ''k ''= ''<nowiki>|</nowiki>nSample<nowiki>|</nowiki> ''should in principle be the problem dimension. The number of points
| |
|
| |
| sampled is:
| |
|
| |
| k : 2 3 4 5 6 ''> ''6
| |
|
| |
| Points : 21 33 41 51 65 65
| |
|
| |
| The call made is: X = daceInit(abs(nSample),Prob.x L,Prob.x U); Set nSample = [ ] to get (d+1)*(d+2)/2 sampled points:
| |
|
| |
| d : 1 2 3 4 5 6 7 8 9 10
| |
|
| |
| Points : 3 6 10 15 21 28 36 45 55 66
| |
|
| |
| This is a more efficient number of points to use.
| |
|
| |
| If CGO.X is nonempty, these points are verified as in ExD 5, and treated as already sampled points. Then nSample additional points are sampled, restricted to be close to the given points.
| |
|
| |
| Constrained version of Latin hypercube only keep points that fulfill the linear and nonlinear constraints. The algorithm will try up to ''M ''= ''max''(10 ''* d, nTrial'') points, stopping when it has found nSample feasible points (''d ''+ 1 points if ''nSample < ''0).
| |
|
| |
| '''ExD 13. '''Orthogonal Sampling, LH with subspace density demands.
| |
|
| |
| '''ExD 14-16'''. Random strategies, the ''<nowiki>|</nowiki>Percent<nowiki>|</nowiki> ''value gives the percentage size of an ellipsoid, circle or rectangle around the so far sampled points that new points are not allowed in. Range 1%-50%. Recommended values 10% - 20%.
| |
|
| |
| If CGO.X is nonempty, these points are verified as in ExD 5, and treated as already sampled points. Then nSample additional points are sampled, restricted to be close to the given points.
| |
| |-valign="top" | | |-valign="top" |
| |''X,F,CX''||The fields X,F,CX are used to define user given points. ExD = 5 (Percent = 0) needs this information. If ExD == 6-12,14-16 these points are included into the design. | | |''infStep''||If =1, add search step with target value ''-inf''first in cycle.<br>Default 0 |
| |-valign="top"
| |
| |''X''||A matrix of initial x values. One column for every x value. If ExD == 5, size(X,2) ''>= ''dim(x)+1 needed.
| |
| |-valign="top"
| |
| |''F''||A vector of initial ''f ''(''x'') values. If any element is set to NaN it will be computed.
| |
| |-valign="top"
| |
| |''CX''||Optionally a matrix of nonlinear constraint c(x) values. If nonempty, then size(CX,2) == size(X,2). If any element is set as NaN, the vector c(x) = CX(:,i) will be recomputed.
| |
| |-valign="top"
| |
| |''RandState''||If ''>= ''0, ''rand''(''<nowiki>'</nowiki>state<nowiki>'</nowiki>, RandState'') is set to initialize the pseudo-random generator. If ''< ''0, ''rand''(''<nowiki>'</nowiki>state<nowiki>'</nowiki>, ''100 ''* clock'') is set to give a new set of random values each run. If isnan(RandState), the random state is not initialized. RandState will influence if a stochastic initial experimental design is applied, see input Percent and nSample. RandState will also influence if using the ''multiMin'' solver, but the random state seed is not reset in ''multiMin''. The state of the random generator is saved in the warm start output rngState, and the random generator is reinitialized with this state if warm start is used. Default RandState = 0.
| |
| |-valign="top"
| |
| |''AddMP''||If = 1, add the midpoint as extra point in the corner strategies. Default 1 for any corner strategy, i.e. Percent is 900, 997, 998 or 999.
| |
| |-valign="top"
| |
| |''nTrial''||For experimental design CLH, the method generates ''M ''= ''max''(10 ''* d, nTrial'') trial points, and evaluate them until ''nSample ''feasible points are found. In the random designs, ''nTrial ''is the maximum number of trial points randomly generated for each new point to sample.
| |
| |-valign="top"
| |
| |''CLHMethod''||Different search strategies for finding feasible LH points. First of all, the least infeasible point is added. Then the linear feasible points are considered. If more points are needed still, the nonlinear infeasible points are added.
| |
| | |
| 1 - Take the sampled infeasible points in order.
| |
|
| |
|
| 2 - Take a random sample of the infeasible points.
| |
|
| |
| 3 - Use points with lowest constraint error (cErr).
| |
| |-valign="top" | | |-valign="top" |
| |''SCALE''||0 - Original search space (default if any integer values). | | |''TargetMin''||Which minimum of several to pick in target value problem: |
|
| |
|
| 1 - Transform search space to unit cube (default if no integers).
| | {|class="wikitable" |
| |-valign="top" | | !Value||Minimum picked |
| |''REPLACE''||0 - No replacement, default for constrained problems. | | |- |
| | | |0||Use global minimum. |
| 1 - Large function values are replaced by the median.
| | |- |
| | |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. |
|
| |
|
| ''> ''1 - Large values Z are replaced by new values. The replacement is defined as ''Z '':= ''F M AX ''+ ''log''10(''Z - F M AX ''+ 1), where ''FMAX ''= 10<sup>''REPLACE''</sup>, if ''min''(''F '') ''< ''0 and ''FMAX ''= 10<sup>(''ceil''(''log''10(''min''(''F '')))+''REPLACE'')</sup>, if ''min''(''F '') ''>= ''0. A new replacement is computed in every iteration, because ''min''(''F '') may change. Default REPLACE = 5, if no linear or nonlinear constraints.
| |
| |-valign="top" | | |-valign="top" |
| |''LOCAL''||0 - No local searches after global search. If RBF surface is inaccurate, might be an advantage. | | |''fStarRule''||Global-Local search strategy. N = cycle length.<br>Define ''min_sn'' as the global minimum on surface. |
|
| |
|
| 1 - Local search from best points after global search. If equal best function values, up to 20 local searches are done.
| | {|class="wikitable" |
| |-valign="top" | | !Value||fStar target value |
| |''SMOOTH''||1 - The problem is smooth enough for local search using numerical gradient estimation methods (default). | | |- |
| | | |1||''min_sn - ''((''N - ''(''n - nInit''))''/N '')<sup>2</sup>'' * ''Delta<sub>n</sub>'' (Default) |
| 0 - The problem is nonsmooth or noisy, and local search methods using numer- ical gradient estimation are likely to produce garbage search directions.
| | |- |
| |-valign="top" | | |2||''min_sn'' - (''N'' - (''n'' - ''nInit''))/''N'' * ''Delta<sub>n</sub>''. |
| |''globalSolver''||Global optimization solver used for subproblem optimization. Default ''glcCluster'' (SMOOTH=1) or | | |- |
| ''glcDirect ''(SMOOTH=0). If the global Solver is ''glcCluster'', the fields ''Prob.GO.maxFunc1'', ''Prob.GO.maxFunc2'', ''Prob.GO.maxFunc3'', ''Prob.GO.localSolver'', ''Prob.GO.DIRECT ''and other fields set in ''Prob.GO ''are used. See the help for these parameters in ''glcCluster''. | | |colspan="2"|Strategy 1 and 2 depends on ''Delta<sub>n</sub>'' estimate (see ''DeltaRule''). |
| |-valign="top" | | |- |
| |''localSolver''||Local optimization solver used for subproblem optimization. If not defined, the TOMLAB default constrained NLP solver is used. | | |3||-inf-step, ''min_sn''-''k'' *0.1*<nowiki>|</nowiki>min_sn<nowiki>|</nowiki> k = N,...,0. |
| | | |- |
| '''- Special RBF algorithm parameters in Prob.CGO -''' | | |colspan="2"|If ''infStep'' true, addition of -inf-step first in cycle. |
| |-valign="top"
| | |} |
| |''rbfType''||Type of radial basis function: 1 - thin plate spline; 2 - Cubic Spline (default); 3 - Multiquadric; 4 - Inverse multiquadric; 5 - Gaussian; 6 - Linear.
| |
| |-valign="top"
| |
| |''idea''||Global search type, always idea = 1, i.e. use fnStar values. if ''fStarRule ''=3, then N=1 default, otherwise N=4 default. By default ''idea ''=1, ''fStarRule ''=1, i.e. ''N ''=4. To change ''N'', see below.
| |
| |-valign="top" | |
| |''N''||Cycle length in idea 1 (default N=1 for fStarRule 3, otherwise default N=4) or idea 2 (always N=3). | |
| |-valign="top"
| |
| |''infStep''||If =1, add search step with target value ''-8 ''first in cycle. Default 0. Always
| |
| | |
| =1 for the case ''idea ''=1, ''fStarRule ''=3.
| |
| |-valign="top" | |
| |''fStarRule''||Global-Local search strategy in idea 1, where N is the cycle length. Define ''minsn ''as the global minimum on the RBF surface. The following strategies for setting the target value ''fStar ''is defined: 1: ''fStar ''= ''min<sub>sn</sub> - ''((''N - ''(''n - nInit''))''/N '')<sup>2</sup> ''* ''Δ''n ''(Default), 2: ''fStar ''= ''min<sub>sn</sub> - ''(''N - ''(''n - nInit''))''/N * ''Δ''n ''. | |
|
| |
|
| Strategy 1 and 2 depends on Δ ''<sub>n</sub> ''estimate (see DeltaRule). If ''infStep ''=1, add <math>-\infty</math>-step first in cycle. 3: fStar = <math>-\infty</math>-step, ''min<sub>sn</sub>-k *''0''.''1''*<nowiki>|</nowiki>min<sub>sn</sub><nowiki>|</nowiki>k ''= ''N, ..., ''0. | | Strategy names in Gutmanns thesis: III, II, I |
|
| |
|
| These strategies had the following names in Gutmanns thesis: III, II, I.
| |
| |-valign="top" | | |-valign="top" |
| |''DeltaRule''||1 = Skip large f(x) when computing f(x) interval δ. 0 = Use all points. Default 1. | | |''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"
| |
| |''eps_sn''||Relative tolerance used to test if the minimum of the RBF surface, ''minsn '', is sufficiently lower than the best point (''fM in '') found (default is 10''-''7 ).
| |
| |-valign="top"
| |
| |''MaxCycle''||Max number of cycles without progress before stopping, default 10.
| |
| |-valign="top"
| |
| |''GO''||Structure ''Prob.GO ''(Default values are set for all fields).
| |
| |-valign="top"
| |
| |''MaxFunc''||Maximal number of function evaluations in each global search.
| |
| |-valign="top"
| |
| |''MaxIter''||Maximal number of iterations in each global search.
| |
| |-valign="top"
| |
| |''DIRECT''||DIRECT solver used in glcCluster, either glcSolve or glcDirect(default).
| |
| |-valign="top"
| |
| |''maxFunc1''||glcCluster parameter, maximum number of function evaluations in the first call. Only used if globalSolver is glcCluster, see help globalSolver.
| |
| |-valign="top"
| |
| |''maxFunc2''||glcCluster parameter, maximum number of function evaluations in the second call. Only used if globalSolver is glcCluster, see help globalSolver.
| |
| |-valign="top"
| |
| |''maxFunc3''||glcCluster parameter, maximum sum of function evaluations in repeated first calls to DIRECT routine when trying to get feasible. Only used if globalSolver is glcCluster, see help ''globalSolver''. ''localSolver ''The local solver used by glcCluster. If not defined, then ''Prob.CGO.localSolver'' is used ''MIP ''Structure in Prob, Prob.MIP.
| |
|
| |
|
| Defines integer optimization parameters. Fields used:
| |
| |-valign="top" | | |-valign="top" |
| |''IntVars''||If empty, all variables are assumed non-integer. | | |''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>. |
|
| |
|
| If islogical(IntVars) (=all elements are 0/1), then 1 = integer variable, 0 = continuous variable. If any element ''> ''1, IntVars is the indices for integer variables.
| |
| |-valign="top"
| |
| |''varargin''||Other parameters directly sent to low level routines.
| |
| |} | | |} |
|
| |
|
|
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 = arbfMIP(Prob,varargin)
Result = tomRun('arbfMIP', Prob);
Description of Inputs
Problem structure
The following fields are used in the problem description structure Prob:
- Special ARBF algorithm parameters in Prob.CGO -
|
rbfType |
Selects type of radial basis function
Value |
Type
|
1 |
Thin Plate Spline
|
2 |
Cubic Spline (default)
|
3 |
Multiquadric
|
4 |
Inverse multiquadric
|
5 |
Gaussian
|
6 |
Linear.
|
|
infStep |
If =1, add search step with target value -inffirst in cycle. Default 0
|
TargetMin |
Which minimum of several to pick in target value problem:
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.
|
fStarRule |
Global-Local search strategy. N = cycle length. Define min_sn as the global minimum on surface.
Value |
fStar target value
|
1 |
min_sn - ((N - (n - nInit))/N )2 * Deltan (Default)
|
2 |
min_sn - (N - (n - nInit))/N * Deltan.
|
Strategy 1 and 2 depends on Deltan estimate (see DeltaRule).
|
3 |
-inf-step, min_sn-k *0.1*|min_sn| k = N,...,0.
|
If infStep true, addition of -inf-step first in cycle.
|
Strategy names in Gutmanns thesis: III, II, I
|
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.
|
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:
Output |
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 - f Goal| = fTol, fGoal = 0.
3 = Relative Error in function value f (x) is less than fTol, i.e. |f - f Goal|/|f Goal| = 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.
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). nInitNumber 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
arbfMIP implements the Adaptive Radial Basis Function (ARBF) algorithm. The ARBF method handles linear equality and inequality constraints, and nonlinear equality and inequality constraints, as well as mixed-integer problems.
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
rbfSolve.m and ego.m
Warnings
Observe that when cancelling with CTRL+C during a run, some memory allocated by arbfMIP will not be deallocated. To deallocate, do:
''>> ''clear cgolib