Pallas Solver  0.1
C++ Global Optimization Algorithms
Classes | Functions
differential_evolution.h File Reference
#include <cfloat>
#include "pallas/history_concept.h"
#include "pallas/types.h"
#include "pallas/internal/crossover_strategy.h"
#include "pallas/internal/mutation_strategy.h"
#include "pallas/internal/shuffler.h"
#include "pallas/internal/state.h"
Include dependency graph for differential_evolution.h:

Go to the source code of this file.

Classes

class  pallas::DifferentialEvolution
 Minimizes an objective function by continuously evolving a population of candidate solutions. More...
 
struct  pallas::DifferentialEvolution::Options
 
struct  pallas::DifferentialEvolution::Summary
 Contains a summary of the optimization. More...
 
struct  pallas::DifferentialEvolution::HistoryOutput
 Stores information about the state of the system for at a given iteration number. More...
 

Functions

void pallas::Solve (const DifferentialEvolution::Options &options, const GradientProblem &problem, double *parameters, DifferentialEvolution::Summary *summary)
 Helper function which avoids going through the interface of the pallas::DifferentialEvolution class. More...
 
void pallas::dump (const DifferentialEvolution::HistoryOutput &h, HistoryWriter &writer)
 Dumps the system state contained in the history output into the stream contained by the writer. More...
 

Detailed Description

Author
Ryan Latture
Date
5-18-15

This file contains a C++ implementation of the differential algorithm due to Storn and Price: Differential Evolution - a Simple and Efficient Heuristic for Global Optimization over Continuous Spaces.

This code is based on the SciPy implementation of differential evolution found in scipy.optimize and relies on the local optimization algorithms in the Google Ceres project.

Function Documentation

void pallas::dump ( const DifferentialEvolution::HistoryOutput h,
HistoryWriter &  writer 
)

Dumps the system state contained in the history output into the stream contained by the writer.

Parameters
hDifferentialEvolution::HistoryOutput. State of the system for a specific iteration.
writerHistoryWriter. Object responsible for writing the history output to a stream.

Here is the call graph for this function:

void pallas::Solve ( const DifferentialEvolution::Options options,
const GradientProblem &  problem,
double *  parameters,
DifferentialEvolution::Summary summary 
)

Helper function which avoids going through the interface of the pallas::DifferentialEvolution class.

The specified options are used to setup a differential evolution instance which is then used to minimize the GradientProblem. The optimal solution is stored in parameters and a summary of the global optimization can be found in summary.

Parameters
optionspallas::DifferentialEvolution::Options. Options used to configure the optimization.
problempallas::GradientProblem. The problem to optimize.
parametersdouble*. The starting point for further optimization.
summaryDifferentialEvolution::Summary*. Summary instance to store the optimization details.

Here is the call graph for this function: