Acro Packages

Acro is organized around software packages that support optimization. Conceptually, Acro packages are libraries that are under active development by Acro developers. Further, Acro includes Third-Party Libraries, which are imported from external software projects. This distinction reflects both how packages are managed (e.g. whether they manage their software with subversion), and whether the Acro team is collaborating directly with these external software projects.

Note that the main Acro project includes a subset of these packages. Additionally, some of these packages are Python packages that are not directly linked with Acro executables.


A general-purpose C++ optimization interface. COLIN provides a middle-ware layer for optimizers that facilitates the creation and use of hybrid optimizers, as well as optimizers applied to novel, user-defined search domains.
A Python package that contains tools for optimization and computational experiments.
Scripts for managing automated software tests.
A rigorous global optimization solver that can rigorously optimize explicit nonlinear problems.
COLIN wrapper software and interfaces for launching COLIN optimizers.
A library of single- and multi-objective genetic algorithms.
  • John Eddy
  • TBD License
  • This package is not currently distributed within Acro general releases.
OPT++ is a library of continuous optimizers that is used in Acro.A library optimizers for engineering design. This principally contains nonlinear solvers for continuous search domains.
A library for interior-point solvers that are used do implement a parallel interior-point linear-programming solver.
The pebbl package defines a flexible branch-and-bound engine that uses an object-oriented model to allow it to be easily adapted to new applications. A novel feature of PEBBL is its ability to scale up parallel branch-and-bound to thousands of processors.
The pico package defines the PICO mixed-integer linear programming solver, which leverages the PEBBL parallel branch-and-bound engine.
A Python utility library.
Annotated caches for optimizers.
SCOLIB is the Sandia COLIN Optimizer LIBrary. SCOLIB is a collection of C++ optimizers that are derived directly from the COLIN interface. Historically, SCOLIB is derived from the SGOPT library, which was renamed 'Coliny' when the COLIN library was created. The Coliny library was renamed SCOLIB when it became clear that there are many COLIN optimization libraries in Acro.
Miscellaneous optimization software.
A templated meta-heuristics framework.
A library of C and C++ utility methods. It includes classes of standard data structures, general-purpose mathematical routines, sorting methods, random number generates, tools for processing command-line options and tools to support parallelization of software.

Third-Party Libraries

A library of miscellaneous third party optimizers that are publicly available.
The ampl solver interface library that is used to create optimizers that can be called from the AMPL solver interface.
APPSPACK is a pattern search optimizer that can effectively solve constrained problems using parallel computing resources.
A subset of the Boost C++ libraries.
A subset of the COIN optimization repository that includes linear and integer programming interfaces for a variety of third-party software projects.
A JUnit/CppUnit/xUnit-like framework for C/C++ that supports test discovery.
A fast interval library supporting containment computations.
The GNU linear programming toolkit. GLPK is intended for solving large-scale linear programming (LP), mixed integer programming (MIP), and other related problems.
A matrix template library.
A discovery-based unittest extension.
 nose xunit
  •  LGPL License
  • This is bundled with several other Python packages that are needed to run this code
The SOPLEX linear programming library, which contains an implementation of the revised simplex algorithm. It features primal and dual solving routines for linear programs and is implemented as a C++ class library that can be used with other programs.
A set of robust object-oriented parallel algorithms that leverage and extend the capabilities of numerical libraries like PETSc, Aztec, BLAS and LAPACK.
A simple, small, C++ XML parser that can be easily integrating into other programs.
Virtual Python Environment builder