/// <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>Creates a new <see cref="IOneDimOptimizerAlgorithm"/> object. /// </summary> /// <param name="oneDimOptimizer">The <see cref="OneDimOptimizer"/> object.</param> /// <param name="interval">The constraint in its <see cref="IOneDimRegion"/> representation.</param> /// <returns>A new <see cref="IOneDimOptimizerAlgorithm"/> object.</returns> public static IOneDimOptimizerAlgorithm Create(this OneDimOptimizer oneDimOptimizer, IOneDimRegion interval) { if (interval == null) { return(oneDimOptimizer.Create(oneDimOptimizer.Constraint.Create(Interval.RealAxis))); } var constraint = oneDimOptimizer.Constraint.Create(interval); return(oneDimOptimizer.Create(constraint)); }
/// <summary>Initializes the <see cref="PowellOptimizer" /> class. /// </summary> static PowellOptimizer() { StandardAbortCondition = PowellOptimizerAbortCondition.Create(); StandardLineSearchOptimizer = new BrentOptimizer(); StandardConstraintProvider = MultiDimOptimizerConstraintProvider.BoxTransformation; }