SS.Optimization 1.3.0
Constrained multi-objective selection, nonlinear constraint sensitivity, canonical restart checkpoints and optimizer diagnostic summaries; scaled box-BFGS, Levenberg-Marquardt, SQP/KKT and deterministic compatibility algorithms
Language compatibility: >=1.0.0 <2.0.0
Runtime compatibility: >=1.0.0 <2.0.0
Dependencies: SS.LinearAlgebra ^1.7.0, SS.Numerics ^1.5.0
Public API
Optimization.armijoBacktracking
export function armijoBacktracking(VectorObjective objective, double[] point, double[] gradient, double initialStep, double contraction, double sufficientDecrease, int maximumEvaluations) -> LineSearchResultParameters: objective: VectorObjective, point: double[], gradient: double[], initialStep: double, contraction: double, sufficientDecrease: double, maximumEvaluations: int
export function boundedQuadraticMinimum(double quadratic, double linear, double constant, double lower, double upper) -> ScalarOptimumParameters: quadratic: double, linear: double, constant: double, lower: double, upper: double
Optimization.boxBfgs
export function boxBfgs(VectorObjective objective, double[] initial, double[] lower, double[] upper, double[] scale, double gradientTolerance, double stepTolerance, int maximumIterations)->BoxOptimizationResultParameters: objective: VectorObjective, initial: double[], lower: double[], upper: double[], scale: double[], gradientTolerance: double, stepTolerance: double, maximumIterations: int
export record BoxOptimizationResult(public double[] point, public double value, public int iterations, public int evaluations, public double projectedGradientNorm, public double[] valueHistory, public string status, public bool converged, public string diagnostic)Parameters: point: double[], value: double, iterations: int, evaluations: int, projectedGradientNorm: double, valueHistory: double[], status: string, converged: bool, diagnostic: string
Optimization.centralGradient
export function centralGradient(double[] before, double[] after, double spacing) -> double[]Parameters: before: double[], after: double[], spacing: double
export function checkObjectiveGradient(VectorObjective objective, double[] point, double relativeStep, double absoluteTolerance, double relativeTolerance)->DerivativeCheckParameters: objective: VectorObjective, point: double[], relativeStep: double, absoluteTolerance: double, relativeTolerance: double
export function checkResidualJacobian(GeneralResidualModel model, double[] point, double relativeStep, double absoluteTolerance, double relativeTolerance)->DerivativeCheckParameters: model: GeneralResidualModel, point: double[], relativeStep: double, absoluteTolerance: double, relativeTolerance: double
export function constrainedAugmentedLagrangian(ConstrainedObjective objective, double[] initial, double[] lower, double[] upper, double[] scale, double feasibilityTolerance, double kktTolerance, int maximumIterations)->ConstrainedOptimizationResultParameters: objective: ConstrainedObjective, initial: double[], lower: double[], upper: double[], scale: double[], feasibilityTolerance: double, kktTolerance: double, maximumIterations: int
Optimization.ConstrainedObjective
export interface ConstrainedObjectiveexport record ConstrainedOptimizationResult(public double[] point, public double value, public int iterations, public int evaluations, public double equalityViolation, public double inequalityViolation, public double kktNorm, public double[] equalityMultipliers, public double[] inequalityMultipliers, public double[] valueHistory, public string status, public bool converged, public string diagnostic)Parameters: point: double[], value: double, iterations: int, evaluations: int, equalityViolation: double, inequalityViolation: double, kktNorm: double, equalityMultipliers: double[], inequalityMultipliers: double[], valueHistory: double[], status: string, converged: bool, diagnostic: string
Optimization.constrainedSqp
export function constrainedSqp(ConstrainedObjective objective, double[] initial, double[] lower, double[] upper, double[] scale, double feasibilityTolerance, double kktTolerance, int maximumIterations)->ConstrainedOptimizationResultParameters: objective: ConstrainedObjective, initial: double[], lower: double[], upper: double[], scale: double[], feasibilityTolerance: double, kktTolerance: double, maximumIterations: int
export record ConstraintSensitivityResult(public int[] activeConstraintIndices, public double[][] activeConstraintJacobian, public double[] activeMultipliers, public double[] lagrangianGradient, public double stationarityNorm, public double[] objectiveSensitivity, public string diagnostic)Parameters: activeConstraintIndices: int[], activeConstraintJacobian: double[][], activeMultipliers: double[], lagrangianGradient: double[], stationarityNorm: double, objectiveSensitivity: double[], diagnostic: string
Optimization.DenseStep
export record DenseStep(public double[] values, public int rank, public bool valid)Parameters: values: double[], rank: int, valid: bool
export record DerivativeCheck(public bool valid, public int row, public int column, public double maximumAbsoluteError, public double maximumRelativeError, public string diagnostic)Parameters: valid: bool, row: int, column: int, maximumAbsoluteError: double, maximumRelativeError: double, diagnostic: string
Optimization.GeneralResidualModel
export interface GeneralResidualModelOptimization.globalGrid2
export function globalGrid2(VectorObjective objective, double[] lower, double[] upper, int divisions)->SampledOptimumParameters: objective: VectorObjective, lower: double[], upper: double[], divisions: int
Optimization.goldenSection
export function goldenSection(double[] sampledPoints, double[] sampledValues, double tolerance) -> ScalarOptimumParameters: sampledPoints: double[], sampledValues: double[], tolerance: double
Optimization.goldenSectionSearch
export function goldenSectionSearch(ScalarObjective objective, double lower, double upper, double tolerance, int maximumIterations) -> ScalarOptimumParameters: objective: ScalarObjective, lower: double, upper: double, tolerance: double, maximumIterations: int
Optimization.gradientOptimize
export function gradientOptimize(VectorObjective objective, double[] initial, double initialStep, double gradientTolerance, int maximumIterations) -> OptimizationResultParameters: objective: VectorObjective, initial: double[], initialStep: double, gradientTolerance: double, maximumIterations: int
Optimization.integerGridMinimum
export function integerGridMinimum(ScalarObjective objective, int lower, int upper)->ScalarOptimumParameters: objective: ScalarObjective, lower: int, upper: int
export record LeastSquares2Result(public double firstParameter, public double secondParameter, public double sumSquaredError, public int iterations, public double conditionEstimate, public double[] valueHistory, public bool converged, public string diagnostic)Parameters: firstParameter: double, secondParameter: double, sumSquaredError: double, iterations: int, conditionEstimate: double, valueHistory: double[], converged: bool, diagnostic: string
export record LeastSquaresResult(public double slope, public double intercept, public double sumSquaredError, public bool converged, public string diagnostic)Parameters: slope: double, intercept: double, sumSquaredError: double, converged: bool, diagnostic: string
Optimization.levenbergMarquardt
export function levenbergMarquardt(GeneralResidualModel model, double[] initial, double[] scale, double gradientTolerance, double stepTolerance, int maximumIterations)->LevenbergMarquardtResultParameters: model: GeneralResidualModel, initial: double[], scale: double[], gradientTolerance: double, stepTolerance: double, maximumIterations: int
export record LevenbergMarquardtResult(public double[] point, public double sumSquaredError, public int iterations, public int evaluations, public int acceptedSteps, public int rejectedSteps, public int rank, public double gradientNorm, public double damping, public double[] valueHistory, public string status, public bool converged, public string diagnostic)Parameters: point: double[], sumSquaredError: double, iterations: int, evaluations: int, acceptedSteps: int, rejectedSteps: int, rank: int, gradientNorm: double, damping: double, valueHistory: double[], status: string, converged: bool, diagnostic: string
export record LineSearchResult(public double step, public double value, public int evaluations, public bool accepted, public string diagnostic)Parameters: step: double, value: double, evaluations: int, accepted: bool, diagnostic: string
export function multiObjectiveConstrained(double[][] points, double[][] objectives, bool[] feasible)->MultiObjectiveConstrainedResultParameters: points: double[][], objectives: double[][], feasible: bool[]
export record MultiObjectiveConstrainedResult(public double[][] points, public double[][] objectives, public int[] candidateIndices, public int feasibleCandidates, public int rejectedCandidates, public string diagnostic)Parameters: points: double[][], objectives: double[][], candidateIndices: int[], feasibleCandidates: int, rejectedCandidates: int, diagnostic: string
export function nonlinearConstraintSensitivity(double[] objectiveGradient, double[][] equalityJacobian, double[] equalityMultipliers, double[] inequalityValues, double[][] inequalityJacobian, double[] inequalityMultipliers, double activeTolerance)->ConstraintSensitivityResultParameters: objectiveGradient: double[], equalityJacobian: double[][], equalityMultipliers: double[], inequalityValues: double[], inequalityJacobian: double[][], inequalityMultipliers: double[], activeTolerance: double
export function nonlinearLeastSquares2(ResidualModel2 model, double firstInitial, double secondInitial, double stepTolerance, int maximumIterations) -> LeastSquares2ResultParameters: model: ResidualModel2, firstInitial: double, secondInitial: double, stepTolerance: double, maximumIterations: int
export function nonlinearLeastSquaresLine(double[] predictors, double[] responses) -> LeastSquaresResultParameters: predictors: double[], responses: double[]
export function optimizationCheckpoint(string method, double[] point, double[] valueHistory, int iteration, int evaluations)->stringParameters: method: string, point: double[], valueHistory: double[], iteration: int, evaluations: int
Optimization.optimizationRestart
export function optimizationRestart(string text)->OptimizationRestartStateParameters: text: string
export record OptimizationRestartState(public string method, public double[] point, public double[] valueHistory, public int iteration, public int evaluations, public string schema)Parameters: method: string, point: double[], valueHistory: double[], iteration: int, evaluations: int, schema: string
export record OptimizationResult(public double[] point, public double value, public int iterations, public double gradientNorm, public double[] valueHistory, public bool converged, public string diagnostic)Parameters: point: double[], value: double, iterations: int, gradientNorm: double, valueHistory: double[], converged: bool, diagnostic: string
export function optimizerDiagnosticSummary(bool converged, double feasibilityViolation, double stationarityNorm, double objectiveImprovement, bool unboundedEvidence, bool iterationLimitReached, double feasibilityTolerance, double stationarityTolerance)->OptimizerDiagnosticSummaryParameters: converged: bool, feasibilityViolation: double, stationarityNorm: double, objectiveImprovement: double, unboundedEvidence: bool, iterationLimitReached: bool, feasibilityTolerance: double, stationarityTolerance: double
export record OptimizerDiagnosticSummary(public string status, public bool converged, public bool infeasible, public bool unbounded, public bool stationary, public bool iterationLimited, public string diagnostic)Parameters: status: string, converged: bool, infeasible: bool, unbounded: bool, stationary: bool, iterationLimited: bool, diagnostic: string
Optimization.paretoFront
export function paretoFront(double[][] points, double[] firstObjective, double[] secondObjective)->ParetoFrontParameters: points: double[][], firstObjective: double[], secondObjective: double[]
Optimization.ParetoFront
export record ParetoFront(public ParetoPoint[] points, public int candidates)Parameters: points: ParetoPoint[], candidates: int
Optimization.ParetoPoint
export record ParetoPoint(public double[] point, public double firstObjective, public double secondObjective)Parameters: point: double[], firstObjective: double, secondObjective: double
Optimization.patternSearch
export function patternSearch(VectorObjective objective, double[] initial, double initialStep, double stepTolerance, int maximumIterations) -> OptimizationResultParameters: objective: VectorObjective, initial: double[], initialStep: double, stepTolerance: double, maximumIterations: int
export function projectedGradientOptimize(VectorObjective objective, double[] initial, double[] lower, double[] upper, double initialStep, double gradientTolerance, int maximumIterations) -> OptimizationResultParameters: objective: VectorObjective, initial: double[], lower: double[], upper: double[], initialStep: double, gradientTolerance: double, maximumIterations: int
export function projectedGradientStep(double[] point, double[] gradient, double step, double[] lower, double[] upper) -> double[]Parameters: point: double[], gradient: double[], step: double, lower: double[], upper: double[]
Optimization.ResidualModel2
export interface ResidualModel2Optimization.robustGridMinimum
export function robustGridMinimum(ScenarioObjective objective, double lower, double upper, double[] scenarios, int divisions)->ScalarOptimumParameters: objective: ScenarioObjective, lower: double, upper: double, scenarios: double[], divisions: int
export record SampledOptimum(public double[] point, public double value, public int evaluations, public string method)Parameters: point: double[], value: double, evaluations: int, method: string
Optimization.ScalarObjective
export interface ScalarObjectiveexport record ScalarOptimum(public double point, public double value, public int iterations, public bool converged, public string diagnostic)Parameters: point: double, value: double, iterations: int, converged: bool, diagnostic: string
Optimization.ScenarioObjective
export interface ScenarioObjectiveOptimization.VectorObjective
export interface VectorObjectiveDocumentation version
Language 1.0.0, compiler 1.0.0, runtime 1.0.0. This reference is generated from the official SS documentation so package and language details stay consistent with the release.