MLPACK  1.0.10
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  // convert the obkect into a string
57  std::string ToString() const;
58 
59  private:
60  arma::mat initialPoint;
61 };
62 
75 {
76  public:
78  GockenbachFunction(const arma::mat& initial_point);
79 
80  double Evaluate(const arma::mat& coordinates);
81  void Gradient(const arma::mat& coordinates, arma::mat& gradient);
82 
83  size_t NumConstraints() const { return 2; };
84 
85  double EvaluateConstraint(const size_t index, const arma::mat& coordinates);
86  void GradientConstraint(const size_t index,
87  const arma::mat& coordinates,
88  arma::mat& gradient);
89 
90  const arma::mat& GetInitialPoint() const { return initialPoint; }
91 
92  private:
93  arma::mat initialPoint;
94 };
95 
96 
97 
119 {
120  public:
121  LovaszThetaSDP();
122 
131  LovaszThetaSDP(const arma::mat& edges);
132 
133  double Evaluate(const arma::mat& coordinates);
134  void Gradient(const arma::mat& coordinates, arma::mat& gradient);
135 
136  size_t NumConstraints() const;
137 
138  double EvaluateConstraint(const size_t index, const arma::mat& coordinates);
139  void GradientConstraint(const size_t index,
140  const arma::mat& coordinates,
141  arma::mat& gradient);
142 
143  const arma::mat& GetInitialPoint();
144 
145  const arma::mat& Edges() const { return edges; }
146  arma::mat& Edges() { return edges; }
147 
148  private:
149  arma::mat edges;
150  size_t vertices;
151 
152  arma::mat initialPoint;
153 };
154 
155 }; // namespace optimization
156 }; // namespace mlpack
157 
158 #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:31
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)