---
name: "mlpack_optimization_LRSDP"
section: "3"
platform: "linux"
package: "mlpack-doc"
version: "1.0.10-1"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/mlpack_optimization_LRSDP"
---

# mlpack\_optimization\_LRSDP(3)

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

## NAME

mlpack::optimization::LRSDP -

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

## SYNOPSIS

### Public Member Functions

**LRSDP** (const size\_t numConstraints, const arma::mat &initialPoint)\
 *Create an* **LRSDP** *to be optimized.*  **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.*  const std::vector\< arma::mat \> & **A** () const \
 *Return the vector of A matrices (which correspond to the constraints).*  std::vector\< arma::mat \> & **A** ()\
 *Modify the veector of A matrices (which correspond to the constraints).*  const arma::uvec & **AModes** () const \
 *Return the vector of modes for the A matrices.*  arma::uvec & **AModes** ()\
 *Modify the vector of modes for the A matrices.*  const **AugLagrangian**\
 \< **LRSDPFunction** \> & **AugLag** () const "\
 *Return the augmented Lagrangian object.*  **AugLagrangian**\< **LRSDPFunction** \> & **AugLag** ()\
 *Modify the augmented Lagrangian object.*  const arma::vec & **B** () const \
 *Return the vector of B values.*  arma::vec & **B** ()\
 *Modify the vector of B values.*  const arma::mat & **C** () const \
 *Return the objective function matrix (C).*  arma::mat & **C** ()\
 *Modify the objective function matrix (C).*  const **LRSDPFunction** & **Function** () const \
 *Return the function to be optimized.*  **LRSDPFunction** & **Function** ()\
 *Modify the function to be optimized.*  double **Optimize** (arma::mat &coordinates)\
 *Optimize the* **LRSDP** *and return the final objective value.*  std::string **ToString** () const \
 *Return a string representation of the object.*

### Private Attributes

**AugLagrangian**\< **LRSDPFunction** \> **augLag**\
 *The* **AugLagrangian** *object which will be used for optimization.*  **LRSDPFunction** **function**\
 *Function to optimize, which the* **AugLagrangian** *object holds.*

## 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 39 of file lrsdp.hpp.

## Constructor & Destructor Documentation

### mlpack::optimization::LRSDP::LRSDP (const size\_tnumConstraints, 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:**

*numConstraints* Number of constraints in the problem. \
 *rank* Rank of the solution (\<= rows). \
 *rows* Number of rows in the solution.

### mlpack::optimization::LRSDP::LRSDP (const size\_tnumConstraints, 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:**

*numConstraints* Number of constraints in the problem. \
 *initialPoint* Initial point of the optimization. \
 *auglag* Pre-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 81 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 83 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 86 of file lrsdp.hpp.

### arma::uvec& mlpack::optimization::LRSDP::AModes ()` [inline]`

Modify the vector of modes for the A matrices.

Definition at line 88 of file lrsdp.hpp.

### const AugLagrangian\<LRSDPFunction\>& mlpack::optimization::LRSDP::AugLag () const` [inline]`

Return the augmented Lagrangian object.

Definition at line 101 of file lrsdp.hpp.

References augLag.

### AugLagrangian\<LRSDPFunction\>& mlpack::optimization::LRSDP::AugLag ()` [inline]`

Modify the augmented Lagrangian object.

Definition at line 103 of file lrsdp.hpp.

References augLag.

### const arma::vec& mlpack::optimization::LRSDP::B () const` [inline]`

Return the vector of B values.

Definition at line 91 of file lrsdp.hpp.

### arma::vec& mlpack::optimization::LRSDP::B ()` [inline]`

Modify the vector of B values.

Definition at line 93 of file lrsdp.hpp.

### const arma::mat& mlpack::optimization::LRSDP::C () const` [inline]`

Return the objective function matrix (C).

Definition at line 76 of file lrsdp.hpp.

### arma::mat& mlpack::optimization::LRSDP::C ()` [inline]`

Modify the objective function matrix (C).

Definition at line 78 of file lrsdp.hpp.

### const LRSDPFunction& mlpack::optimization::LRSDP::Function () const` [inline]`

Return the function to be optimized.

Definition at line 96 of file lrsdp.hpp.

### LRSDPFunction& mlpack::optimization::LRSDP::Function ()` [inline]`

Modify the function to be optimized.

Definition at line 98 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:**

*coordinates* Starting 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 113 of file lrsdp.hpp.

Referenced by AugLag().

### LRSDPFunction mlpack::optimization::LRSDP::function` [private]`

Function to optimize, which the **AugLagrangian** object holds.

Definition at line 110 of file lrsdp.hpp.

## Author

Generated automatically by Doxygen for MLPACK from the source code.
