MLPACK  1.0.8
aug_lagrangian_test_functions.hpp
Go to the documentation of this file.
1 
22 #ifndef __MLPACK_CORE_OPTIMIZERS_AUG_LAGRANGIAN_TEST_FUNCTIONS_HPP
23 #define __MLPACK_CORE_OPTIMIZERS_AUG_LAGRANGIAN_TEST_FUNCTIONS_HPP
24 
25 #include <mlpack/core.hpp>
26 
27 namespace mlpack {
28 namespace optimization {
29 
39 {
40  public:
42  AugLagrangianTestFunction(const arma::mat& initial_point);
43 
44  double Evaluate(const arma::mat& coordinates);
45  void Gradient(const arma::mat& coordinates, arma::mat& gradient);
46 
47  size_t NumConstraints() const { return 1; }
48 
49  double EvaluateConstraint(const size_t index, const arma::mat& coordinates);
50  void GradientConstraint(const size_t index,
51  const arma::mat& coordinates,
52  arma::mat& gradient);
53 
54  const arma::mat& GetInitialPoint() const { return initialPoint; }
55 
56  private:
57  arma::mat initialPoint;
58 };
59 
72 {
73  public:
75  GockenbachFunction(const arma::mat& initial_point);
76 
77  double Evaluate(const arma::mat& coordinates);
78  void Gradient(const arma::mat& coordinates, arma::mat& gradient);
79 
80  size_t NumConstraints() const { return 2; };
81 
82  double EvaluateConstraint(const size_t index, const arma::mat& coordinates);
83  void GradientConstraint(const size_t index,
84  const arma::mat& coordinates,
85  arma::mat& gradient);
86 
87  const arma::mat& GetInitialPoint() const { return initialPoint; }
88 
89  private:
90  arma::mat initialPoint;
91 };
92 
93 
94 
116 {
117  public:
118  LovaszThetaSDP();
119 
128  LovaszThetaSDP(const arma::mat& edges);
129 
130  double Evaluate(const arma::mat& coordinates);
131  void Gradient(const arma::mat& coordinates, arma::mat& gradient);
132 
133  size_t NumConstraints() const;
134 
135  double EvaluateConstraint(const size_t index, const arma::mat& coordinates);
136  void GradientConstraint(const size_t index,
137  const arma::mat& coordinates,
138  arma::mat& gradient);
139 
140  const arma::mat& GetInitialPoint();
141 
142  const arma::mat& Edges() const { return edges; }
143  arma::mat& Edges() { return edges; }
144 
145  private:
146  arma::mat edges;
147  size_t vertices;
148 
149  arma::mat initialPoint;
150 };
151 
152 }; // namespace optimization
153 }; // namespace mlpack
154 
155 #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...
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)
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)