# List of algorithms (UDAs) available in pagmo/pygmo¶

This is the list of user defined algorithms (UDAs) currently provided with pagmo/pygmo. These are classes that can be used to construct a pagmo::algorithm (C++), or a pygmo.algorithm (Python), which will then provide a unified interface to access the algorithm’s functionalities.

Generally speaking, algorithms can solve only specific problem classes. In the tables below, we use the following flags to signal which problem types an algorithm can solve:

• S = Single-objective

• M = Multi-objective

• C = Constrained

• U = Unconstrained

• I = Integer programming

• sto = Stochastic

Note that algorithms that do not directly support integer programming will still work on integer problems (i.e., they will optimise the relaxed problem). Note also that it is possible to use meta-problems to turn constrained problems into unconstrained ones, and multi-objective problems into single-objective ones.

## Heuristic Global Optimization¶

Common Name

Docs of the C++ class

Docs of the python class

Capabilities

The null algorithm 1

pagmo::null_algorithm

pygmo.null_algorithm

SM-CU-I-sto

Extended Ant Colony Optimization (ACOmi)

pagmo::gaco

pygmo.gaco

S-CU-I

Differential Evolution (DE)

pagmo::de

pygmo.de

S-U

Self-adaptive DE (jDE and iDE)

pagmo::sade

pygmo.sade

S-U

Self-adaptive DE (de_1220 aka pDE)

pagmo::de1220

pygmo.de1220

S-U

Grey wolf optimizer (GWO)

pagmo::gwo

pygmo.gwo

S-U

Improved Harmony Search

pagmo::ihs

pygmo.ihs

SM-CU-I

Particle Swarm Optimization (PSO)

pagmo::pso

pygmo.pso

S-U

Particle Swarm Optimization Generational (GPSO)

pagmo::pso_gen

pygmo.pso_gen

S-U-sto

(N+1)-ES Simple Evolutionary Algorithm

pagmo::sea

pygmo.sea

S-U-sto

Simple Genetic Algorithm

pagmo::sga

pygmo.sga

S-U-I-sto

Corana’s Simulated Annealing (SA)

pagmo::simulated_annealing

pygmo.simulated_annealing

S-U

Artificial Bee Colony (ABC)

pagmo::bee_colony

pygmo.bee_colony

S-U

Covariance Matrix Adaptation Evo. Strategy (CMA-ES)

pagmo::cmaes

pygmo.cmaes

S-U-sto

Exponential Evolution Strategies (xNES)

pagmo::xnes

pygmo.xnes

S-U-sto

Non-dominated Sorting GA (NSGA2)

pagmo::nsga2

pygmo.nsga2

M-U-I

Multi-objective EA vith Decomposition (MOEA/D)

pagmo::moead

pygmo.moead

M-U

## Local optimization¶

Common Name

Docs of the C++ class

Docs of the python class

Capabilities

Compass Search (CS)

pagmo::compass_search

pygmo.compass_search

S-CU

COBYLA (from NLopt)

pagmo::nlopt

pygmo.nlopt

S-CU

BOBYQA (from NLopt)

pagmo::nlopt

pygmo.nlopt

S-U

NEWUOA + bound constraints (from NLopt)

pagmo::nlopt

pygmo.nlopt

S-U

PRAXIS (from NLopt)

pagmo::nlopt

pygmo.nlopt

S-U

Nelder-Mead simplex (from NLopt)

pagmo::nlopt

pygmo.nlopt

S-U

Subplex (from NLopt)

pagmo::nlopt

pygmo.nlopt

S-U

MMA (Method of Moving Asymptotes) (from NLopt)

pagmo::nlopt

pygmo.nlopt

S-CU

CCSA (from NLopt)

pagmo::nlopt

pygmo.nlopt

S-CU

SLSQP (from NLopt)

pagmo::nlopt

pygmo.nlopt

S-CU

Low-storage BFGS (from NLopt)

pagmo::nlopt

pygmo.nlopt

S-U

Preconditioned truncated Newton (from NLopt)

pagmo::nlopt

pygmo.nlopt

S-U

Shifted limited-memory variable-metric (from NLopt)

pagmo::nlopt

pygmo.nlopt

S-U

Ipopt

pagmo::ipopt

pygmo.ipopt

S-CU

SNOPT (in pagmo_plugins_non_free affiliated package)

pagmo::snopt7

pygmo.snopt7

S-CU

WORHP (in pagmo_plugins_non_free affiliated package)

pagmo::wohrp

pygmo.wohrp

S-CU

## Meta-algorithms¶

Common Name

Docs of the C++ class

Docs of the python class

Capabilities 2

Monotonic Basin Hopping (MBH)

pagmo::mbh

pygmo.mbh

S-CU

pagmo::cstrs_self_adaptive

pygmo.cstrs_self_adaptive

S-C

Augmented Lagrangian algorithm (from NLopt) 3

pagmo::nlopt

pygmo.nlopt

S-CU

Footnotes

1

The null algorithm is used only for initialisation purposes. It will not actually run any optimisation if invoked.

2

The capabilities of the meta-algorithms depend also on the capabilities of the algorithms they wrap. If, for instance, a meta-algorithm supporting constrained problems is constructed from an algorithm which does not support constrained problems, the resulting meta-algorithms will not be able to solve constrained problems.

3

The Augmented Lagrangian algorithm can be used only in conjunction with other NLopt algorithms.