Class PrimalDualInteriorPointMinimizer1.Solution
- java.lang.Object
-
- dev.nm.solver.multivariate.constrained.convex.sdp.socp.interiorpoint.PrimalDualInteriorPointMinimizer1.Solution
-
- All Implemented Interfaces:
IterativeMethod<PrimalDualSolution>
,IterativeSolution<PrimalDualSolution>
,MinimizationSolution<PrimalDualSolution>
- Enclosing class:
- PrimalDualInteriorPointMinimizer1
public class PrimalDualInteriorPointMinimizer1.Solution extends Object implements IterativeSolution<PrimalDualSolution>
This is the solution to a Dual Second-Order Conic Programming problem using the Primal-Dual Predictor-Corrector Interior Point algorithm.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PrimalDualSolution
minimizer()
Get the minimizer (solution) to the minimization problem.double
minimum()
Get the (approximate) minimum found.PrimalDualSolution
search()
[Previous Version] Searches for a solution that optimizes the objective function from the starting point given by K.PrimalDualSolution
search(PrimalDualSolution initial)
Searches for a solution that optimizes the objective function from the given starting point.PrimalDualSolution
search(PrimalDualSolution... initials)
Search for a solution that optimizes the objective function from the given starting points.void
setInitials(PrimalDualSolution... initials)
Supply the starting points for the search.Boolean
step()
Do the next iteration.
-
-
-
Method Detail
-
minimum
public double minimum()
Get the (approximate) minimum found. c*x is the value of the prime objective function, and b*y is the value of the dual objective function. In theory c*x=b*y. For an SOCP problem, the prime objective function is minimized, while the dual objective function is maximized. Therefore, the method "minimum()" return c*x.- Specified by:
minimum
in interfaceMinimizationSolution<PrimalDualSolution>
- Returns:
-
minimizer
public PrimalDualSolution minimizer()
Description copied from interface:MinimizationSolution
Get the minimizer (solution) to the minimization problem.- Specified by:
minimizer
in interfaceMinimizationSolution<PrimalDualSolution>
- Returns:
- the minimizer
-
setInitials
public void setInitials(PrimalDualSolution... initials)
Description copied from interface:IterativeMethod
Supply the starting points for the search. This can also initialize the state of the algorithm for a new search.- Specified by:
setInitials
in interfaceIterativeMethod<PrimalDualSolution>
- Parameters:
initials
- the initial guesses
-
search
public PrimalDualSolution search(PrimalDualSolution... initials) throws Exception
Description copied from interface:IterativeMethod
Search for a solution that optimizes the objective function from the given starting points. This method typically calls first#setInitials(S...)
and then iterativelyIterativeMethod.step()
. It implements a default convergence criterion.- Specified by:
search
in interfaceIterativeMethod<PrimalDualSolution>
- Parameters:
initials
- the initial guesses- Returns:
- an (approximate) optimizer
- Throws:
Exception
- when an error occurs during the search
-
search
public PrimalDualSolution search(PrimalDualSolution initial) throws Exception
Searches for a solution that optimizes the objective function from the given starting point.- Parameters:
initial
- an initial guess- Returns:
- an (approximate) optimizer
- Throws:
Exception
- when an error occurs during the search
-
search
public PrimalDualSolution search() throws Exception
[Previous Version] Searches for a solution that optimizes the objective function from the starting point given by K. C. Toh, SDPT3 Version 3.0, p. 6. [Current version] Searches for a solution using initialization suggested by SDPT3 version 4. See Section 25.3.7 of the reference paper.- Returns:
- an (approximate) optimizer
- Throws:
Exception
- when an error occurs during the search
-
step
public Boolean step()
Description copied from interface:IterativeMethod
Do the next iteration.- Specified by:
step
in interfaceIterativeMethod<PrimalDualSolution>
- Returns:
- the information about this step
-
-