Simulated Annealing. More...
#include <ql/math/optimization/simulatedannealing.hpp>
Inheritance diagram for SimulatedAnnealing< RNG >:Public Types | |
| enum | Scheme { ConstantFactor, ConstantBudget } |
Public Member Functions | |
| SimulatedAnnealing (const Real lambda, const Real T0, const Real epsilon, const Size m, const RNG &rng=RNG()) | |
| SimulatedAnnealing (const Real lambda, const Real T0, const Size K, const Real alpha, const RNG &rng=RNG()) | |
| EndCriteria::Type | minimize (Problem &P, const EndCriteria &ec) |
| minimize the optimization problem P | |
Simulated Annealing.
Class RNG must implement the following interface:
| SimulatedAnnealing | ( | const Real | lambda, |
| const Real | T0, | ||
| const Real | epsilon, | ||
| const Size | m, | ||
| const RNG & | rng = RNG() |
||
| ) |
reduce temperature T by a factor of \( (1-\epsilon) \) after m moves
| SimulatedAnnealing | ( | const Real | lambda, |
| const Real | T0, | ||
| const Size | K, | ||
| const Real | alpha, | ||
| const RNG & | rng = RNG() |
||
| ) |
budget a total of K moves, set temperature T to the initial temperature times \( ( 1 - k/K )^\alpha \) with k being the total number of moves so far. After K moves the temperature is guaranteed to be zero, after that the optimization runs like a deterministic simplex algorithm.