All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Macros Pages
Classes | Namespaces | Functions
simulated_annealing.hpp File Reference
#include "paal/utils/fast_exp.hpp"
#include "paal/local_search/search_traits.hpp"
#include <chrono>
#include <random>

Go to the source code of this file.

Classes

struct  paal::local_search::exponential_cooling_schema_dependant_on_time< Duration, Clock >
 This functors returns potential (temperature) using the following schema. The start potential equals given startTemperature, the end temperature (after given duration) equals given endTemperature. In the beetween potential decreases (increase when startTemperature < endTemperature, which is not typical use case) in exponential manner. More...
 
struct  paal::local_search::exponential_cooling_schema_dependant_on_iteration
 This functors returns potential (temperature) using the following schema. The start potential equals given startTemperature, once per numberOFRoundsWithSameTemperature the temperature is multiplied by given multiplier. More...
 
struct  paal::local_search::simulated_annealing_gain_adaptor< Gain, GetTemperature, random_generator >
 This adaptor takes Gain functor and adopts it to simulated annealing. For each move, if it has positive gain it is chosen otherwise the move is chosen wit probability e^(movesGain/Temperature). Temperature is given by getTemperature functor. More...
 
struct  paal::local_search::simulated_annealing_gain_adaptor< Gain, GetTemperature, random_generator >::is_chosen< Delta >
 This object represents Delta computed by gain and the decision if the object is taken or not. More...
 
struct  paal::local_search::simulated_annealing_commit_adaptor< Commit, Gain, GetTemperature, random_generator >
 This adaptor takes Cammit functor and adopts it to simulated annealing. If the input move has positive gain it is chosen otherwise the move is chosen wit probability e^(movesGain/Temperature). Temperature is given by getTemperature functor. More...
 

Namespaces

 paal
 global namespace of project.
 
 

Functions

template<typename Clock = std::chrono::system_clock, typename Duration >
auto paal::local_search::make_exponential_cooling_schema_dependant_on_time (Duration duration, double startTemperature, double endTemperature)
 make function for exponential_cooling_schema_dependant_on_time More...
 
template<typename Solution , typename ProbabilisticGain , typename GetMoves , typename SetTemperature >
double paal::local_search::start_temperature (Solution &solution, ProbabilisticGain gain, GetMoves get_moves, SetTemperature set_temperature, double acceptance_rate=0.4, int repeats_number=1e3, double epsilon=1e-4)
 This function takes gain functor which is assumed to be probabilistic and dependent on one nonnegative double called temperature. It calculates starting temperature for Simmulated Annealing. Using binary search it looks for temperature that percent of accepted moves is as close to acceptance_rate as possible. This function manipulates temperature using SetTemperature. The gain is assumed to be monotonic in temperature. The 0 temperature means no bad moves are accepted. More...
 
template<typename Gain , typename GetTemperature , typename random_generator = std::default_random_engine>
auto paal::local_search::make_simulated_annealing_gain_adaptor (Gain gain, GetTemperature getTemperature, random_generator rand=random_generator())
 make function for simulated_annealing_gain_adaptor More...
 
template<typename Commit , typename Gain , typename GetTemperature , typename random_generator = std::default_random_engine>
auto paal::local_search::make_simulated_annealing_commit_adaptor (Commit commit, Gain gain, GetTemperature getTemperature, random_generator rand=random_generator{})
 make for simulated_annealing_commit_adaptor More...
 

Detailed Description

Author
Piotr Wygocki
Version
1.0
Date
2014-01-31

Definition in file simulated_annealing.hpp.