simulated_annealing library
Simulated Annealing framework for Dart.
Classes
-
DataLog<
T extends Object> -
A storage that can be used to log data of type
T
. Each log record is accessed using a unique String key. - EnergyField
-
Class representing the system
energy
and the domain over which it is defined (the search space). - FixedInterval
-
A fixed numerical interval defined by
the start point
start
and the end pointend
. - Interval
- Abstract class representing a numerical interval.
- InverseCdfs
- LoggingSimulator
- Annealing simulator capable of logging variables via an object of type DataLog.
- ParametricInterval
-
A numerical interval defined by
the parametric start point function
startFunc
and the end pointendFunc
. - PeriodicInterval
- An interval that wraps around itself.
- SearchSpace
- A search space defined by several by a list of Intervals.
- Simulator
- Annealing simulator
- SingularInterval
- A fixed numerical interval where the start point coincides with the end point.
Extensions
Functions
-
defaultPerturbationSequence(
List< num> temperatures, List<num> deltaPositionMax, List<num> deltaPositionMin) → List<List< num> > -
Returns a sequence of perturbation magnitude vectors by
interpolating between
deltPositionMax
anddeltaPositionMin
. -
exponentialSequence(
num tStart, num tEnd, {int iterations = 1000}) → List< num> -
Exponentially decreasing sequence with start value
tStart
and end valuetEnd
. -
geometricSequence(
num tStart, num tEnd, {int iterations = 1000}) → List< num> - Returns a geometric sequence with entries:
-
interpolate<
T extends num> (List< num> temperatures, List<T> start, List<T> end) → List<List< T> > -
Returns a sequence of vectors
by interpolating between
start
andend
. -
linearSequence(
num tStart, num tEnd, {int iterations = 1000}) → List< num> - Linear temperature sequence with entries:
-
lundySequence(
num tStart, num tEnd, {int iterations = 1000}) → List< num> -
Returns the sequence:
tStart, tStart / (1 + beta * tStart),
..., tStart / (1 * (n-1) * beta * tStart)
wherebeta = (1 / tEnd - 1 / tStart) / (n - 1)
. -
markovChainLength(
num temperature, {required num tStart, required num tEnd, int chainLengthStart = 5, int chainLengthEnd = 20}) → int -
Returns an integer linearly interpolated
between
chainLengthStart
andchainLengthEnd
. -
normalSequence(
num tStart, num tEnd, {int iterations = 1000}) → List< num> -
Returns a monotonically decreasing sequence with
entries:
tStart, ..., tEnd
.
Typedefs
-
Energy
= num Function(List<
num> x) - Function representing the system energy (cost function).
- FunctionalInverseCdf = num Function(num p, num start, num end, {required ProbabilityScale scale})
- A generalized inverse cummulative distribution function, where the probability is scaled by a function of typedef ProbabilityScale.
- InverseCdf = num Function(num p, num start, num end)
-
Inverse cummulative distribution function of a probability distribution
function with non-zero support over the interval:
[start, end)
. The function must return a numerical value in the interval:[start, end)
. - MarkovChainLength = int Function(num temperature)
- Function returning an integer representing a Markov chain length (the number of simulated annealing iterations performed at constant temperature).
- Next = num Function()
- ParametricPoint = num Function()
- Function defining an interval start/end point.
- Perturb = num Function(num position, num deltaPosition)
-
PerturbationSequence
= List<
List< Function(List<num> >num> temperatures, List<num> deltaPositionMax, List<num> deltaPositionMin) - Function returning a sequence of pertubation magnitude vectors.
- ProbabilityScale = num Function(num p)
-
A function that scales a probability ( a value between 0 and 1)
such that the returned
value
is also a probability: -
TemperatureSequence
= List<
num> Function(num tStart, num tEnd, {int iterations})