mlpack  1.0.12
Public Member Functions | Private Attributes | List of all members
mlpack::optimization::LRSDP Class Reference

LRSDP is the implementation of Monteiro and Burer's formulation of low-rank semidefinite programs (LR-SDP). More...

Collaboration diagram for mlpack::optimization::LRSDP:
Collaboration graph
[legend]

Public Member Functions

 LRSDP (const size_t numConstraints, const arma::mat &initialPoint)
 Create an LRSDP to be optimized. More...
 
 LRSDP (const size_t numConstraints, const arma::mat &initialPoint, AugLagrangian< LRSDPFunction > &augLagrangian)
 Create an LRSDP to be optimized, passing in an already-created AugLagrangian object. More...
 
const std::vector< arma::mat > & A () const
 Return the vector of A matrices (which correspond to the constraints). More...
 
std::vector< arma::mat > & A ()
 Modify the veector of A matrices (which correspond to the constraints). More...
 
const arma::uvec & AModes () const
 Return the vector of modes for the A matrices. More...
 
arma::uvec & AModes ()
 Modify the vector of modes for the A matrices. More...
 
const AugLagrangian< LRSDPFunction > & AugLag () const
 Return the augmented Lagrangian object. More...
 
AugLagrangian< LRSDPFunction > & AugLag ()
 Modify the augmented Lagrangian object. More...
 
const arma::vec & B () const
 Return the vector of B values. More...
 
arma::vec & B ()
 Modify the vector of B values. More...
 
const arma::mat & C () const
 Return the objective function matrix (C). More...
 
arma::mat & C ()
 Modify the objective function matrix (C). More...
 
const LRSDPFunctionFunction () const
 Return the function to be optimized. More...
 
LRSDPFunctionFunction ()
 Modify the function to be optimized. More...
 
double Optimize (arma::mat &coordinates)
 Optimize the LRSDP and return the final objective value. More...
 
std::string ToString () const
 Return a string representation of the object. More...
 

Private Attributes

AugLagrangian< LRSDPFunctionaugLag
 The AugLagrangian object which will be used for optimization. More...
 
LRSDPFunction function
 Function to optimize, which the AugLagrangian object holds. More...
 

Detailed Description

LRSDP is the implementation of Monteiro and Burer's formulation of low-rank semidefinite programs (LR-SDP).

This solver uses the augmented Lagrangian optimizer to solve low-rank semidefinite programs.

Definition at line 31 of file lrsdp.hpp.

Constructor & Destructor Documentation

mlpack::optimization::LRSDP::LRSDP ( const size_t  numConstraints,
const arma::mat &  initialPoint 
)

Create an LRSDP to be optimized.

The solution will end up being a matrix of size (rank) x (rows). To construct each constraint and the objective function, use the functions A(), B(), and C() to set them correctly.

Parameters
numConstraintsNumber of constraints in the problem.
rankRank of the solution (<= rows).
rowsNumber of rows in the solution.
mlpack::optimization::LRSDP::LRSDP ( const size_t  numConstraints,
const arma::mat &  initialPoint,
AugLagrangian< LRSDPFunction > &  augLagrangian 
)

Create an LRSDP to be optimized, passing in an already-created AugLagrangian object.

The given initial point should be set to the size (rows) x (rank), where (rank) is the reduced rank of the problem.

Parameters
numConstraintsNumber of constraints in the problem.
initialPointInitial point of the optimization.
auglagPre-initialized AugLagrangian<LRSDP> object.

Member Function Documentation

const std::vector<arma::mat>& mlpack::optimization::LRSDP::A ( ) const
inline

Return the vector of A matrices (which correspond to the constraints).

Definition at line 73 of file lrsdp.hpp.

std::vector<arma::mat>& mlpack::optimization::LRSDP::A ( )
inline

Modify the veector of A matrices (which correspond to the constraints).

Definition at line 75 of file lrsdp.hpp.

const arma::uvec& mlpack::optimization::LRSDP::AModes ( ) const
inline

Return the vector of modes for the A matrices.

Definition at line 78 of file lrsdp.hpp.

arma::uvec& mlpack::optimization::LRSDP::AModes ( )
inline

Modify the vector of modes for the A matrices.

Definition at line 80 of file lrsdp.hpp.

const AugLagrangian<LRSDPFunction>& mlpack::optimization::LRSDP::AugLag ( ) const
inline

Return the augmented Lagrangian object.

Definition at line 93 of file lrsdp.hpp.

References augLag.

AugLagrangian<LRSDPFunction>& mlpack::optimization::LRSDP::AugLag ( )
inline

Modify the augmented Lagrangian object.

Definition at line 95 of file lrsdp.hpp.

References augLag.

const arma::vec& mlpack::optimization::LRSDP::B ( ) const
inline

Return the vector of B values.

Definition at line 83 of file lrsdp.hpp.

arma::vec& mlpack::optimization::LRSDP::B ( )
inline

Modify the vector of B values.

Definition at line 85 of file lrsdp.hpp.

const arma::mat& mlpack::optimization::LRSDP::C ( ) const
inline

Return the objective function matrix (C).

Definition at line 68 of file lrsdp.hpp.

arma::mat& mlpack::optimization::LRSDP::C ( )
inline

Modify the objective function matrix (C).

Definition at line 70 of file lrsdp.hpp.

const LRSDPFunction& mlpack::optimization::LRSDP::Function ( ) const
inline

Return the function to be optimized.

Definition at line 88 of file lrsdp.hpp.

LRSDPFunction& mlpack::optimization::LRSDP::Function ( )
inline

Modify the function to be optimized.

Definition at line 90 of file lrsdp.hpp.

double mlpack::optimization::LRSDP::Optimize ( arma::mat &  coordinates)

Optimize the LRSDP and return the final objective value.

The given coordinates will be modified to contain the final solution.

Parameters
coordinatesStarting coordinates for the optimization.
std::string mlpack::optimization::LRSDP::ToString ( ) const

Return a string representation of the object.

Member Data Documentation

AugLagrangian<LRSDPFunction> mlpack::optimization::LRSDP::augLag
private

The AugLagrangian object which will be used for optimization.

Definition at line 105 of file lrsdp.hpp.

Referenced by AugLag().

LRSDPFunction mlpack::optimization::LRSDP::function
private

Function to optimize, which the AugLagrangian object holds.

Definition at line 102 of file lrsdp.hpp.


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