11 #ifndef MLPACK_CORE_OPTIMIZERS_SDP_PRIMAL_DUAL_HPP
12 #define MLPACK_CORE_OPTIMIZERS_SDP_PRIMAL_DUAL_HPP
18 namespace optimization {
25 template <
typename SDPType>
49 const arma::mat& initialX,
50 const arma::vec& initialYSparse,
51 const arma::vec& initialYDense,
52 const arma::mat& initialZ);
75 arma::vec ysparse, ydense;
77 return Optimize(X, ysparse, ydense, Z);
81 const SDPType&
SDP()
const {
return sdp; }
84 double&
Tau() {
return tau; }
106 arma::vec initialYsparse;
109 arma::vec initialYdense;
123 double primalInfeasTol;
126 double dualInfeasTol;
129 size_t maxIterations;
136 #include "primal_dual_impl.hpp"
double & Tau()
Modify tau. Typical values are 0.99.
double Optimize(arma::mat &X)
Invoke the optimization procedure, and only return the primal variable.
The core includes that mlpack expects; standard C++ includes and Armadillo.
const SDPType & SDP() const
Return the underlying SDP instance.
double Optimize(arma::mat &X, arma::vec &ySparse, arma::vec &yDense, arma::mat &Z)
Invoke the optimization procedure, returning the converged values for the primal and dual variables...
PrimalDualSolver(const SDPType &sdp)
Construct a new solver instance from a given SDP instance.
Interface to a primal dual interior point solver.
double & NormXzTol()
Modify the XZ tolerance.
double & DualInfeasTol()
Modify the dual infeasibility tolerance.
size_t & MaxIterations()
Modify the maximum number of iterations to run before converging.
double & PrimalInfeasTol()
Modify the primal infeasibility tolerance.