15 #ifndef __MLPACK_CORE_OPTIMIZERS_LRSDP_LRSDP_HPP
16 #define __MLPACK_CORE_OPTIMIZERS_LRSDP_LRSDP_HPP
24 namespace optimization {
43 LRSDP(
const size_t numConstraints,
44 const arma::mat& initialPoint);
55 LRSDP(
const size_t numConstraints,
56 const arma::mat& initialPoint,
65 double Optimize(arma::mat& coordinates);
68 const arma::mat&
C()
const {
return function.C(); }
70 arma::mat&
C() {
return function.C(); }
73 const std::vector<arma::mat>&
A()
const {
return function.A(); }
75 std::vector<arma::mat>&
A() {
return function.A(); }
78 const arma::uvec&
AModes()
const {
return function.AModes(); }
80 arma::uvec&
AModes() {
return function.AModes(); }
83 const arma::vec&
B()
const {
return function.B(); }
85 arma::vec&
B() {
return function.B(); }
arma::vec & B()
Modify the vector of B values.
Linear algebra utility functions, generally performed on matrices or vectors.
The objective function that LRSDP is trying to optimize.
const AugLagrangian< LRSDPFunction > & AugLag() const
Return the augmented Lagrangian object.
std::string ToString() const
Return a string representation of the object.
LRSDP is the implementation of Monteiro and Burer's formulation of low-rank semidefinite programs (LR...
const std::vector< arma::mat > & A() const
Return the vector of A matrices (which correspond to the constraints).
arma::uvec & AModes()
Modify the vector of modes for the A matrices.
The AugLagrangian class implements the Augmented Lagrangian method of optimization.
const LRSDPFunction & Function() const
Return the function to be optimized.
AugLagrangian< LRSDPFunction > augLag
The AugLagrangian object which will be used for optimization.
LRSDP(const size_t numConstraints, const arma::mat &initialPoint)
Create an LRSDP to be optimized.
const arma::uvec & AModes() const
Return the vector of modes for the A matrices.
std::vector< arma::mat > & A()
Modify the veector of A matrices (which correspond to the constraints).
const arma::mat & C() const
Return the objective function matrix (C).
AugLagrangian< LRSDPFunction > & AugLag()
Modify the augmented Lagrangian object.
LRSDPFunction & Function()
Modify the function to be optimized.
const arma::vec & B() const
Return the vector of B values.
double Optimize(arma::mat &coordinates)
Optimize the LRSDP and return the final objective value.
arma::mat & C()
Modify the objective function matrix (C).