Skip to content
OFFICIAL SS DOCUMENTATION

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
API 1.3.0
MIT
source

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

Public signature
export function armijoBacktracking(VectorObjective objective, double[] point, double[] gradient, double initialStep, double contraction, double sufficientDecrease, int maximumEvaluations) -> LineSearchResult

Parameters: objective: VectorObjective, point: double[], gradient: double[], initialStep: double, contraction: double, sufficientDecrease: double, maximumEvaluations: int


Public signature
export function boundedQuadraticMinimum(double quadratic, double linear, double constant, double lower, double upper) -> ScalarOptimum

Parameters: quadratic: double, linear: double, constant: double, lower: double, upper: double


Public signature
export function boxBfgs(VectorObjective objective, double[] initial, double[] lower, double[] upper, double[] scale, double gradientTolerance, double stepTolerance, int maximumIterations)->BoxOptimizationResult

Parameters: objective: VectorObjective, initial: double[], lower: double[], upper: double[], scale: double[], gradientTolerance: double, stepTolerance: double, maximumIterations: int


Public signature
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


Public signature
export function centralGradient(double[] before, double[] after, double spacing) -> double[]

Parameters: before: double[], after: double[], spacing: double


Public signature
export function checkObjectiveGradient(VectorObjective objective, double[] point, double relativeStep, double absoluteTolerance, double relativeTolerance)->DerivativeCheck

Parameters: objective: VectorObjective, point: double[], relativeStep: double, absoluteTolerance: double, relativeTolerance: double


Public signature
export function checkResidualJacobian(GeneralResidualModel model, double[] point, double relativeStep, double absoluteTolerance, double relativeTolerance)->DerivativeCheck

Parameters: model: GeneralResidualModel, point: double[], relativeStep: double, absoluteTolerance: double, relativeTolerance: double


Public signature
export function constrainedAugmentedLagrangian(ConstrainedObjective objective, double[] initial, double[] lower, double[] upper, double[] scale, double feasibilityTolerance, double kktTolerance, int maximumIterations)->ConstrainedOptimizationResult

Parameters: objective: ConstrainedObjective, initial: double[], lower: double[], upper: double[], scale: double[], feasibilityTolerance: double, kktTolerance: double, maximumIterations: int


Public signature
export interface ConstrainedObjective

Public signature
export 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


Public signature
export function constrainedSqp(ConstrainedObjective objective, double[] initial, double[] lower, double[] upper, double[] scale, double feasibilityTolerance, double kktTolerance, int maximumIterations)->ConstrainedOptimizationResult

Parameters: objective: ConstrainedObjective, initial: double[], lower: double[], upper: double[], scale: double[], feasibilityTolerance: double, kktTolerance: double, maximumIterations: int


Public signature
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


Public signature
export record DenseStep(public double[] values, public int rank, public bool valid)

Parameters: values: double[], rank: int, valid: bool


Public signature
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


Public signature
export interface GeneralResidualModel

Public signature
export function globalGrid2(VectorObjective objective, double[] lower, double[] upper, int divisions)->SampledOptimum

Parameters: objective: VectorObjective, lower: double[], upper: double[], divisions: int


Public signature
export function goldenSection(double[] sampledPoints, double[] sampledValues, double tolerance) -> ScalarOptimum

Parameters: sampledPoints: double[], sampledValues: double[], tolerance: double


Public signature
export function goldenSectionSearch(ScalarObjective objective, double lower, double upper, double tolerance, int maximumIterations) -> ScalarOptimum

Parameters: objective: ScalarObjective, lower: double, upper: double, tolerance: double, maximumIterations: int


Public signature
export function gradientOptimize(VectorObjective objective, double[] initial, double initialStep, double gradientTolerance, int maximumIterations) -> OptimizationResult

Parameters: objective: VectorObjective, initial: double[], initialStep: double, gradientTolerance: double, maximumIterations: int


Public signature
export function integerGridMinimum(ScalarObjective objective, int lower, int upper)->ScalarOptimum

Parameters: objective: ScalarObjective, lower: int, upper: int


Public signature
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


Public signature
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


Public signature
export function levenbergMarquardt(GeneralResidualModel model, double[] initial, double[] scale, double gradientTolerance, double stepTolerance, int maximumIterations)->LevenbergMarquardtResult

Parameters: model: GeneralResidualModel, initial: double[], scale: double[], gradientTolerance: double, stepTolerance: double, maximumIterations: int


Public signature
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


Public signature
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


Public signature
export function multiObjectiveConstrained(double[][] points, double[][] objectives, bool[] feasible)->MultiObjectiveConstrainedResult

Parameters: points: double[][], objectives: double[][], feasible: bool[]


Public signature
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


Public signature
export function nonlinearConstraintSensitivity(double[] objectiveGradient, double[][] equalityJacobian, double[] equalityMultipliers, double[] inequalityValues, double[][] inequalityJacobian, double[] inequalityMultipliers, double activeTolerance)->ConstraintSensitivityResult

Parameters: objectiveGradient: double[], equalityJacobian: double[][], equalityMultipliers: double[], inequalityValues: double[], inequalityJacobian: double[][], inequalityMultipliers: double[], activeTolerance: double


Public signature
export function nonlinearLeastSquares2(ResidualModel2 model, double firstInitial, double secondInitial, double stepTolerance, int maximumIterations) -> LeastSquares2Result

Parameters: model: ResidualModel2, firstInitial: double, secondInitial: double, stepTolerance: double, maximumIterations: int


Public signature
export function nonlinearLeastSquaresLine(double[] predictors, double[] responses) -> LeastSquaresResult

Parameters: predictors: double[], responses: double[]


Public signature
export function optimizationCheckpoint(string method, double[] point, double[] valueHistory, int iteration, int evaluations)->string

Parameters: method: string, point: double[], valueHistory: double[], iteration: int, evaluations: int


Public signature
export function optimizationRestart(string text)->OptimizationRestartState

Parameters: text: string


Public signature
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


Public signature
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


Public signature
export function optimizerDiagnosticSummary(bool converged, double feasibilityViolation, double stationarityNorm, double objectiveImprovement, bool unboundedEvidence, bool iterationLimitReached, double feasibilityTolerance, double stationarityTolerance)->OptimizerDiagnosticSummary

Parameters: converged: bool, feasibilityViolation: double, stationarityNorm: double, objectiveImprovement: double, unboundedEvidence: bool, iterationLimitReached: bool, feasibilityTolerance: double, stationarityTolerance: double


Public signature
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


Public signature
export function paretoFront(double[][] points, double[] firstObjective, double[] secondObjective)->ParetoFront

Parameters: points: double[][], firstObjective: double[], secondObjective: double[]


Public signature
export record ParetoFront(public ParetoPoint[] points, public int candidates)

Parameters: points: ParetoPoint[], candidates: int


Public signature
export record ParetoPoint(public double[] point, public double firstObjective, public double secondObjective)

Parameters: point: double[], firstObjective: double, secondObjective: double


Public signature
export function patternSearch(VectorObjective objective, double[] initial, double initialStep, double stepTolerance, int maximumIterations) -> OptimizationResult

Parameters: objective: VectorObjective, initial: double[], initialStep: double, stepTolerance: double, maximumIterations: int


Public signature
export function projectedGradientOptimize(VectorObjective objective, double[] initial, double[] lower, double[] upper, double initialStep, double gradientTolerance, int maximumIterations) -> OptimizationResult

Parameters: objective: VectorObjective, initial: double[], lower: double[], upper: double[], initialStep: double, gradientTolerance: double, maximumIterations: int


Public signature
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[]


Public signature
export interface ResidualModel2

Public signature
export function robustGridMinimum(ScenarioObjective objective, double lower, double upper, double[] scenarios, int divisions)->ScalarOptimum

Parameters: objective: ScenarioObjective, lower: double, upper: double, scenarios: double[], divisions: int


Public signature
export record SampledOptimum(public double[] point, public double value, public int evaluations, public string method)

Parameters: point: double[], value: double, evaluations: int, method: string


Public signature
export interface ScalarObjective

Public signature
export 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


Public signature
export interface ScenarioObjective

Public signature
export interface VectorObjective

Documentation 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.