mlpack  1.0.12
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  // convert the obkect into a string
49  std::string ToString() const;
50 
51  private:
52  arma::mat initialPoint;
53 };
54 
67 {
68  public:
70  GockenbachFunction(const arma::mat& initial_point);
71 
72  double Evaluate(const arma::mat& coordinates);
73  void Gradient(const arma::mat& coordinates, arma::mat& gradient);
74 
75  size_t NumConstraints() const { return 2; };
76 
77  double EvaluateConstraint(const size_t index, const arma::mat& coordinates);
78  void GradientConstraint(const size_t index,
79  const arma::mat& coordinates,
80  arma::mat& gradient);
81 
82  const arma::mat& GetInitialPoint() const { return initialPoint; }
83 
84  private:
85  arma::mat initialPoint;
86 };
87 
88 
89 
111 {
112  public:
113  LovaszThetaSDP();
114 
123  LovaszThetaSDP(const arma::mat& edges);
124 
125  double Evaluate(const arma::mat& coordinates);
126  void Gradient(const arma::mat& coordinates, arma::mat& gradient);
127 
128  size_t NumConstraints() const;
129 
130  double EvaluateConstraint(const size_t index, const arma::mat& coordinates);
131  void GradientConstraint(const size_t index,
132  const arma::mat& coordinates,
133  arma::mat& gradient);
134 
135  const arma::mat& GetInitialPoint();
136 
137  const arma::mat& Edges() const { return edges; }
138  arma::mat& Edges() { return edges; }
139 
140  private:
141  arma::mat edges;
142  size_t vertices;
143 
144  arma::mat initialPoint;
145 };
146 
147 }; // namespace optimization
148 }; // namespace mlpack
149 
150 #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: load.hpp:23
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)