Comparison with MATLAB
MATLAB provides a function called
GlobalSearch
. This function is part of
the Global Optimization Toolbox and is used to solve global optimization problems [1]. The
GlobalSearch
algorithm is similar to the algorithm used in globalsearch-rs
. However, there are
some key differences between the two algorithms.
Local solvers
MATLAB uses the fmincon
function to solve the local optimization problems. The fmincon
function
is a constained nonlinear programming solver that finds the minimum of a multivariable function.
This function supports using five different algorithms to solve the optimization problem [2]:
interior-point
(default)trust-region-reflective
sqp
sqp-legacy
active-set
However, globalsearch-rs
uses the argmin
crate to solve
the local optimization problems. We use the provided unconstained nonlinear programming solvers
to solve the local optimization problems. We currently support the following local solvers:
LBFGS
(default)NelderMead
SteepstDescent
TrustRegion
NewtonCG
Support for using constrained solvers is planned when the argmin
crate supports it. See
argmin’s issue #137 for more information.
Evaluation of the reference set
In MATLAB’s GlobalSearch
, the reference set contains NumTrialPoints
points. However, the number
of evaluations of the objective function is limited to NumStageOnePoints
.
In globalsearch-rs
, the reference set contains population_size
points, and we evaluate the
objective function for all points in the reference set.
Variable bounds
In MATLAB’s GlobalSearch
, the variable bounds are specified using the lb
and ub
parameters.
However, unbounded components have artificial bounds imposed, where lb = -1e4 + 1
and
ub = 1e4 + 1
[3].
In globalsearch-rs
, the variable bounds are specified using the bounds
argument. The bounds are
specified as vector of tuples, where each tuple contains the lower and upper bounds of each
variable. Not specifying bounds for a variable is not supported, so the user must specify bounds for
all the variables. This is to ensure that the user is aware of the bounds of the variables and
selects them appropriately.
References
[1] GlobalSearch. The MathWorks, Inc. Available at: https://www.mathworks.com/help/gads/globalsearch.html (Accessed: 27 January 2025)
[2] Choosing the Algorithm, fmincon Algorithms. The MathWorks, Inc. Available at: https://www.mathworks.com/help/optim/ug/choosing-the-algorithm.html (Accessed: 18 March 2025)
[3] How GlobalSearch and MultiStart Work. The MathWorks, Inc. Available at: https://www.mathworks.com/help/gads/how-globalsearch-and-multistart-work.html (Accessed: 15 February 2025)