Class SQPActiveSetMinimizer
- java.lang.Object
-
- dev.nm.solver.multivariate.constrained.general.sqp.activeset.SQPActiveSetMinimizer
-
- All Implemented Interfaces:
Minimizer<ConstrainedOptimProblem,IterativeSolution<Vector>>
,ConstrainedMinimizer<ConstrainedOptimProblem,IterativeSolution<Vector>>
,Optimizer<ConstrainedOptimProblem,IterativeSolution<Vector>>
- Direct Known Subclasses:
SQPActiveSetOnlyInequalityConstraintMinimizer
public class SQPActiveSetMinimizer extends Object implements ConstrainedMinimizer<ConstrainedOptimProblem,IterativeSolution<Vector>>
Sequential quadratic programming (SQP) is an iterative method for nonlinear optimization. SQP methods are used on problems for which the objective function and the constraints are twice continuously differentiable. SQP methods solve a sequence of optimization subproblems, each which optimizes a quadratic model of the objective subject to a linearization of the constraints. If the problem is unconstrained, then the method reduces to Newton's method for finding a point where the gradient of the objective vanishes. If the problem has only equality constraints, then the method is equivalent to applying Newton's method to the first-order optimality conditions, or Karush-Kuhn-Tucker conditions, of the problem. SQP methods are the state of the art in nonlinear programming methods. Schittkowski has shown that SQP can outperform every other tested method in terms of efficiency, accuracy, and percentage of successful solutions, over a large number of test problems. The general minimization problem takes this form. \[ \min_x f(x) \textrm{ s.t.,} \\ a_i(x) = 0, i = 1, 2, ..., p\\ c_j(x) \geq 0, j = 1, 2, ..., q \]- See Also:
- Wikipedia: Sequential quadratic programming
- Wikipedia: Active set
- "Andreas Antoniou, Wu-Sheng Lu, "Algorithm 15.4, SQP algorithm for nonlinear problems with equality and inequality constraints," Practical Optimization: Algorithms and Engineering Applications."
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
SQPActiveSetMinimizer.Solution
This is the solution to a general minimization with only inequality constraints using the SQP Active Set algorithm.static interface
SQPActiveSetMinimizer.VariationFactory
This factory constructs a new instance ofSQPASVariation
for each SQP problem.
-
Field Summary
Fields Modifier and Type Field Description protected double
epsilon1
protected double
epsilon2
protected int
maxIterations
-
Constructor Summary
Constructors Constructor Description SQPActiveSetMinimizer(double epsilon1, double epsilon2, int maxIterations)
Construct an SQP Active Set minimizer to solve general minimization problems with inequality constraints.SQPActiveSetMinimizer(double epsilon1, int maxIterations)
Construct an SQP Active Set minimizer to solve general minimization problems with inequality constraints.SQPActiveSetMinimizer(SQPActiveSetMinimizer.VariationFactory variant, double epsilon1, double epsilon2, int maxIterations)
Construct an SQP Active Set minimizer to solve general minimization problems with inequality constraints.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SQPActiveSetMinimizer.Solution
solve(ConstrainedOptimProblem problem)
Solve an optimization problem, e.g.,OptimProblem
.
-
-
-
Constructor Detail
-
SQPActiveSetMinimizer
public SQPActiveSetMinimizer(SQPActiveSetMinimizer.VariationFactory variant, double epsilon1, double epsilon2, int maxIterations)
Construct an SQP Active Set minimizer to solve general minimization problems with inequality constraints.- Parameters:
variant
- a factory that constructs a new instance ofSQPASVariation
for each problemepsilon1
- a precision parameter: when a number |x| ≤ ε, it is considered 0; for the SQP solverepsilon2
- a precision parameter: when a number |x| ≤ ε, it is considered 0; for the embedded QP solver; suggested value = 0.maxIterations
- the maximum number of iterations
-
SQPActiveSetMinimizer
public SQPActiveSetMinimizer(double epsilon1, double epsilon2, int maxIterations)
Construct an SQP Active Set minimizer to solve general minimization problems with inequality constraints.- Parameters:
epsilon1
- a precision parameter: when a number |x| ≤ ε, it is considered 0; for the SQP solverepsilon2
- a precision parameter: when a number |x| ≤ ε, it is considered 0; for the embedded QP solver; suggested value = 0.maxIterations
- the maximum number of iterations
-
SQPActiveSetMinimizer
public SQPActiveSetMinimizer(double epsilon1, int maxIterations)
Construct an SQP Active Set minimizer to solve general minimization problems with inequality constraints.- Parameters:
epsilon1
- a precision parameter: when a number |x| ≤ ε, it is considered 0; for the SQP solvermaxIterations
- the maximum number of iterations
-
-
Method Detail
-
solve
public SQPActiveSetMinimizer.Solution solve(ConstrainedOptimProblem problem) throws Exception
Description copied from interface:Optimizer
Solve an optimization problem, e.g.,OptimProblem
.- Specified by:
solve
in interfaceOptimizer<ConstrainedOptimProblem,IterativeSolution<Vector>>
- Parameters:
problem
- an optimization problem- Returns:
- a solution to the optimization problem
- Throws:
Exception
- when there is an error solving the problem
-
-