The Coliny optimization library contains a variety of optimization methods defined with a
COLIN optimization interface.
Coliny and COLIN are revisions of the SGOPT optimization library~{SGOPT}, which also defined optimizers using C++ object-oriented abstractions. The COLIN optimization interface generalizes the capabilities of SGOPT, and in particular makes it easier to interface solvers and user applications that are defined on different search domain types. Coliny provides a collection of optimization solvers, and in particular it replicates the functionality in SGOPT.
This document describes the algorithms that are implemented within Coliny at a high level. Although the set of solvers included in Coliny continues to grow, Coliny contains solvers that are well suited for
-
derivative-free local search
-
hybrid, global-local optimization
-
heuristic global optimization
-
unconstrained and bound-constrained optimization
-
continuous search domains
Coliny is integrated into the
Acro
toolkit, and within that toolkit it depends on the following packages
-
UTILIB - C++ utilities and data structures
-
PICO - parallel branch-and-bound
-
APPSPACK - parallel pattern search
-
3PO - third-party optimization
-
AMPL - interface routines for run Coliny solvers within AMPL
Many of the optimizers defined by Coliny are currently included in the interface to the DAKOTA Iterator
Toolkit [EldHarBohRom96].
Historically, this software evolved as a library of algorithms used for research purposes. Consequently, there are many places in this library where the software could be further polished, and some of the libraries are more stable than others. Indications are made at the end of the sections describing each of the optimizers in Coliny concerning the stability of each optimizer.
It will often be convenient to describe the methods and information in optimization classes in five categories:
-
General Information - definitions of generic methods and data
-
Configuration Controls - definitions of methods and data that are used to parameterize the operation of an optimizer
-
Termination Controls - definitions of methods and data that are used to determine when an optimizer terminates
-
Debugging Controls - definitions of methods and data that are used to print debugging information
-
Iteration Controls - defintions of methods and data that are used to define the optimizers main operations in each iteration