Header menu logo bristlecone

EndConditions Module

Composable end conditions to specify when optimisation
 routines should end.

Nested modules

Modules Description

Ensemble

Profiles

Functions and values

Function or value Description

atIteration iteration arg2 currentIteration

Full Usage: atIteration iteration arg2 currentIteration

Parameters:
Returns: OptimStopReason

End on or after a minimum number of iterations.

iteration : int<MeasureProduct<iteration, MeasureOne>>
arg1 : Solution list
currentIteration : int<MeasureProduct<iteration, MeasureOne>>
Returns: OptimStopReason

combineAll conditions results iter

Full Usage: combineAll conditions results iter

Parameters:
Returns: OptimStopReason

Stop when all conditions have non-continue reasons.

conditions : EndCondition list
results : Solution list
iter : int<MeasureProduct<iteration, MeasureOne>>
Returns: OptimStopReason

combineAny conditions results iter

Full Usage: combineAny conditions results iter

Parameters:
Returns: OptimStopReason

Stop when any condition has a non-continue reason.

conditions : EndCondition list
results : Solution list
iter : int<MeasureProduct<iteration, MeasureOne>>
Returns: OptimStopReason

stationarySquaredJumpDistance log

Full Usage: stationarySquaredJumpDistance log

Parameters:
Returns: EndCondition

True if there is no significant slope in mean squared jumping distances (MSJD), binned per 200 iterations and a regression of five bins.

log : LogEvent -> unit
Returns: EndCondition

stationarySquaredJumpDistance' fixedBin pointsRequired slopeTol log results i

Full Usage: stationarySquaredJumpDistance' fixedBin pointsRequired slopeTol log results i

Parameters:
Returns: OptimStopReason

An `EndCondition` that calculates that segregates the most recent n results into five bins, and runs a regression to detect a temporal variation in the mean squared jumping distance (MSJD). The significance of the slope coefficient of a linear regression is assessed to determine if the MSJD is increasing through time for every parameter sequentially: if all p-values are >0.1, then the `EndCondition` is true.

fixedBin : int
pointsRequired : int
slopeTol : float
log : LogEvent -> unit
results : Solution list
i : int<MeasureProduct<iteration, MeasureOne>>
Returns: OptimStopReason

whenAcceptanceRateOutside min max interval intervalsRequired log results iteration

Full Usage: whenAcceptanceRateOutside min max interval intervalsRequired log results iteration

Parameters:
Returns: OptimStopReason
min : float
max : float
interval : int<MeasureProduct<iteration, MeasureOne>>
intervalsRequired : int<MeasureOne>
log : LogEvent -> unit
results : Solution list
iteration : int<MeasureProduct<iteration, MeasureOne>>
Returns: OptimStopReason

whenImprovementsMade count interval results iteration

Full Usage: whenImprovementsMade count interval results iteration

Parameters:
Returns: OptimStopReason

Ends when the overall number of improvements made is greater than `count`.

count : int
interval : int<MeasureProduct<iteration, MeasureOne>>
results : Solution list
iteration : int<MeasureProduct<iteration, MeasureOne>>
Returns: OptimStopReason

whenNoBestValueImprovement window results iteration

Full Usage: whenNoBestValueImprovement window results iteration

Parameters:
Returns: OptimStopReason

Given a list of solutions, which are ordered most recent first, returns `true` if there are at least `window` recent results, and the change within the recent results is no more than `tolerance`.

window : int<MeasureProduct<iteration, MeasureOne>>
results : Solution list
iteration : int<MeasureProduct<iteration, MeasureOne>>
Returns: OptimStopReason

whenObjectiveFlat interval results iteration

Full Usage: whenObjectiveFlat interval results iteration

Parameters:
Returns: OptimStopReason

Ends if the mean change in the objective's value is less than a tolerance of 1e-6.

interval : int<MeasureProduct<iteration, MeasureOne>>
results : Solution list
iteration : int<MeasureProduct<iteration, MeasureOne>>
Returns: OptimStopReason

whenStableAcceptanceRate min max interval intervalsRequired log

Full Usage: whenStableAcceptanceRate min max interval intervalsRequired log

Parameters:
Returns: EndCondition

Stops when acceptance rate is consistently within the defined range. Used to avoid stopping when not mixing.

min : float
max : float
interval : int<MeasureProduct<iteration, MeasureOne>>
intervalsRequired : int<MeasureOne>
log : LogEvent -> unit
Returns: EndCondition

whenStationary threshold nSteps results iter

Full Usage: whenStationary threshold nSteps results iter

Parameters:
Returns: OptimStopReason

Stops when there is a lack of movement, as indicated by squared jump distance below threshold across the last n steps.

threshold : float<MeasureProduct<MeasureProduct<optim-space, optim-space>, MeasureOne>>
nSteps : int<MeasureProduct<iteration, MeasureOne>>
results : Solution list
iter : int<MeasureProduct<iteration, MeasureOne>>
Returns: OptimStopReason

whenStuck movementFloor interval results iteration

Full Usage: whenStuck movementFloor interval results iteration

Parameters:
Returns: OptimStopReason

whenVarianceStabilised window relTol results iteration

Full Usage: whenVarianceStabilised window relTol results iteration

Parameters:
Returns: OptimStopReason A stop condition or Continue.

Stop when the rolling variance of the objective stabilises.

window : int<MeasureProduct<iteration, MeasureOne>>

number of recent samples to compare

relTol : float<MeasureOne>

relative change threshold (e.g. 0.05 = 5%)

results : Solution list
iteration : int<MeasureProduct<iteration, MeasureOne>>
Returns: OptimStopReason

A stop condition or Continue.

whenWorstValuePlateaued window results iteration

Full Usage: whenWorstValuePlateaued window results iteration

Parameters:
Returns: OptimStopReason

End when exploration is not detecting any new worse results. For use in heating stages of simulated annealing.

window : int<MeasureProduct<iteration, MeasureOne>>
results : Solution list
iteration : int<MeasureProduct<iteration, MeasureOne>>
Returns: OptimStopReason

Type something to start searching.