Both find_roots and find_global_min are based on the following abstract procedure.
Such procedures are called branch and bound procedures:
An initial search region is considered, and possibly subdivided
into subregions ("branching"). Each of the subregions is in turn
considered (by "bounding" an objective function value, etc.), and
possibly subdivided in the same way as the initial region.
Here, the search region is a box , that is an interval
vector
. For example, a search region could be
Algorithm 1 (Abstract Branch-and-Bound Pattern for Optimization)
INPUT: an initial box .
OUTPUT: a list of boxes that have been proven
to contain critical points and a list
of boxes
with small objective function values, but which could not
otherwise be resolved.
In GlobSol, the rejection proceeds with an elementary application of interval arithmetic, as described in §5.2. Existence / uniqueness verification is done with interval Newton methods, as in §6.
Subdivision proceeds by generalized bisection, epsilon-inflation, and box complementation. For details, see, [8], especially [8, Chapter 5,].