BIE::TemperedDifferentialEvolution Class Reference

Implements the Differential Evolution (DE) algorithm (see DifferentialEvolution) including Tempered Transistion steps every tfreq steps (see TemperedSimulation). More...

#include <TemperedDifferentialEvolution.h>

Inheritance diagram for BIE::TemperedDifferentialEvolution:
Collaboration diagram for BIE::TemperedDifferentialEvolution:

List of all members.

Public Member Functions

 TemperedDifferentialEvolution (int max, int ndim, int number, string deinit, int minmc_p, double maxT, BaseDataTree *d, Model *m, Integration *i, Converge *c, MixturePrior *mp, LikelihoodComputation *l, MCAlgorithm *mca, Simulation *last=0)
 Constructor for top level invocation.
void SetTempFreq (int n)
 Change tempering frequency for mixing (default: 11).
void SetEquilSteps (int n)
 Set number of DE steps at each temperature level (default: 10).
void SetTpow (double x)
 Set the scale factor $T^{tpow}$ for proposal function.
void SetMinMC (int n)
 Set the minimum number of temperature states.
virtual void PrintStepDiagnostic ()
 override of Simulation method to provide diagnostics specific to TemperedDifferentialEvolution

Static Public Attributes

static int Ninter
 Number of mixing steps between tempering (default 10).
static double tpow
 Scale factor $T^{tpow}$ for proposal function.
static int minmc
 Minimum number of temperature states.
static unsigned tfreq
 Frequency in steps for a tempered step (default: 11).

Protected Member Functions

virtual void MCMethod ()
 Run the entire Monte Carlo algorithm (including tempering).
virtual void OneDifferentialEvolutionStep ()
 Take a single DE step only.
virtual void PowerUP (int)
 Heat chains to temperature level k.
virtual void PowerDOWN (int)
 Cool chains to temperature level k.

Protected Attributes

vector< double > up
 The log prob of the state moving UP the temperature ladder.
vector< double > down
 The log prob of the state moving DOWN the temperature ladder.
vector< double > beta
 The 1/KT values for the temperature ladder.
vector< double > factor
 The multiplicative width factors for the ladder.
int curswp
 The number of swapped states on the current step.
int curtry
 The number of swap attempts on the current step.
int totswp
 The cumulative number of swapped states (since last query).
int tottry
 The cmulative number of swap attempts (since last query).
double MaxT
 The maximum tempering temperature.
vector< unsigned long > mstat0
 Tally of proposals for each temperature level.
vector< unsigned long > stat0T
vector< unsigned long > mstat1
 Tally of accepted proposals for each level.
vector< unsigned long > stat1T
bool tstat
 Tempered statistics counter active.

Friends

class boost::serialization::access


Detailed Description

Implements the Differential Evolution (DE) algorithm (see DifferentialEvolution) including Tempered Transistion steps every tfreq steps (see TemperedSimulation).

Temperature levels
The temperature levels $j=0,\ldots,N$ are defined by:

\[ P_j \propto P_0^{j/N} = e^{\beta_j \log P_0} \]

or

\[ P_j \propto e^{\beta_j \log P_0} \beta_j = exp(-\log(T_{max})*j/N) \]

and the Metropolis-Hastings width is multiplied by the factor

\[ f_j = \beta_j^{-\tau} \]

where $\tau$ is the paramater tpow.

Paremeters
Parameters:
Ninter is the number of mixing steps between tempering steps (default: 10)
tfreq is the number steps between tempered transition states (default: 11)
tpow is the scale factor $T^{tpow}$ for proposal function (default: 0.5, exact for a Gaussian)
minmc is the minimum number of temperature levels. If not overriddednm explicitly, the constructor will set number of levels so that there are the square root of the parameter rank per logarithmic interval in temperature. (default: 4)

Constructor & Destructor Documentation

BIE::TemperedDifferentialEvolution::TemperedDifferentialEvolution ( int  max,
int  ndim,
int  number,
string  deinit,
int  minmc_p,
double  maxT,
BaseDataTree d,
Model m,
Integration i,
Converge c,
MixturePrior mp,
LikelihoodComputation l,
MCAlgorithm mca,
Simulation last = 0 
)

Constructor for top level invocation.

Initial constuctor Multiple-level constuctor


The documentation for this class was generated from the following file:

Send suggestions, questions, and feedback to WEINBERG at ASTRO dot UMASS dot EDU.
Documentation generated at Fri Mar 26 00:35:13 2010 by doxygen