Table of Contents

Class NelderMeadOptimizerOptions

Namespace
SignalSharp.Optimization.NelderMead
Assembly
SignalSharp.dll

Configuration options for the NelderMeadOptimizer<TInput, TMetric>.

public record NelderMeadOptimizerOptions : IEquatable<NelderMeadOptimizerOptions>
Inheritance
NelderMeadOptimizerOptions
Implements
Inherited Members

Constructors

NelderMeadOptimizerOptions()

public NelderMeadOptimizerOptions()

Properties

ContractionFactor

Contraction factor (gamma). Typically 0.5. Must be between 0 (exclusive) and 1 (exclusive).

public double ContractionFactor { get; init; }

Property Value

double

EnableAdaptiveParameters

Whether to enable adaptive parameter adjustment during optimization. When true, the Nelder-Mead coefficients are adjusted based on iteration count and dimension.

public bool EnableAdaptiveParameters { get; init; }

Property Value

bool

EnableMultiStart

Whether to enable multi-start optimization. When true, the optimizer will perform multiple optimization runs with different starting points to increase the chances of finding the global minimum.

public bool EnableMultiStart { get; init; }

Property Value

bool

EnableParameterConvergence

Whether to enable parameter-based convergence checking. When true, the optimizer will also check if parameter values across the simplex have converged to within ParameterConvergenceTolerance.

public bool EnableParameterConvergence { get; init; }

Property Value

bool

ExpansionFactor

Expansion factor (chi). Typically 2.0. Must be greater than ReflectionFactor.

public double ExpansionFactor { get; init; }

Property Value

double

FunctionValueConvergenceTolerance

Absolute tolerance for the difference in function values between the best and worst points in the simplex. If (f(worst) - f(best)) is less than this, convergence is assumed. Must be non-negative.

public double FunctionValueConvergenceTolerance { get; init; }

Property Value

double

InitialSimplexAbsoluteStepForZeroRange

Absolute step used to generate the initial simplex if a parameter's range is zero or extremely small. Must be positive.

public double InitialSimplexAbsoluteStepForZeroRange { get; init; }

Property Value

double

InitialSimplexRangeFactor

Factor used to generate the initial simplex by perturbing the initial guess along each dimension, relative to the range of that parameter. E.g., 0.05 means 5% of the parameter's range. Must be positive.

public double InitialSimplexRangeFactor { get; init; }

Property Value

double

MaxFunctionEvaluations

Maximum number of function evaluations across all optimization runs. If null, the limit is primarily controlled by MaxIterations.

public int? MaxFunctionEvaluations { get; init; }

Property Value

int?

MaxIterations

Maximum number of iterations for each optimization run.

public int MaxIterations { get; init; }

Property Value

int

MaxRestarts

The maximum number of additional starts to attempt. Only used when EnableMultiStart is true.

public int MaxRestarts { get; init; }

Property Value

int

ParameterConvergenceTolerance

Relative tolerance for parameter convergence. If the maximum normalized difference between any parameter values in the simplex is less than this value, convergence is assumed. Must be positive.

public double ParameterConvergenceTolerance { get; init; }

Property Value

double

ReflectionFactor

Reflection factor (rho). Typically 1.0. Must be greater than 0.

public double ReflectionFactor { get; init; }

Property Value

double

ShrinkFactor

Shrink factor (sigma). Typically 0.5. Must be between 0 (exclusive) and 1 (exclusive).

public double ShrinkFactor { get; init; }

Property Value

double

StagnationImprovementThreshold

An absolute tolerance for improvement. If the best function value does not improve by at least this amount for StagnationThresholdCount consecutive iterations, the optimization is considered to have stagnated.

public double StagnationImprovementThreshold { get; init; }

Property Value

double

StagnationThresholdCount

Maximum number of iterations without improvement before the optimizer is considered to be stagnating.

public int StagnationThresholdCount { get; init; }

Property Value

int