Class QPPrimalActiveSetMinimizer

  • All Implemented Interfaces:
    Minimizer<QPProblem,​IterativeSolution<QPSolution>>, ConstrainedMinimizer<QPProblem,​IterativeSolution<QPSolution>>, QPMinimizer, Optimizer<QPProblem,​IterativeSolution<QPSolution>>

    public class QPPrimalActiveSetMinimizer
    extends Object
    implements QPMinimizer
    This implementation solves a Quadratic Programming problem using the Primal Active Set algorithm. In quadratic programming, as the solution is not necessarily on one of the edges of the bounding polygon, an estimation of the active set gives us a subset of inequalities to watch while searching the solution, which reduces the complexity of the search. A bottleneck is that only one constraint can be added or removed from the working set per iteration.
    See Also:
    • "Andreas Antoniou, Wu-Sheng Lu, "Algorithm 13.1, Quadratic and Convex Programming," Practical Optimization: Algorithms and Engineering Applications."
    • "Jorge Nocedal, Stephen Wright, "Algorithm 16.3," Numerical Optimization."
    • Wikipedia: Active set
    • Constructor Detail

      • QPPrimalActiveSetMinimizer

        public QPPrimalActiveSetMinimizer​(double epsilon,
                                          int maxIterations,
                                          boolean containBoxConstraints)
        Constructs a Primal Active Set minimizer to solve quadratic programming problems.
        Parameters:
        epsilon - a precision parameter: when a number |x| ≤ ε, it is considered 0
        maxIterations - the maximum number of iterations, e.g., Integer.MAX_VALUE
        containBoxConstraints - true if the problem contains box constraints
      • QPPrimalActiveSetMinimizer

        public QPPrimalActiveSetMinimizer​(double epsilon,
                                          int maxIterations)
        Constructs a Primal Active Set minimizer to solve quadratic programming problems.
        Parameters:
        epsilon - a precision parameter: when a number |x| ≤ ε, it is considered 0
        maxIterations - the maximum number of iterations, e.g., Integer.MAX_VALUE