mlpack  master
Public Member Functions | Private Attributes | List of all members
mlpack::optimization::PrimalDualSolver< SDPType > Class Template Reference

Interface to a primal dual interior point solver. More...

Public Member Functions

 PrimalDualSolver (const SDPType &sdp)
 Construct a new solver instance from a given SDP instance. More...
 
 PrimalDualSolver (const SDPType &sdp, const arma::mat &initialX, const arma::vec &initialYSparse, const arma::vec &initialYDense, const arma::mat &initialZ)
 Construct a new solver instance from a given SDP instance. More...
 
double & DualInfeasTol ()
 Modify the dual infeasibility tolerance. More...
 
size_t & MaxIterations ()
 Modify the maximum number of iterations to run before converging. More...
 
double & NormXzTol ()
 Modify the XZ tolerance. More...
 
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. More...
 
double Optimize (arma::mat &X)
 Invoke the optimization procedure, and only return the primal variable. More...
 
double & PrimalInfeasTol ()
 Modify the primal infeasibility tolerance. More...
 
const SDPType & SDP () const
 Return the underlying SDP instance. More...
 
double & Tau ()
 Modify tau. Typical values are 0.99. More...
 

Private Attributes

double dualInfeasTol
 The tolerance required on the dual constraint required before terminating. More...
 
arma::mat initialX
 Starting point for X. Needs to be positive definite. More...
 
arma::vec initialYdense
 Starting lagrange multiplier for the sparse constraints. More...
 
arma::vec initialYsparse
 Starting lagrange multiplier for the sparse constraints. More...
 
arma::mat initialZ
 Starting point for Z, the complementary slack variable. Needs to be. More...
 
size_t maxIterations
 Maximum number of iterations to run. Set to 0 for no limit. More...
 
double normXzTol
 The tolerance on the norm of XZ required before terminating. More...
 
double primalInfeasTol
 The tolerance required on the primal constraints required before terminating. More...
 
SDPType sdp
 The SDP problem instance to optimize. More...
 
double tau
 The step size modulating factor. Needs to be a scalar in (0, 1). More...
 

Detailed Description

template<typename SDPType>
class mlpack::optimization::PrimalDualSolver< SDPType >

Interface to a primal dual interior point solver.

Template Parameters
SDPType

Definition at line 26 of file primal_dual.hpp.

Constructor & Destructor Documentation

template<typename SDPType >
mlpack::optimization::PrimalDualSolver< SDPType >::PrimalDualSolver ( const SDPType &  sdp)

Construct a new solver instance from a given SDP instance.

Uses a random, positive initialization point.

Parameters
sdpInitialized SDP to be solved.
template<typename SDPType >
mlpack::optimization::PrimalDualSolver< SDPType >::PrimalDualSolver ( const SDPType &  sdp,
const arma::mat &  initialX,
const arma::vec &  initialYSparse,
const arma::vec &  initialYDense,
const arma::mat &  initialZ 
)

Construct a new solver instance from a given SDP instance.

Uses a random, positive initialization point. Both initialX and initialZ need to be positive definite matrices.

Parameters
sdpInitialized SDP to be solved.
initialX
initialYSparse
initialYDense
initialZ

Member Function Documentation

template<typename SDPType >
double& mlpack::optimization::PrimalDualSolver< SDPType >::DualInfeasTol ( )
inline

Modify the dual infeasibility tolerance.

Definition at line 93 of file primal_dual.hpp.

References mlpack::optimization::PrimalDualSolver< SDPType >::dualInfeasTol.

template<typename SDPType >
size_t& mlpack::optimization::PrimalDualSolver< SDPType >::MaxIterations ( )
inline

Modify the maximum number of iterations to run before converging.

Definition at line 96 of file primal_dual.hpp.

References mlpack::optimization::PrimalDualSolver< SDPType >::maxIterations.

template<typename SDPType >
double& mlpack::optimization::PrimalDualSolver< SDPType >::NormXzTol ( )
inline

Modify the XZ tolerance.

Definition at line 87 of file primal_dual.hpp.

References mlpack::optimization::PrimalDualSolver< SDPType >::normXzTol.

template<typename SDPType >
double mlpack::optimization::PrimalDualSolver< SDPType >::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.

Parameters
X
ySparse
yDense
Z

Referenced by mlpack::optimization::PrimalDualSolver< SDPType >::Optimize().

template<typename SDPType >
double mlpack::optimization::PrimalDualSolver< SDPType >::Optimize ( arma::mat &  X)
inline

Invoke the optimization procedure, and only return the primal variable.

Parameters
X

Definition at line 73 of file primal_dual.hpp.

References mlpack::optimization::PrimalDualSolver< SDPType >::Optimize().

template<typename SDPType >
double& mlpack::optimization::PrimalDualSolver< SDPType >::PrimalInfeasTol ( )
inline

Modify the primal infeasibility tolerance.

Definition at line 90 of file primal_dual.hpp.

References mlpack::optimization::PrimalDualSolver< SDPType >::primalInfeasTol.

template<typename SDPType >
const SDPType& mlpack::optimization::PrimalDualSolver< SDPType >::SDP ( ) const
inline

Return the underlying SDP instance.

Definition at line 81 of file primal_dual.hpp.

References mlpack::optimization::PrimalDualSolver< SDPType >::sdp.

template<typename SDPType >
double& mlpack::optimization::PrimalDualSolver< SDPType >::Tau ( )
inline

Modify tau. Typical values are 0.99.

Definition at line 84 of file primal_dual.hpp.

References mlpack::optimization::PrimalDualSolver< SDPType >::tau.

Member Data Documentation

template<typename SDPType >
double mlpack::optimization::PrimalDualSolver< SDPType >::dualInfeasTol
private

The tolerance required on the dual constraint required before terminating.

Definition at line 126 of file primal_dual.hpp.

Referenced by mlpack::optimization::PrimalDualSolver< SDPType >::DualInfeasTol().

template<typename SDPType >
arma::mat mlpack::optimization::PrimalDualSolver< SDPType >::initialX
private

Starting point for X. Needs to be positive definite.

Definition at line 103 of file primal_dual.hpp.

template<typename SDPType >
arma::vec mlpack::optimization::PrimalDualSolver< SDPType >::initialYdense
private

Starting lagrange multiplier for the sparse constraints.

Definition at line 109 of file primal_dual.hpp.

template<typename SDPType >
arma::vec mlpack::optimization::PrimalDualSolver< SDPType >::initialYsparse
private

Starting lagrange multiplier for the sparse constraints.

Definition at line 106 of file primal_dual.hpp.

template<typename SDPType >
arma::mat mlpack::optimization::PrimalDualSolver< SDPType >::initialZ
private

Starting point for Z, the complementary slack variable. Needs to be.

Definition at line 113 of file primal_dual.hpp.

template<typename SDPType >
size_t mlpack::optimization::PrimalDualSolver< SDPType >::maxIterations
private

Maximum number of iterations to run. Set to 0 for no limit.

Definition at line 129 of file primal_dual.hpp.

Referenced by mlpack::optimization::PrimalDualSolver< SDPType >::MaxIterations().

template<typename SDPType >
double mlpack::optimization::PrimalDualSolver< SDPType >::normXzTol
private

The tolerance on the norm of XZ required before terminating.

Definition at line 119 of file primal_dual.hpp.

Referenced by mlpack::optimization::PrimalDualSolver< SDPType >::NormXzTol().

template<typename SDPType >
double mlpack::optimization::PrimalDualSolver< SDPType >::primalInfeasTol
private

The tolerance required on the primal constraints required before terminating.

Definition at line 123 of file primal_dual.hpp.

Referenced by mlpack::optimization::PrimalDualSolver< SDPType >::PrimalInfeasTol().

template<typename SDPType >
SDPType mlpack::optimization::PrimalDualSolver< SDPType >::sdp
private

The SDP problem instance to optimize.

Definition at line 100 of file primal_dual.hpp.

Referenced by mlpack::optimization::PrimalDualSolver< SDPType >::SDP().

template<typename SDPType >
double mlpack::optimization::PrimalDualSolver< SDPType >::tau
private

The step size modulating factor. Needs to be a scalar in (0, 1).

Definition at line 116 of file primal_dual.hpp.

Referenced by mlpack::optimization::PrimalDualSolver< SDPType >::Tau().


The documentation for this class was generated from the following file: