java.lang.Object
org.hipparchus.optim.nonlinear.vector.constrained.ADMMQPKKT
All Implemented Interfaces:
KarushKuhnTuckerSolver<ADMMQPSolution>, OptimizationData

public class ADMMQPKKT extends Object implements KarushKuhnTuckerSolver<ADMMQPSolution>
Alternative Direction Method of Multipliers Solver.
Since:
3.1
  • Method Details

    • solve

      public ADMMQPSolution solve(RealVector b1, RealVector b2)
      Solve Karush–Kuhn–Tucker equation from given right hand value.
      Specified by:
      solve in interface KarushKuhnTuckerSolver<ADMMQPSolution>
      Parameters:
      b1 - first right hand vector
      b2 - second right hand vector
      Returns:
      Tuple with the solution x,Lambda,value
    • updateSigmaRho

      public void updateSigmaRho(double newSigma, int me, double rho)
      Update steps
      Parameters:
      newSigma - new regularization term sigma for Karush–Kuhn–Tucker solver
      me - number of equality constraints
      rho - new step size
    • initialize

      public void initialize(RealMatrix newH, RealMatrix newA, RealVector newQ, int me, RealVector newLb, RealVector newUb, double rho, double newSigma, double newAlpha)
      Initialize problem
      Parameters:
      newH - square matrix of weights for quadratic term
      newA - constraints coefficients matrix
      newQ - TBD
      me - number of equality constraints
      newLb - lower bound
      newUb - upper bound
      rho - step size
      newSigma - regularization term sigma for Karush–Kuhn–Tucker solver
      newAlpha - alpha filter for ADMM iteration
    • iterate

      public ADMMQPSolution iterate(RealVector... previousSol)
      Iterate Karush–Kuhn–Tucker equation from given list of Vector
      Specified by:
      iterate in interface KarushKuhnTuckerSolver<ADMMQPSolution>
      Parameters:
      previousSol - list of vectors
      Returns:
      Tuple with the solution x,Lambda,value