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.

EndConditions

Machines

AnnealSettings<'a>

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

Functions and values

Function or value Description

anneal writeOut chainEnd annealEnd cool markov temperature (arg7, arg8) previousBests

Full Usage: anneal writeOut chainEnd annealEnd cool markov temperature (arg7, arg8) previousBests

Parameters:
    writeOut : LogEvent -> unit
    chainEnd : 'a
    annealEnd : 'b
    cool : float -> int -> float
    markov : 'a -> float -> float * 'c -> (float * 'c) list
    temperature : float
    arg6 : float
    arg7 : 'c
    previousBests : (float * 'c) list

Returns: (float * 'c) 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
chainEnd : 'a
annealEnd : 'b
cool : float -> int -> float
markov : 'a -> float -> float * 'c -> (float * 'c) list
temperature : float
arg6 : float
arg7 : 'c
previousBests : (float * 'c) list
Returns: (float * 'c) list

classicalSimulatedAnnealing scale tDependentProposal settings

Full Usage: classicalSimulatedAnnealing scale tDependentProposal settings

Parameters:
    scale : float
    tDependentProposal : bool
    settings : AnnealSettings<float>

Returns: Optimiser<float>

Candidate distribution: Gaussian univariate [] Probability: Boltzmann Machine

scale : float
tDependentProposal : bool
settings : AnnealSettings<float>
Returns: Optimiser<float>

fastSimulatedAnnealing scale tDependentProposal settings

Full Usage: fastSimulatedAnnealing scale tDependentProposal settings

Parameters:
    scale : float
    tDependentProposal : bool
    settings : AnnealSettings<float>

Returns: Optimiser<float>

Candidate distribution: Cauchy univariate [] Probability: Bottzmann Machine

scale : float
tDependentProposal : bool
settings : AnnealSettings<float>
Returns: Optimiser<float>

heat write endCondition ceiling endAcceptanceRate heatingSchedule markov (arg7, arg8) temperature

Full Usage: heat write endCondition ceiling endAcceptanceRate heatingSchedule markov (arg7, arg8) temperature

Parameters:
    write : LogEvent -> unit
    endCondition : 'a
    ceiling : float option
    endAcceptanceRate : float
    heatingSchedule : float -> float
    markov : 'a -> float -> float * 'b -> (float * 'b) list
    arg6 : float
    arg7 : 'b
    temperature : float

Returns: float * (float * '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.

write : LogEvent -> unit
endCondition : 'a
ceiling : float option
endAcceptanceRate : float
heatingSchedule : float -> float
markov : 'a -> float -> float * 'b -> (float * 'b) list
arg6 : float
arg7 : 'b
temperature : float
Returns: float * (float * 'b)

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

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

Parameters:
    writeOut : LogEvent -> unit
    atEnd : Solution<float> list -> int -> bool
    propose : Point<float> -> Point<float>
    probability : 'a -> float -> float
    random : Random
    f : Point<float> -> float
    temperature : 'a
    arg7 : float
    arg8 : Point<float>

Returns: Solution<float> list

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

writeOut : LogEvent -> unit
atEnd : Solution<float> list -> int -> bool
propose : Point<float> -> Point<float>
probability : 'a -> float -> float
random : Random
f : Point<float> -> float
temperature : 'a
arg7 : float
arg8 : Point<float>
Returns: Solution<float> list

simulatedAnnealing scale settings annealEnd machine jump cool random writeOut domain startPoint f

Full Usage: simulatedAnnealing scale settings annealEnd machine jump cool random writeOut domain startPoint f

Parameters:
    scale : float
    settings : AnnealSettings<float>
    annealEnd : 'a
    machine : float -> float -> float
    jump : Random -> float -> float -> unit -> float
    cool : float -> float -> int -> float
    random : Random
    writeOut : LogEvent -> unit
    domain : Domain
    startPoint : 'b
    f : float[] -> float

Returns: (float * Point<float>) list
scale : float
settings : AnnealSettings<float>
annealEnd : 'a
machine : float -> float -> float
jump : Random -> float -> float -> unit -> float
cool : float -> float -> int -> float
random : Random
writeOut : LogEvent -> unit
domain : Domain
startPoint : 'b
f : float[] -> float
Returns: (float * Point<float>) list

tryMove propose probability random f tries (l1, theta1)

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

Parameters:
    propose : Point<float> -> Point<float>
    probability : float -> float
    random : Random
    f : Point<float> -> float
    tries : int
    l1 : float
    theta1 : Point<float>

Returns: Solution<float> option

Jump based on a proposal function and probability function

propose : Point<float> -> Point<float>
probability : float -> float
random : Random
f : Point<float> -> float
tries : int
l1 : float
theta1 : Point<float>
Returns: Solution<float> option

Type something to start searching.