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 chainEnd annealEnd cool markov temperature (arg7, arg7) previousBests
Parameters:
LogEvent -> unit
chainEnd : 'a
annealEnd : 'b
cool : float -> int -> float
markov : 'a -> float -> float<MeasureProduct<-logL, MeasureOne>> * 'c -> (float<MeasureProduct<-logL, MeasureOne>> * 'c) list
temperature : float
arg6 : float<MeasureProduct<-logL, MeasureOne>>
arg7 : 'c
previousBests : (float<MeasureProduct<-logL, MeasureOne>> * 'c) list
Returns: (float<MeasureProduct<-logL, MeasureOne>> * 'c) 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 endCondition ceiling endAcceptanceRate heatingSchedule markov (arg7, arg7) temperature
Parameters:
LogEvent -> unit
endCondition : 'a
ceiling : float option
endAcceptanceRate : float
heatingSchedule : float -> float
markov : 'a -> float -> float<MeasureProduct<-logL, MeasureOne>> * 'b -> (float<MeasureProduct<-logL, MeasureOne>> * 'b) list
arg6 : float<MeasureProduct<-logL, MeasureOne>>
arg7 : 'b
temperature : float
Returns: float * (float<MeasureProduct<-logL, MeasureOne>> * 'b)
|
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 scale settings annealEnd machine jump cool random writeOut domain f
Parameters:
float<MeasureProduct<optim-space, MeasureOne>>
settings : AnnealSettings
annealEnd : 'a
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: (float<MeasureProduct<-logL, MeasureOne>> * Point) list
|
|
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