aug_lagrangian_test_functions.hpp
Go to the documentation of this file.00001
00022 #ifndef __MLPACK_CORE_OPTIMIZERS_AUG_LAGRANGIAN_TEST_FUNCTIONS_HPP
00023 #define __MLPACK_CORE_OPTIMIZERS_AUG_LAGRANGIAN_TEST_FUNCTIONS_HPP
00024
00025 #include <mlpack/core.hpp>
00026
00027 namespace mlpack {
00028 namespace optimization {
00029
00038 class AugLagrangianTestFunction
00039 {
00040 public:
00041 AugLagrangianTestFunction();
00042 AugLagrangianTestFunction(const arma::mat& initial_point);
00043
00044 double Evaluate(const arma::mat& coordinates);
00045 void Gradient(const arma::mat& coordinates, arma::mat& gradient);
00046
00047 size_t NumConstraints() const { return 1; }
00048
00049 double EvaluateConstraint(const size_t index, const arma::mat& coordinates);
00050 void GradientConstraint(const size_t index,
00051 const arma::mat& coordinates,
00052 arma::mat& gradient);
00053
00054 const arma::mat& GetInitialPoint() const { return initialPoint; }
00055
00056 private:
00057 arma::mat initialPoint;
00058 };
00059
00071 class GockenbachFunction
00072 {
00073 public:
00074 GockenbachFunction();
00075 GockenbachFunction(const arma::mat& initial_point);
00076
00077 double Evaluate(const arma::mat& coordinates);
00078 void Gradient(const arma::mat& coordinates, arma::mat& gradient);
00079
00080 size_t NumConstraints() const { return 2; };
00081
00082 double EvaluateConstraint(const size_t index, const arma::mat& coordinates);
00083 void GradientConstraint(const size_t index,
00084 const arma::mat& coordinates,
00085 arma::mat& gradient);
00086
00087 const arma::mat& GetInitialPoint() const { return initialPoint; }
00088
00089 private:
00090 arma::mat initialPoint;
00091 };
00092
00093
00094
00115 class LovaszThetaSDP
00116 {
00117 public:
00118 LovaszThetaSDP();
00119
00128 LovaszThetaSDP(const arma::mat& edges);
00129
00130 double Evaluate(const arma::mat& coordinates);
00131 void Gradient(const arma::mat& coordinates, arma::mat& gradient);
00132
00133 size_t NumConstraints() const;
00134
00135 double EvaluateConstraint(const size_t index, const arma::mat& coordinates);
00136 void GradientConstraint(const size_t index,
00137 const arma::mat& coordinates,
00138 arma::mat& gradient);
00139
00140 const arma::mat& GetInitialPoint();
00141
00142 const arma::mat& Edges() const { return edges; }
00143 arma::mat& Edges() { return edges; }
00144
00145 private:
00146 arma::mat edges;
00147 size_t vertices;
00148
00149 arma::mat initialPoint;
00150 };
00151
00152 };
00153 };
00154
00155 #endif // __MLPACK_CORE_OPTIMIZERS_AUG_LAGRANGIAN_TEST_FUNCTIONS_HPP