mlpack  2.0.1
lrsdp.hpp
Go to the documentation of this file.
1 
15 #ifndef __MLPACK_CORE_OPTIMIZERS_SDP_LRSDP_HPP
16 #define __MLPACK_CORE_OPTIMIZERS_SDP_LRSDP_HPP
17 
18 #include <mlpack/core.hpp>
20 
21 #include "lrsdp_function.hpp"
22 
23 namespace mlpack {
24 namespace optimization {
25 
31 template <typename SDPType>
32 class LRSDP
33 {
34  public:
44  LRSDP(const size_t numSparseConstraints,
45  const size_t numDenseConstraints,
46  const arma::mat& initialPoint);
47 
56  LRSDP(const SDPType& sdp,
57  const arma::mat& initialPoint);
58 
65  double Optimize(arma::mat& coordinates);
66 
68  const SDPType& SDP() const { return function.SDP(); }
70  SDPType& SDP() { return function.SDP(); }
71 
73  const LRSDPFunction<SDPType>& Function() const { return function; }
75  LRSDPFunction<SDPType>& Function() { return function; }
76 
81 
82  private:
85 
88 };
89 
90 } // namespace optimization
91 } // namespace mlpack
92 
93 // Include implementation
94 #include "lrsdp_impl.hpp"
95 
96 #endif
Linear algebra utility functions, generally performed on matrices or vectors.
The objective function that LRSDP is trying to optimize.
const AugLagrangian< LRSDPFunction< SDPType > > & AugLag() const
Return the augmented Lagrangian object.
Definition: lrsdp.hpp:78
LRSDP is the implementation of Monteiro and Burer&#39;s formulation of low-rank semidefinite programs (LR...
Definition: lrsdp.hpp:32
LRSDPFunction< SDPType > & Function()
Modify the function to be optimized.
Definition: lrsdp.hpp:75
The AugLagrangian class implements the Augmented Lagrangian method of optimization.
LRSDP(const size_t numSparseConstraints, const size_t numDenseConstraints, const arma::mat &initialPoint)
Create an LRSDP to be optimized.
SDP()
Initialize this SDP to an empty state.
AugLagrangian< LRSDPFunction< SDPType > > augLag
The AugLagrangian object which will be used for optimization.
Definition: lrsdp.hpp:87
const SDPType & SDP() const
Return the SDP that will be solved.
Definition: lrsdp.hpp:68
Include all of the base components required to write MLPACK methods, and the main MLPACK Doxygen docu...
SDPType & SDP()
Modify the SDP that will be solved.
Definition: lrsdp.hpp:70
AugLagrangian< LRSDPFunction< SDPType > > & AugLag()
Modify the augmented Lagrangian object.
Definition: lrsdp.hpp:80
double Optimize(arma::mat &coordinates)
Optimize the LRSDP and return the final objective value.
const LRSDPFunction< SDPType > & Function() const
Return the function to be optimized.
Definition: lrsdp.hpp:73