Click or drag to resize

ActiveSetLineSearchSQP Class

Class ActiveSetLineSearchSQP solves nonlinear programming problems using a Sequential Quadratic Programming (SQP) iterative algorithm.
Inheritance Hierarchy

Namespace:  CenterSpace.NMath.Core
Assembly:  NMath (in NMath.dll) Version: 7.4
Syntax
public class ActiveSetLineSearchSQP : SequentialQuadraticProgrammingSolver

The ActiveSetLineSearchSQP type exposes the following members.

Constructors
  NameDescription
Public methodActiveSetLineSearchSQP
Constructs an ActiveSetLineSearchSQP instance using default settings.
Public methodActiveSetLineSearchSQP(Double)
Creates an ActiveSetLineSearchSQP instance with the given maximum number of iterations and convergence tolerance values.
Public methodActiveSetLineSearchSQP(Int32)
Creates an ActiveSetLineSearchSQP instance with the given number for the maximum number of iterations. The algorithm will terminate when either the current iteration passes a convergence test or the maximum number of iterations is exceeded.
Public methodActiveSetLineSearchSQP(ActiveSetLineSearchSQPOptions)
Constructs an ActiveSetLineSearchSQP instance with the given options.
Public methodActiveSetLineSearchSQP(IActiveSetQPSolver)
Constructs an ActiveSetLineSearchSQP instance using default settings and the given quadratic sub-problem solver.
Public methodActiveSetLineSearchSQP(Int32, Double)
Creates an ActiveSetLineSearchSQP instance with the given maximum number of iterations and convergence tolerance values.
Public methodActiveSetLineSearchSQP(Int32, Double, Double)
Creates an ActiveSetLineSearchSQP instance with the given maximum number of iterations and convergence tolerance values.
Top
Properties
  NameDescription
Public propertyCurrentIteration
Gets a data structure containing information about the most recent iteration. After a solve operation is performed this structure will contain details about the final iteration. Useful for failure analysis.
Public propertyIterations
Gets the number of iterations performed by the solver on its most recent execution.
Public propertyOptimalObjectiveFunctionValue
Gets the minimum value of the object function if the algorithm converged to a solution. If the algorithm did not converge, returns the objective function value at the last iteration before termination.
(Overrides SequentialQuadraticProgrammingSolverOptimalObjectiveFunctionValue.)
Public propertyOptimalX
Gets the point at which the object function has a minimum value if the algorithm converged to a solution. If the algorithm did not converge, returns the value on the last iteration before termination.
(Overrides SequentialQuadraticProgrammingSolverOptimalX.)
Public propertyQPSubProblemStatus
Gets the status of the last quadratic subproblem solved before iteration terminated. Useful for failure analysis.
Public propertyQuadraticSubproblemSolver
Gets the quadratic sub-problem solver.
Public propertySolveException
If an unexpected exception was encountered during the most recent call to the Solve method and the SolverTerminationStatus property has the value TerminationStatus.UnexpectedException, this property will return the Exception object that was caught. Otherwise this property has the value of null.
Public propertySolverOptions
Gets and sets the Lagrangian Hessian updater object used by the solver.
Public propertySolverTerminationStatus
Gets the termination status for the solver.
Top
Methods
  NameDescription
Public methodSolve(NonlinearProgrammingProblem, DoubleVector)
Solve the specified nonlinear programming problem starting the iteration from the specified starting point.
(Overrides SequentialQuadraticProgrammingSolverSolve(NonlinearProgrammingProblem, DoubleVector).)
Public methodSolve(NonlinearProgrammingProblem, IActiveSetQPSolver, DoubleVector)
Solve the specified nonlinear programming problem starting the iteration from the specified starting point and using the provided quadratic sub-problem solver.
Top
Remarks
On each iteration a quadratic subproblem is formed from the Hessian of the Lagrangian and gradient of the objective function evaluated at the current iterate xk. This subproblem is solved using an active set algorithm and its solution yields a step direction, pk for the next iteration. A step size aplhak is then computed using a line search and the next iterate xk+1 is computed as xk+1 = xk + alphak*pk. The iteration is continued until a specified convergence test is passed or a specified maximum number of iterations is exceeded.

Algorithm taken from Numerical Optimization, 2nd Edition, Jorge Nocedal, Stephen J. Wright, ISBN 978-0-387-30303-1, Chapter 18, Algorithm 18.3

See Also