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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
PrimalDualPathFollowingMinimizer.Solution
This is the solution to a Semi-Definite Programming problem using the Primal-Dual Path-Following algorithm.
-
Constructor Summary
Constructors Constructor Description PrimalDualPathFollowingMinimizer(double epsilon)
Constructs a Primal-Dual Path-Following minimizer to solve semi-definite programming problems.PrimalDualPathFollowingMinimizer(double gamma0, double epsilon)
Constructs a Primal-Dual Path-Following minimizer to solve semi-definite programming problems.PrimalDualPathFollowingMinimizer(double gamma0, double sigma0, double epsilon)
Constructs a Primal-Dual Path-Following minimizer to solve semi-definite programming problems.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static double
getMinEigenValue(Matrix A, double epsilon)
Gets the minimum of all the eigen values of a matrix.PrimalDualPathFollowingMinimizer.Solution
solve(SDPDualProblem problem)
Solve an optimization problem, e.g.,OptimProblem
.
-
-
-
Constructor Detail
-
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.99sigma0
- \(0 \leq \sigma < 1\), the centering parameterepsilon
- 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.99epsilon
- 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 Detail
-
solve
public PrimalDualPathFollowingMinimizer.Solution solve(SDPDualProblem problem) throws Exception
Description copied from interface:Optimizer
Solve an optimization problem, e.g.,OptimProblem
.- Specified by:
solve
in interfaceOptimizer<SDPDualProblem,IterativeSolution<CentralPath>>
- Parameters:
problem
- an optimization problem- Returns:
- a solution to the optimization problem
- Throws:
Exception
- when there is an error solving the problem
-
getMinEigenValue
protected static double getMinEigenValue(Matrix A, double epsilon)
Gets the minimum of all the eigen values of a matrix.- Parameters:
A
- a matrixepsilon
- a precision parameter: when a number |x| ≤ ε, it is considered 0- Returns:
- the minimum of all the eigen values of a matrix
-
-