Class CSDPMinimizer
- java.lang.Object
-
- dev.nm.solver.multivariate.constrained.convex.sdp.pathfollowing.CSDPMinimizer
-
- All Implemented Interfaces:
Minimizer<SDPDualProblem,IterativeSolution<CentralPath>>
,ConstrainedMinimizer<SDPDualProblem,IterativeSolution<CentralPath>>
,Optimizer<SDPDualProblem,IterativeSolution<CentralPath>>
public class CSDPMinimizer extends Object implements ConstrainedMinimizer<SDPDualProblem,IterativeSolution<CentralPath>>
Implements the CSDP algorithm for semidefinite programming problem with equality constraints.- See Also:
- "Borchers, Brian, "CSDP, a C Library for Semidefinite Programming", Optimization Methods and Software 11(1): 613-623, 1999."
- "K. C. Toh, M. J. Todd, R. H. Tütüncü, "On the implementation and usage of SDPT3 - a MATLAB software package for semidefinite-quadratic-linear programming, version 4.0," in Handbook on Semidefinite, Cone and Polynomial Optimization: Theory, Algorithms, Software and Applications, Anjos, M. and Lasserre, J.B., ED. Springer, 2012, pp. 715--754."
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
CSDPMinimizer.Solution
-
Constructor Summary
Constructors Constructor Description CSDPMinimizer(double epsilon)
Constructs a Primal-Dual Path-Following minimizer to solve semi-definite programming problems.CSDPMinimizer(double gamma0, 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 eigenvalues of a matrix.CSDPMinimizer.Solution
solve(SDPDualProblem problem)
Solve an optimization problem, e.g.,OptimProblem
.
-
-
-
Constructor Detail
-
CSDPMinimizer
public CSDPMinimizer(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 par a meter: when a number |x| ≤ ε, it is considered 0
-
CSDPMinimizer
public CSDPMinimizer(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 CSDPMinimizer.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 eigenvalues of a matrix.- Parameters:
A
- a matrixepsilon
- a precision parameter: when a number |x| ≤ ε, it is considered 0- Returns:
- the minimum of all the eigenvalues of a matrix
-
-