The objective function that LRSDP is trying to optimize. More...

Public Member Functions | |
| LRSDPFunction (const SDPType &sdp, const arma::mat &initialPoint) | |
| Construct the LRSDPFunction from the given SDP. More... | |
| LRSDPFunction (const size_t numSparseConstraints, const size_t numDenseConstraints, const arma::mat &initialPoint) | |
| Construct the LRSDPFunction with the given initial point and number of constraints. 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 () const |
| 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 total number of constraints in the LRSDP. More... | |
| const arma::mat & | RRT () const |
| Get R*R^T matrix. More... | |
| arma::mat & | RRT () |
| Modify R*R^T matrix. More... | |
| const SDPType & | SDP () const |
| Return the SDP object representing the problem. More... | |
| SDPType & | SDP () |
| Modify the SDP object representing the problem. More... | |
The objective function that LRSDP is trying to optimize.
Note: LRSDPfunction is designed and implemented to specifically work with a combination of AugLagrangian and L-BFGS optimizer. Implemenation of LRSDPFunction includes caching R * R^T matrix in order to avoid redundant computations(Specifically with above two optimizers) of R * R^T matrix through AugLagrangian optimizer call, as only L-BFGS takes part in updating R(coordinates) matrix. So, be careful while using LRSDP with some other optimizer. You may need to modify caching process of R * R^T matrix. See EvaluateImpl() in lrsdp_function_impl.hpp for more details.
Definition at line 36 of file lrsdp_function.hpp.
| LRSDPFunction | ( | const SDPType & | sdp, |
| const arma::mat & | initialPoint | ||
| ) |
Construct the LRSDPFunction from the given SDP.
| sdp | |
| initialPoint |
| LRSDPFunction | ( | const size_t | numSparseConstraints, |
| const size_t | numDenseConstraints, | ||
| const arma::mat & | initialPoint | ||
| ) |
Construct the LRSDPFunction with the given initial point and number of constraints.
Note n_cols of the initialPoint specifies the rank.
Set the A_x, B_x, and C_x matrices for each constraint using the A_x(), B_x(), and C_x() functions, for x in {sparse, dense}.
| numSparseConstraints | |
| numDenseConstraints | |
| initialPoint |
| double Evaluate | ( | const arma::mat & | coordinates | ) | const |
Evaluate the objective function of the LRSDP (no constraints) at the given coordinates.
Referenced by LRSDPFunction< mlpack::optimization::SDP< arma::sp_mat > >::RRT().
| double EvaluateConstraint | ( | const size_t | index, |
| const arma::mat & | coordinates | ||
| ) | const |
Evaluate a particular constraint of the LRSDP at the given coordinates.
|
inline |
Get the initial point of the LRSDP.
Definition at line 92 of file lrsdp_function.hpp.
| void Gradient | ( | const arma::mat & | coordinates, |
| arma::mat & | gradient | ||
| ) | const |
Evaluate the gradient of the LRSDP (no constraints) at the given coordinates.
Referenced by LRSDPFunction< mlpack::optimization::SDP< arma::sp_mat > >::RRT().
| 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.
|
inline |
Get the total number of constraints in the LRSDP.
Definition at line 89 of file lrsdp_function.hpp.
|
inline |
Get R*R^T matrix.
Definition at line 101 of file lrsdp_function.hpp.
|
inline |
Modify R*R^T matrix.
Definition at line 104 of file lrsdp_function.hpp.
|
inline |
Return the SDP object representing the problem.
Definition at line 95 of file lrsdp_function.hpp.
|
inline |
Modify the SDP object representing the problem.
Definition at line 98 of file lrsdp_function.hpp.