Header menu logo bristlecone

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

CoolingSchemes

Cooling schemes dictate the conditions under which the temperature is cooled during simulated annealing.

Machines

Tuning

AnnealSettings

Represents configurable settings of an annealing procedure that supports (a) heating, followed by (b) annealing.

Functions and values

Function or value Description

anneal writeOut saEnd tempFloor cool markov temperature (arg7, arg7) previousBests iteration

Full Usage: anneal writeOut saEnd tempFloor cool markov temperature (arg7, arg7) previousBests iteration

Parameters:
Returns: OptimisationTrace list

Cool between homoegenous markov chains according to `cool` schedule. Each anneal recursion begins from the end of the previous markov chain.

writeOut : 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

classicalSimulatedAnnealing scale tDependentProposal settings

Full Usage: classicalSimulatedAnnealing scale tDependentProposal settings

Parameters:
Returns: Optimiser

Candidate distribution: Gaussian univariate [] Probability: Boltzmann Machine

scale : float<MeasureProduct<optim-space, MeasureOne>>
tDependentProposal : bool
settings : AnnealSettings
Returns: Optimiser

fastSimulatedAnnealing scale tDependentProposal settings

Full Usage: fastSimulatedAnnealing scale tDependentProposal settings

Parameters:
Returns: Optimiser

Candidate distribution: Cauchy univariate [] Probability: Bottzmann Machine

scale : float<MeasureProduct<optim-space, MeasureOne>>
tDependentProposal : bool
settings : AnnealSettings
Returns: Optimiser

heat write ceiling endAcceptanceRate heatingSchedule markov (arg6, arg6) history temperature

Full Usage: heat write ceiling endAcceptanceRate heatingSchedule markov (arg6, arg6) history temperature

Parameters:
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.

write : 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

markovChain writeOut atEnd propose probability random f temperature (arg8, arg8)

Full Usage: markovChain writeOut atEnd propose probability random f temperature (arg8, arg8)

Parameters:
Returns: Solution list

Run a homogenous Markov chain recursively until an end condition - `atEnd` - is met.

writeOut : 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

simulatedAnnealing initialScale settings endCondition machine jump cool random writeOut domain f

Full Usage: simulatedAnnealing initialScale settings endCondition machine jump cool random writeOut domain f

Parameters:
Returns: OptimisationTrace list * float<MeasureProduct<optim-space, MeasureOne>>[]
initialScale : 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>>[]

tryMove propose probability random f tries (l1, theta1)

Full Usage: tryMove propose probability random f tries (l1, theta1)

Parameters:
Returns: Solution option

Jump based on a proposal function and probability function

propose : 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

Type something to start searching.