public ContinuousOptimizationContext(
Func<DoubleMatrix, double> objectiveFunction,
DoubleMatrix initialArgument,
double meanSmoothingCoefficient,
double standardDeviationSmoothingCoefficient,
int standardDeviationSmoothingExponent,
double initialStandardDeviation,
double terminationTolerance,
OptimizationGoal optimizationGoal,
int minimumNumberOfIterations,
int maximumNumberOfIterations
)
Public Sub New (
objectiveFunction As Func(Of DoubleMatrix, Double),
initialArgument As DoubleMatrix,
meanSmoothingCoefficient As Double,
standardDeviationSmoothingCoefficient As Double,
standardDeviationSmoothingExponent As Integer,
initialStandardDeviation As Double,
terminationTolerance As Double,
optimizationGoal As OptimizationGoal,
minimumNumberOfIterations As Integer,
maximumNumberOfIterations As Integer
)
public:
ContinuousOptimizationContext(
Func<DoubleMatrix^, double>^ objectiveFunction,
DoubleMatrix^ initialArgument,
double meanSmoothingCoefficient,
double standardDeviationSmoothingCoefficient,
int standardDeviationSmoothingExponent,
double initialStandardDeviation,
double terminationTolerance,
OptimizationGoal optimizationGoal,
int minimumNumberOfIterations,
int maximumNumberOfIterations
)
new :
objectiveFunction : Func<DoubleMatrix, float> *
initialArgument : DoubleMatrix *
meanSmoothingCoefficient : float *
standardDeviationSmoothingCoefficient : float *
standardDeviationSmoothingExponent : int *
initialStandardDeviation : float *
terminationTolerance : float *
optimizationGoal : OptimizationGoal *
minimumNumberOfIterations : int *
maximumNumberOfIterations : int -> ContinuousOptimizationContext
It is assumed that the objectiveFunction will accept row vectors as valid representations of an argument. As a consequence, initialArgument is expected to be a row vector.
As discussed by Rubinstein and Kroese, Remark 5.2, p. 189[1], typical values for meanSmoothingCoefficient are between .7 and 1 (excluded), while standardDeviationSmoothingCoefficient should be between .8 and 1 (excluded), with standardDeviationSmoothingExponent between 5 and 10.
Also, it is expected that initialStandardDeviation is a big enough number, such as 100.0. In this way, during the first execution of the sampling step, each argument will have a good likelihood of being drawn.
ArgumentNullException | objectiveFunction is null. -or- initialArgument is null. |
ArgumentException | optimizationGoal is not a field of
OptimizationGoal. -or- initialArgument is not a row vector. -or- minimumNumberOfIterations is greater than maximumNumberOfIterations. |
ArgumentOutOfRangeException | meanSmoothingCoefficient is not
in the open interval between 0 and 1. -or- standardDeviationSmoothingCoefficient is not in the open interval between 0 and 1. -or- standardDeviationSmoothingExponent is not positive. -or- initialStandardDeviation is not positive. -or- terminationTolerance is not positive. -or- minimumNumberOfIterations is not positive. -or- maximumNumberOfIterations is not positive. |