The MCS workflow is visualized in Figures 1 and 2. Each step of the algorithm can be split into four stages:
At each step the green point with the temporary yellow halo is the unique base point of the box; each box has an associated value of the objective, namely its value at the box's base point.
In order to determine if a box will be split two separate splitting criteria are used. The first one, splitting by rank, ensures that large boxes that have not been split too often will be split eventually. If it applies then the splitting point is easily determined at a fixed fraction of the length of the side being split. The second one, splitting by expected gain, employs a local one-dimensional parabolic quadratic model (surrogate) along a single coordinate. In this case the splitting point is defined as the minimum of the surrogate along a line segment and the box is split only if the interpolant value (serving as a proxy for the true value of the objective) is lower than the current best sampled function value.
The algorithm is guaranteed to converge to the global minimum in the long run (i.e. when the number of function evaluations and the search depth are arbitrarily large) if the objective function is continuous in the neighbourhood of the global minimizer. This follows from the fact that any box will become arbitrarily small eventually, hence the spacing between samples tends to zero as the number of function evaluations tends to infinity.
MCS is designed to be implemented in an efficient recursive manner with the aid of trees. With this approach the amount of memory required is independent of problem dimensionality since the sampling points are not stored explicitly. Instead, just a single coordinate of each sample is saved and the remaining coordinates can be recovered by tracing the history of a box back to the root (initial box). This method was suggested by the authors and used in their original implementation.3
Rios, L. M.; Sahinidis, N. V. (2013). "Derivative-free optimization: a review of algorithms and comparison of software implementations". Journal of Global Optimization. 56 (3): 1247–1293. doi:10.1007/s10898-012-9951-y. hdl:10.1007/s10898-012-9951-y. S2CID 254652321. https://link.springer.com/article/10.1007/s10898-012-9951-y ↩
Huyer, W.; Neumaier, A. (1999). "Global Optimization by Multilevel Coordinate Search". Journal of Global Optimization. 14 (4): 331–355. doi:10.1023/A:1008382309369. S2CID 1855536. https://link.springer.com/article/10.1023/A:1008382309369 ↩