QuantLib: DifferentialEvolution Class Reference

A free/open-source library for quantitative finance Reference manual - version 1.6

- Main Page
- Related Pages
- Modules
- Classes
- Examples

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | List of all members
DifferentialEvolution Class Reference

Differential Evolution configuration object. More...

`#include <ql/math/optimization/differentialevolution.hpp>`

Inheritance diagram for DifferentialEvolution:
[legend]

## Public Types
enum | Strategy { Rand1Standard, BestMemberWithJitter, CurrentToBest2Diffs, Rand1DiffWithPerVectorDither, Rand1DiffWithDither, EitherOrWithOptimalRecombination, Rand1SelfadaptiveWithRotation }
enum | CrossoverType { Normal, Binomial, Exponential }

## Public Member Functions
| DifferentialEvolution (Configuration configuration=Configuration())
virtual EndCriteria::Type | minimize (Problem &p, const EndCriteria &endCriteria)
| minimize the optimization problem P
const Configuration & | configuration () const

## Detailed Description

Differential Evolution configuration object.

The algorithm and strategy names are taken from here:

Price, K., Storn, R., 1997. Differential Evolution - A Simple and Efficient Heuristic for Global Optimization over Continuous Spaces. Journal of Global Optimization, Kluwer Academic Publishers, 1997, Vol. 11, pp. 341 - 359.

There are seven basic strategies for creating mutant population currently implemented. Three basic crossover types are also available.

Future development: 1) base element type to be extracted 2) L differences to be used instead of fixed number 3) various weights distributions for the differences (dither etc.) 4) printFullInfo parameter usage to track the algorithm

Warning:
  This was reported to fail tests on Mac OS X 10.8.4.

OptimizationMethod using Differential Evolution algorithm