public class NeighbourhoodSizeFunctionFactory extends Object
NeighbourhoodSizeFunction
.Modifier and Type | Method and Description |
---|---|
static NeighbourhoodSizeFunction |
exponentialDecay(double initValue,
double valueAtNumCall,
long numCall)
Creates an exponential decay
function . |
static NeighbourhoodSizeFunction |
quasiSigmoidDecay(double initValue,
double slope,
long numCall)
Creates an sigmoid-like
NeighbourhoodSizeFunction function . |
public static NeighbourhoodSizeFunction exponentialDecay(double initValue, double valueAtNumCall, long numCall)
function
.
It will compute a e-x / b
,
where x
is the (integer) independent variable and
a = initValue
b = -numCall / ln(valueAtNumCall / initValue)
initValue
- Initial value, i.e.
value(0)
.valueAtNumCall
- Value of the function at numCall
.numCall
- Argument for which the function returns
valueAtNumCall
.NotStrictlyPositiveException
- if initValue <= 0
.NotStrictlyPositiveException
- if valueAtNumCall <= 0
.NumberIsTooLargeException
- if valueAtNumCall >= initValue
.NotStrictlyPositiveException
- if numCall <= 0
.public static NeighbourhoodSizeFunction quasiSigmoidDecay(double initValue, double slope, long numCall)
NeighbourhoodSizeFunction function
.
The function f
will have the following properties:
f(0) = initValue
numCall
is the inflexion pointslope = f'(numCall)
initValue
- Initial value, i.e.
value(0)
.slope
- Value of the function derivative at numCall
.numCall
- Inflexion point.NotStrictlyPositiveException
- if initValue <= 0
.NumberIsTooLargeException
- if slope >= 0
.NotStrictlyPositiveException
- if numCall <= 0
.Copyright © 2003–2016 The Apache Software Foundation. All rights reserved.