mlpack  master
aug_lagrangian_test_functions.hpp
Go to the documentation of this file.
1 
12 #ifndef MLPACK_CORE_OPTIMIZERS_AUG_LAGRANGIAN_TEST_FUNCTIONS_HPP
13 #define MLPACK_CORE_OPTIMIZERS_AUG_LAGRANGIAN_TEST_FUNCTIONS_HPP
14 
15 #include <mlpack/prereqs.hpp>
16 
17 namespace mlpack {
18 namespace optimization {
19 
29 {
30  public:
32  AugLagrangianTestFunction(const arma::mat& initial_point);
33 
34  double Evaluate(const arma::mat& coordinates);
35  void Gradient(const arma::mat& coordinates, arma::mat& gradient);
36 
37  size_t NumConstraints() const { return 1; }
38 
39  double EvaluateConstraint(const size_t index, const arma::mat& coordinates);
40  void GradientConstraint(const size_t index,
41  const arma::mat& coordinates,
42  arma::mat& gradient);
43 
44  const arma::mat& GetInitialPoint() const { return initialPoint; }
45 
46  private:
47  arma::mat initialPoint;
48 };
49 
62 {
63  public:
65  GockenbachFunction(const arma::mat& initial_point);
66 
67  double Evaluate(const arma::mat& coordinates);
68  void Gradient(const arma::mat& coordinates, arma::mat& gradient);
69 
70  size_t NumConstraints() const { return 2; };
71 
72  double EvaluateConstraint(const size_t index, const arma::mat& coordinates);
73  void GradientConstraint(const size_t index,
74  const arma::mat& coordinates,
75  arma::mat& gradient);
76 
77  const arma::mat& GetInitialPoint() const { return initialPoint; }
78 
79  private:
80  arma::mat initialPoint;
81 };
82 
104 {
105  public:
106  LovaszThetaSDP();
107 
116  LovaszThetaSDP(const arma::mat& edges);
117 
118  double Evaluate(const arma::mat& coordinates);
119  void Gradient(const arma::mat& coordinates, arma::mat& gradient);
120 
121  size_t NumConstraints() const;
122 
123  double EvaluateConstraint(const size_t index, const arma::mat& coordinates);
124  void GradientConstraint(const size_t index,
125  const arma::mat& coordinates,
126  arma::mat& gradient);
127 
128  const arma::mat& GetInitialPoint();
129 
130  const arma::mat& Edges() const { return edges; }
131  arma::mat& Edges() { return edges; }
132 
133  private:
134  arma::mat edges;
135  size_t vertices;
136 
137  arma::mat initialPoint;
138 };
139 
140 } // namespace optimization
141 } // namespace mlpack
142 
143 #endif // MLPACK_CORE_OPTIMIZERS_AUG_LAGRANGIAN_TEST_FUNCTIONS_HPP
double EvaluateConstraint(const size_t index, const arma::mat &coordinates)
This function is taken from "Practical Mathematical Optimization" (Snyman), section 5...
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: binarize.hpp:18
The core includes that mlpack expects; standard C++ includes and Armadillo.
void Gradient(const arma::mat &coordinates, arma::mat &gradient)
This function is the Lovasz-Theta semidefinite program, as implemented in the following paper: ...
void GradientConstraint(const size_t index, const arma::mat &coordinates, arma::mat &gradient)
double Evaluate(const arma::mat &coordinates)