Class PrimalDualPathFollowingMinimizer

java.lang.Object
dev.nm.solver.multivariate.constrained.convex.sdp.pathfollowing.PrimalDualPathFollowingMinimizer
All Implemented Interfaces:
Minimizer<SDPDualProblem,IterativeSolution<CentralPath>>, ConstrainedMinimizer<SDPDualProblem,IterativeSolution<CentralPath>>, Optimizer<SDPDualProblem,IterativeSolution<CentralPath>>

public class PrimalDualPathFollowingMinimizer extends Object implements ConstrainedMinimizer<SDPDualProblem,IterativeSolution<CentralPath>>
The Primal-Dual Path-Following algorithm is an interior point method that solves Semi-Definite Programming problems. In theory, the algorithm assumes feasible starting points. In practice when there is no feasible starting point, the program utilizes an infeasible interior point method. Specifically, this implementation relaxes the feasible constraints and require only the initials X0 and S0 be positive definite. For example, let X0 and S0 be identity matrices, y0 be a zero vector. This implementation adds one more condition to the terminal condition of iterations. That is,
phi = delta(duality gap) + norm(rd) + norm(rp)
where norm(rd) + norm(rp) measures the feasibility of solution.
  • Constructor Details

    • PrimalDualPathFollowingMinimizer

      public PrimalDualPathFollowingMinimizer(double gamma0, double sigma0, double epsilon)
      Constructs a Primal-Dual Path-Following minimizer to solve semi-definite programming problems.
      Parameters:
      gamma0 - \(0 < \gamma < 1\); it ensures the next iterates are inside the feasible set; suggested values are between 0.9 and 0.99
      sigma0 - \(0 \leq \sigma < 1\), the centering parameter
      epsilon - a precision parameter: when a number |x| ≤ ε, it is considered 0
    • PrimalDualPathFollowingMinimizer

      public PrimalDualPathFollowingMinimizer(double gamma0, double epsilon)
      Constructs a Primal-Dual Path-Following minimizer to solve semi-definite programming problems.
      Parameters:
      gamma0 - \(0 < \gamma < 1\); it ensures the next iterates are inside the feasible set; suggested values are between 0.9 and 0.99
      epsilon - a precision parameter: when a number |x| ≤ ε, it is considered 0
    • PrimalDualPathFollowingMinimizer

      public PrimalDualPathFollowingMinimizer(double epsilon)
      Constructs a Primal-Dual Path-Following minimizer to solve semi-definite programming problems.
      Parameters:
      epsilon - a precision parameter: when a number |x| ≤ ε, it is considered 0
  • Method Details