SimulatedAnnealing Module
A meta-heuristic that approximates a global optimium by simulating slow cooling as a slow decrease in the probability of temporarily accepting worse solutions.
Types and nested modules
| Type/Module | Description |
|
Cooling schemes dictate the conditions under which the temperature is cooled during simulated annealing. |
|
|
|
|
|
|
|
|
Represents configurable settings of an annealing procedure that supports (a) heating, followed by (b) annealing. |
Functions and values
| Function or value |
Description
|
Full Usage:
anneal writeOut saEnd tempFloor cool markov temperature (arg7, arg7) previousBests iteration
Parameters:
LogEvent -> unit
saEnd : EndCondition
tempFloor : float option
cool : float -> int -> float
markov : float -> Solution -> Solution list
temperature : float
arg6 : float<MeasureProduct<-logL, MeasureOne>>
arg7 : Point
previousBests : OptimisationTrace list
iteration : int<MeasureProduct<iteration, MeasureOne>>
Returns: OptimisationTrace list
|
Cool between homoegenous markov chains according to `cool` schedule. Each anneal recursion begins from the end of the previous markov chain.
|
Full Usage:
classicalSimulatedAnnealing scale tDependentProposal settings
Parameters:
float<MeasureProduct<optim-space, MeasureOne>>
tDependentProposal : bool
settings : AnnealSettings
Returns: Optimiser
|
Candidate distribution: Gaussian univariate [] Probability: Boltzmann Machine
|
Full Usage:
fastSimulatedAnnealing scale tDependentProposal settings
Parameters:
float<MeasureProduct<optim-space, MeasureOne>>
tDependentProposal : bool
settings : AnnealSettings
Returns: Optimiser
|
Candidate distribution: Cauchy univariate [] Probability: Bottzmann Machine
|
Full Usage:
heat write ceiling endAcceptanceRate heatingSchedule markov (arg6, arg6) history temperature
Parameters:
LogEvent -> unit
ceiling : float option
endAcceptanceRate : float
heatingSchedule : float -> float
markov : float -> Solution -> (float<MeasureProduct<-logL, MeasureOne>> * Point) list
arg5 : float<MeasureProduct<-logL, MeasureOne>>
arg6 : Point
history : OptimisationTrace list
temperature : float
Returns: OptimisationTrace list * float
|
Heat up temperature until acceptance rate of bad moves is above the threshold `endAcceptanceRate`. If it becomes impossible to propose a move during heating, then heating ends.
|
Full Usage:
markovChain writeOut atEnd propose probability random f temperature (arg8, arg8)
Parameters:
LogEvent -> unit
atEnd : Solution list -> int<MeasureProduct<iteration, MeasureOne>> -> OptimStopReason
propose : Point -> Point
probability : 'a -> float<MeasureProduct<-logL, MeasureOne>> -> float<MeasureOne>
random : Random
f : Objective
temperature : 'a
arg7 : float<MeasureProduct<-logL, MeasureOne>>
arg8 : Point
Returns: Solution list
|
Run a homogenous Markov chain recursively until an end condition - `atEnd` - is met.
|
Full Usage:
simulatedAnnealing initialScale settings endCondition machine jump cool random writeOut domain f
Parameters:
float<MeasureProduct<optim-space, MeasureOne>>[]
settings : AnnealSettings
endCondition : EndCondition
machine : float -> float<MeasureProduct<-logL, MeasureOne>> -> float
jump : Random -> float<MeasureProduct<optim-space, MeasureOne>> -> float -> unit -> float<MeasureProduct<optim-space, MeasureOne>>
cool : float -> float -> int -> float
random : Random
writeOut : LogEvent -> unit
domain : Domain
f : TypedTensor<Vector, MeasureProduct<optim-space, MeasureOne>> -> TypedTensor<Scalar, MeasureProduct<-logL, MeasureOne>>
Returns: OptimisationTrace list * float<MeasureProduct<optim-space, MeasureOne>>[]
|
|
Full Usage:
tryMove propose probability random f tries (l1, theta1)
Parameters:
Point -> Point
probability : float<MeasureProduct<-logL, MeasureOne>> -> float<MeasureOne>
random : Random
f : Objective
tries : int
l1 : float<MeasureProduct<-logL, MeasureOne>>
theta1 : Point
Returns: Solution option
|
Jump based on a proposal function and probability function
|
bristlecone