/// <summary>Initializes a new instance of the <see cref="PowellOptimizer"/> class. /// </summary> /// <param name="abortCondition">The abort (stopping) condition for the Simulated Annealing optimizer.</param> /// <param name="lineSearchOptimizer">The line search optimizer to take into account.</param> /// <param name="constraintProvider">The constraint provider, i.e. transformation etc. for the support of specific constraints (the original algorithm does not support any constraints).</param> public PowellOptimizer(PowellOptimizerAbortCondition abortCondition, OneDimOptimizer lineSearchOptimizer, MultiDimOptimizerConstraintProvider constraintProvider) { AbortCondition = abortCondition ?? throw new ArgumentNullException(nameof(abortCondition)); LineSearchOptimizer = lineSearchOptimizer ?? throw new ArgumentNullException(nameof(lineSearchOptimizer)); m_ConstraintProvider = constraintProvider ?? throw new ArgumentNullException(nameof(constraintProvider)); m_Name = new IdentifierString("Powell optimizer"); m_FunctionDescriptor = new OrdinaryMultiDimOptimizerFunctionFactory(); m_ConstraintDescriptor = new MultiDimOptimizerConstraintFactory(constraintProvider.SupportedConstraints); }
/// <summary>Initializes a new instance of the <see cref="NelderMeadOptimizer"/> class. /// </summary> /// <param name="abortCondition">The abort (stopping) condition for the Nelder-Mead optimizer.</param> /// <param name="constraintProvider">The constraint provider, i.e. transformation etc. for the support of specific constraints (the original algorithm does not support any constraints).</param> /// <param name="initialScaleFactor">A scaling factor which is used to create from a specific initial guess the N + 1 points (in \R^N) of the start simplex.</param> public NelderMeadOptimizer(NelderMeadOptimizerAbortCondition abortCondition, MultiDimOptimizerConstraintProvider constraintProvider, double initialScaleFactor = 1.0) { AbortCondition = abortCondition ?? throw new ArgumentNullException(nameof(abortCondition)); m_ConstraintProvider = constraintProvider ?? throw new ArgumentNullException(nameof(constraintProvider)); m_Name = new IdentifierString("Nelder-Mead-Simplex search optimizer"); m_FunctionDescriptor = new OrdinaryMultiDimOptimizerFunctionFactory(); m_ConstraintDescriptor = new MultiDimOptimizerConstraintFactory(constraintProvider.SupportedConstraints); InitialScaleFactor = initialScaleFactor; }
/// <summary>Initializes a new instance of the <see cref="PraxisOptimizer"/> class. /// </summary> /// <param name="randomNumberStream">The random number stream.</param> /// <param name="abortCondition">The abort (stopping) condition for the Simulated Annealing optimizer.</param> /// <param name="constraintProvider">The constraint provider, i.e. transformation etc. for the support of specific constraints (the original algorithm does not support any constraints).</param> /// <param name="scalingFactor">A scaling parameter. If the scales for the different parameters are very different this value should be/ set to a value of about 10.0.</param> /// <param name="expectedDistanceToSolution">A step length parameter which should be set equal to the expected distance from the solution.</param> public PraxisOptimizer(IRandomNumberStream randomNumberStream, PraxisOptimizerAbortCondition abortCondition, MultiDimOptimizerConstraintProvider constraintProvider, double scalingFactor = 1.0, double expectedDistanceToSolution = 1.0) { if (randomNumberStream == null) { throw new ArgumentNullException(nameof(randomNumberStream)); } m_SingleRandomNumberStream = new SingleRandomNumberStream(randomNumberStream, 250); AbortCondition = abortCondition ?? throw new ArgumentNullException(nameof(abortCondition)); m_ConstraintProvider = constraintProvider ?? throw new ArgumentNullException(nameof(constraintProvider)); ScalingFactor = scalingFactor; ExpectedDistanceToSolution = expectedDistanceToSolution; m_Name = new IdentifierString("PRAXIS optimizer"); m_FunctionDescriptor = new OrdinaryMultiDimOptimizerFunctionFactory(); m_ConstraintDescriptor = new MultiDimOptimizerConstraintFactory(constraintProvider.SupportedConstraints); }
/// <summary>Initializes a new instance of the <see cref="OrdinaryMultiDimOptimizerFunction"/> class. /// </summary> /// <param name="functionDescriptor">The function descriptor, i.e. the <see cref="OrdinaryMultiDimOptimizerFunctionFactory"/> object that served as factory for the current object.</param> /// <param name="objectiveFunction">The objective function.</param> public OrdinaryMultiDimOptimizerFunction(OrdinaryMultiDimOptimizerFunctionFactory functionDescriptor, int dimension, Func <double[], double> objectiveFunction) { Dimension = dimension; m_Factory = functionDescriptor; m_ObjectiveFunction = objectiveFunction; }