mlpack  2.0.1
aug_lagrangian_test_functions.hpp
Go to the documentation of this file.
1 
14 #ifndef __MLPACK_CORE_OPTIMIZERS_AUG_LAGRANGIAN_TEST_FUNCTIONS_HPP
15 #define __MLPACK_CORE_OPTIMIZERS_AUG_LAGRANGIAN_TEST_FUNCTIONS_HPP
16 
17 #include <mlpack/core.hpp>
18 
19 namespace mlpack {
20 namespace optimization {
21 
31 {
32  public:
34  AugLagrangianTestFunction(const arma::mat& initial_point);
35 
36  double Evaluate(const arma::mat& coordinates);
37  void Gradient(const arma::mat& coordinates, arma::mat& gradient);
38 
39  size_t NumConstraints() const { return 1; }
40 
41  double EvaluateConstraint(const size_t index, const arma::mat& coordinates);
42  void GradientConstraint(const size_t index,
43  const arma::mat& coordinates,
44  arma::mat& gradient);
45 
46  const arma::mat& GetInitialPoint() const { return initialPoint; }
47 
48  private:
49  arma::mat initialPoint;
50 };
51 
64 {
65  public:
67  GockenbachFunction(const arma::mat& initial_point);
68 
69  double Evaluate(const arma::mat& coordinates);
70  void Gradient(const arma::mat& coordinates, arma::mat& gradient);
71 
72  size_t NumConstraints() const { return 2; };
73 
74  double EvaluateConstraint(const size_t index, const arma::mat& coordinates);
75  void GradientConstraint(const size_t index,
76  const arma::mat& coordinates,
77  arma::mat& gradient);
78 
79  const arma::mat& GetInitialPoint() const { return initialPoint; }
80 
81  private:
82  arma::mat initialPoint;
83 };
84 
85 
86 
108 {
109  public:
110  LovaszThetaSDP();
111 
120  LovaszThetaSDP(const arma::mat& edges);
121 
122  double Evaluate(const arma::mat& coordinates);
123  void Gradient(const arma::mat& coordinates, arma::mat& gradient);
124 
125  size_t NumConstraints() const;
126 
127  double EvaluateConstraint(const size_t index, const arma::mat& coordinates);
128  void GradientConstraint(const size_t index,
129  const arma::mat& coordinates,
130  arma::mat& gradient);
131 
132  const arma::mat& GetInitialPoint();
133 
134  const arma::mat& Edges() const { return edges; }
135  arma::mat& Edges() { return edges; }
136 
137  private:
138  arma::mat edges;
139  size_t vertices;
140 
141  arma::mat initialPoint;
142 };
143 
144 } // namespace optimization
145 } // namespace mlpack
146 
147 #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.
void GradientConstraint(const size_t index, const arma::mat &coordinates, arma::mat &gradient)
void Gradient(const arma::mat &coordinates, arma::mat &gradient)
double EvaluateConstraint(const size_t index, const arma::mat &coordinates)
double Evaluate(const arma::mat &coordinates)
This function is the Lovasz-Theta semidefinite program, as implemented in the following paper: ...
double EvaluateConstraint(const size_t index, const arma::mat &coordinates)
void GradientConstraint(const size_t index, const arma::mat &coordinates, arma::mat &gradient)
Include all of the base components required to write MLPACK methods, and the main MLPACK Doxygen docu...
void Gradient(const arma::mat &coordinates, arma::mat &gradient)
double Evaluate(const arma::mat &coordinates)
void GradientConstraint(const size_t index, const arma::mat &coordinates, arma::mat &gradient)
double Evaluate(const arma::mat &coordinates)
void Gradient(const arma::mat &coordinates, arma::mat &gradient)