Pallas Solver  0.1
C++ Global Optimization Algorithms
Classes | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
pallas::CoolingSchedule Class Referenceabstract

Determines the rate of cooling within pallas::SimulatedAnnealing. More...

#include <cooling_schedule.h>

Inheritance diagram for pallas::CoolingSchedule:
Inheritance graph
[legend]

Classes

struct  Options
 

Public Member Functions

virtual ~CoolingSchedule ()
 Default destructor.
 
virtual void update_temperature ()=0
 Interface to update the temperature member variable. More...
 
double get_temperature () const
 Returns the current temperature stored withing the cooling schedule.
 
double get_initial_temperature () const
 Returns the initial temperature to start the minimization at.
 
void set_temperature (double T)
 Sets the current temperature. More...
 
void calc_start_temperature (const GradientProblem &problem, internal::State &state, StepFunction *step_function)
 Estimates an appropriate starting temperature. More...
 

Static Public Member Functions

static CoolingScheduleCreate (const Options &options)
 Creates a pointer to a cooling schedule. More...
 

Protected Attributes

double temperature
 
double initial_temperature
 
double boltzmann_constant
 

Detailed Description

Determines the rate of cooling within pallas::SimulatedAnnealing.

Member Function Documentation

void pallas::CoolingSchedule::calc_start_temperature ( const GradientProblem &  problem,
internal::State state,
StepFunction step_function 
)

Estimates an appropriate starting temperature.

If no starting temperature is supplied by the user, this method attempts to approximate an acceptable starting temperature by sampling random points about the starting point in order to gauge the magnitude of the cost function.

Parameters
problempallas::GradientProblem. The problem to optimize.
statepallas::internal::State. The details of the current state of the minimization algorithm.
step_functionpallas::StepFunction. This function produces randomized candidate solutions.

Here is the call graph for this function:

Here is the caller graph for this function:

CoolingSchedule * pallas::CoolingSchedule::Create ( const Options options)
static

Creates a pointer to a cooling schedule.

Based on the options the proper cooling schedule, with correct parameters, is returned from this function.

Parameters
optionspallas::CoolingSchedule::Options. Configured options to specify the cooling schedule behaviour.
Returns
pallas::CoolingSchedule*. A pointer to a cooling schedule.

Here is the caller graph for this function:

void pallas::CoolingSchedule::set_temperature ( double  T)

Sets the current temperature.

Parameters
Tdouble. The current temperature to set the cooling schedule at.

Here is the caller graph for this function:

virtual void pallas::CoolingSchedule::update_temperature ( )
pure virtual

Interface to update the temperature member variable.

Should override in derived cooling schedules.

Implemented in pallas::BoltzmannCooling, pallas::CauchyCooling, and pallas::FastCooling.

Here is the caller graph for this function:

Member Data Documentation

double pallas::CoolingSchedule::boltzmann_constant
protected

Initial temperature the cooling schedule should begin at. Boltzmann constant in the probabilistic acceptance criteria (increase for less stringent criteria at each temperature).

double pallas::CoolingSchedule::temperature
protected

Current temperature of the cooling schedule.


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