QuantLib
A free/open-source library for quantitative finance
Reference manual - version 1.20
Public Member Functions | List of all members
Simplex Class Reference

Multi-dimensional simplex class. More...

#include <ql/math/optimization/simplex.hpp>

+ Inheritance diagram for Simplex:

Public Member Functions

 Simplex (Real lambda)
 
virtual EndCriteria::Type minimize (Problem &P, const EndCriteria &endCriteria)
 minimize the optimization problem P
 
Real lambda () const
 

Detailed Description

Multi-dimensional simplex class.

This method is rather raw and requires quite a lot of computing resources, but it has the advantage that it does not need any evaluation of the cost function's gradient, and that it is quite easily implemented. First, we choose N+1 starting points, given here by a starting point \( \mathbf{P}_{0} \) and N points such that

\[ \mathbf{P}_{\mathbf{i}}=\mathbf{P}_{0}+\lambda \mathbf{e}_{\mathbf{i}}, \]

where \( \lambda \) is the problem's characteristic length scale). These points will form a geometrical form called simplex. The principle of the downhill simplex method is, at each iteration, to move the worst point (highest cost function value) through the opposite face to a better point. When the simplex seems to be constrained in a valley, it will be contracted downhill, keeping the best point unchanged.

Constructor & Destructor Documentation

◆ Simplex()

Simplex ( Real  lambda)

Constructor taking as input the characteristic length