Package: SCOLIB
SCOLIB (formerly known as COLINY) is a collection of nongradient-based
optimizers that support the Common Optimization Library INterface
(COLIN). SCOLIB optimizers currently include coliny_cobyla
,
coliny_direct
, coliny_ea
, coliny_pattern_search
and
coliny_solis_wets
. (Yes, the input spec still has “coliny” prepended
to the method name.) Additional SCOLIB information is available from
https://software.sandia.gov/trac/acro.
SCOLIB solvers now support bound constraints and general nonlinear
constraints. Supported nonlinear constraints include both equality
and two-sided inequality constraints. SCOLIB solvers do not yet
support linear constraints. Most SCOLIB optimizers treat constraints
with a simple penalty scheme that adds constraint_penalty
times the
sum of squares of the constraint violations to the objective function.
Specific exceptions to this method for handling constraint violations
are noted below. (The default value of constraint_penalty
is
1000.0, except for methods that dynamically adapt their constraint
penalty, for which the default value is 1.0.)
The method independent controls for max_iterations
and
max_function_evaluations
limit the number of major iterations and the
number of function evaluations that can be performed during a SCOLIB
optimization, respectively. The convergence_tolerance
control
defines the threshold value on relative change in the objective
function that indicates convergence. The output
verbosity
specification controls the amount of information generated by SCOLIB:
the silent
, quiet
, and normal
settings correspond to minimal
reporting from SCOLIB, whereas the verbose
setting corresponds to a
higher level of information, and debug
outputs method
initialization and a variety of internal SCOLIB diagnostics. The
majority of SCOLIB’s methods perform independent function evaluations
that can directly take advantage of Dakota’s parallel
capabilities. Only coliny_solis_wets
, coliny_cobyla
, and certain
configurations of coliny_pattern_search
are inherently serial.
The parallel methods automatically utilize
parallel logic when the Dakota configuration supports
parallelism. Lastly, neither speculative
gradients nor linear
constraints are currently supported with SCOLIB.
Some SCOLIB methods exploit parallelism through the use of Dakota’s concurrent function evaluations. The nature of the algorithms, however, limits the amount of concurrency that can be exploited. The maximum amount of evaluation concurrency that can be leveraged by the various methods is as follows:
COBYLA: one
DIRECT: twice the number of variables
Evolutionary Algorithms: size of the population
Pattern Search: size of the search pattern
Solis-Wets: one
All SCOLIB methods support the show_misc_options
optional
specification which results in a dump of all the allowable method
inputs. Note that the information provided by this command refers to
optimizer parameters that are internal to SCOLIB, and which may differ
from corresponding parameters used by the Dakota interface. The
misc_options
optional specification provides a means for inputing
additional settings supported by the SCOLIB methods but which are not
currently mapped through the Dakota input specification. Care must be
taken in using this specification; they should only be employed by
users familiar with the full range of parameter specifications
available directly from SCOLIB and understand any differences that
exist between those specifications and the ones available through
Dakota.
Each of the SCOLIB methods supports the solution_target
control,
which defines a convergence criterion in which the optimizer will
terminate if it finds an objective function value lower than the
specified target.