MLPACK
1.0.8
|
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< LRSDP > &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< LRSDP > & | AugLag () const |
Return the augmented Lagrangian object. More... | |
AugLagrangian< LRSDP > & | 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... | |
double | Evaluate (const arma::mat &coordinates) const |
Evaluate the objective function of the LRSDP (no constraints) at the given coordinates. More... | |
double | EvaluateConstraint (const size_t index, const arma::mat &coordinates) const |
Evaluate a particular constraint of the LRSDP at the given coordinates. More... | |
const arma::mat & | GetInitialPoint () |
Get the initial point of the LRSDP. More... | |
void | Gradient (const arma::mat &coordinates, arma::mat &gradient) const |
Evaluate the gradient of the LRSDP (no constraints) at the given coordinates. More... | |
void | GradientConstraint (const size_t index, const arma::mat &coordinates, arma::mat &gradient) const |
Evaluate the gradient of a particular constraint of the LRSDP at the given coordinates. More... | |
size_t | NumConstraints () const |
Get the number of constraints in the LRSDP. More... | |
double | Optimize (arma::mat &coordinates) |
Optimize the LRSDP and return the final objective value. More... | |
Private Attributes | |
std::vector< arma::mat > | a |
A_i for each constraint. More... | |
arma::uvec | aModes |
1 if entries in matrix, 0 for normal. More... | |
AugLagrangian< LRSDP > & | augLag |
The AugLagrangian object which will be used for optimization. More... | |
AugLagrangian< LRSDP > | augLagInternal |
Internal AugLagrangian object, if one was not passed at construction time. More... | |
arma::vec | b |
b_i for each constraint. More... | |
arma::mat | c |
For objective function. More... | |
arma::mat | initialPoint |
Initial point. More... | |
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.
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_t | numConstraints, |
const arma::mat & | initialPoint, | ||
AugLagrangian< LRSDP > & | 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.
numConstraints | Number of constraints in the problem. |
initialPoint | Initial point of the optimization. |
auglag | Pre-initialized AugLagrangian<LRSDP> object. |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
double mlpack::optimization::LRSDP::Evaluate | ( | const arma::mat & | coordinates | ) | const |
Evaluate the objective function of the LRSDP (no constraints) at the given coordinates.
This is used by AugLagrangian<LRSDP>.
double mlpack::optimization::LRSDP::EvaluateConstraint | ( | const size_t | index, |
const arma::mat & | coordinates | ||
) | const |
Evaluate a particular constraint of the LRSDP at the given coordinates.
const arma::mat& mlpack::optimization::LRSDP::GetInitialPoint | ( | ) |
Get the initial point of the LRSDP.
void mlpack::optimization::LRSDP::Gradient | ( | const arma::mat & | coordinates, |
arma::mat & | gradient | ||
) | const |
Evaluate the gradient of the LRSDP (no constraints) at the given coordinates.
This is used by AugLagrangian<LRSDP>.
void mlpack::optimization::LRSDP::GradientConstraint | ( | const size_t | index, |
const arma::mat & | coordinates, | ||
arma::mat & | gradient | ||
) | const |
Evaluate the gradient of a particular constraint of the LRSDP at the given coordinates.
|
inline |
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.
coordinates | Starting coordinates for the optimization. |
|
private |
|
private |
|
private |
The AugLagrangian object which will be used for optimization.
Definition at line 145 of file lrsdp.hpp.
Referenced by AugLag().
|
private |
Internal AugLagrangian object, if one was not passed at construction time.
|
private |
b_i for each constraint.
Definition at line 133 of file lrsdp.hpp.
Referenced by B(), and NumConstraints().
|
private |
|
private |