Table of Contents

Class GridSearchOptimizer<TInput, TMetric>

Namespace
SignalSharp.Optimization.GridSearch
Assembly
SignalSharp.dll

Implements a grid search optimization strategy. It systematically evaluates the objective function at points on a grid defined by the parameter ranges and step counts. This optimizer does not use gradient information.

public class GridSearchOptimizer<TInput, TMetric> : IParameterOptimizer<TInput, TMetric> where TMetric : IFloatingPointIeee754<TMetric>

Type Parameters

TInput

The type of the input data provided to the objective function.

TMetric

The type of the objective metric (e.g., SSE), which must be a floating-point type.

Inheritance
GridSearchOptimizer<TInput, TMetric>
Implements
IParameterOptimizer<TInput, TMetric>
Inherited Members

Constructors

GridSearchOptimizer(GridSearchOptimizerOptions?, ILogger<GridSearchOptimizer<TInput, TMetric>>?)

Initializes a new instance of the GridSearchOptimizer<TInput, TMetric> class.

public GridSearchOptimizer(GridSearchOptimizerOptions? options = null, ILogger<GridSearchOptimizer<TInput, TMetric>>? logger = null)

Parameters

options GridSearchOptimizerOptions

Configuration options for the grid search.

logger ILogger<GridSearchOptimizer<TInput, TMetric>>

Optional logger instance.

Methods

Optimize(TInput, IEnumerable<ParameterDefinition>, Func<TInput, IReadOnlyDictionary<string, double>, ObjectiveEvaluation<TMetric>>)

Optimizes the objective function synchronously by running the asynchronous search and waiting for it.

public OptimizationResult<TMetric> Optimize(TInput inputData, IEnumerable<ParameterDefinition> parametersToOptimize, Func<TInput, IReadOnlyDictionary<string, double>, ObjectiveEvaluation<TMetric>> objectiveFunction)

Parameters

inputData TInput

The input data passed to the objective function.

parametersToOptimize IEnumerable<ParameterDefinition>

The parameters to optimize, with unique names.

objectiveFunction Func<TInput, IReadOnlyDictionary<string, double>, ObjectiveEvaluation<TMetric>>

The objective function to minimize.

Returns

OptimizationResult<TMetric>

The optimization result.

Exceptions

ArgumentNullException

Thrown when the parameters or objective function are null.

ArgumentException

Thrown when parameter names are duplicated.

OptimizeAsync(TInput, IEnumerable<ParameterDefinition>, Func<TInput, IReadOnlyDictionary<string, double>, ObjectiveEvaluation<TMetric>>, CancellationToken)

Asynchronously optimizes a set of parameters for a given objective function with cancellation support.

public Task<OptimizationResult<TMetric>> OptimizeAsync(TInput inputData, IEnumerable<ParameterDefinition> parametersToOptimize, Func<TInput, IReadOnlyDictionary<string, double>, ObjectiveEvaluation<TMetric>> objectiveFunction, CancellationToken cancellationToken)

Parameters

inputData TInput

The input data required by the objective function (e.g., time series signal).

parametersToOptimize IEnumerable<ParameterDefinition>

A collection of ParameterDefinition objects, describing each parameter's name, bounds, and optional initial guess.

objectiveFunction Func<TInput, IReadOnlyDictionary<string, double>, ObjectiveEvaluation<TMetric>>

A function delegate that, given the input data and a dictionary of current trial parameter values, computes and returns an ObjectiveEvaluation<TMetric>. The evaluation includes the metric value and, optionally, the gradient of the metric with respect to the parameters.

cancellationToken CancellationToken

Token to cancel the optimization process.

Returns

Task<OptimizationResult<TMetric>>

An OptimizationResult<TMetric> containing the best parameters found, the minimized metric value, and other optimization details.

Remarks

Cancellation stops the search and surfaces as an OperationCanceledException rather than returning a partial result as if the search had completed.

Exceptions

OperationCanceledException

Thrown when the operation is cancelled through cancellationToken.

ArgumentNullException

Thrown when parametersToOptimize or objectiveFunction is null.

ArgumentException

Thrown when parameter names are duplicated.