Pallas Solver  0.1
C++ Global Optimization Algorithms
types.h
1 //
2 // Created by ryan on 5/9/15.
3 //
4 
5 #ifndef PALLAS_TYPES_H
6 #define PALLAS_TYPES_H
7 
8 #include "ceres/ceres.h"
9 #include "ceres/types.h"
10 #include "Eigen/Core"
11 #include "rapidjson/writer.h"
12 
13 namespace pallas {
14 
15  using GradientCostFunction = ceres::FirstOrderFunction;
16  using LeastSquaresCostFunction = ceres::CostFunction;
17 
18  using LeastSquaresProblem = ceres::Problem;
19  using GradientProblem = ceres::GradientProblem;
20 
21  using GradientLocalMinimizer = ceres::GradientProblemSolver;
22  using LeastSquaresLocalMinimizer = ceres::Solver;
23 
24  using Vector = ceres::Vector;
25  using VectorRef = ceres::VectorRef;
26  using ConstVectorRef = ceres::ConstVectorRef;
27 
28  using LineSearchDirectionType = ceres::LineSearchDirectionType;
29 
30  using TerminationType = ceres::TerminationType;
31 
32  using Vector2d = Eigen::Vector2d;
33 
34  using HistoryWriter = rapidjson::Writer<rapidjson::StringBuffer>;
35 
36  enum MutationStrategyType {
37  BEST_1,
38  RAND_1,
39  RAND_TO_BEST_1,
40  BEST_2,
41  RAND_2,
42  };
43 
44  enum CrossoverStrategyType {
45  BINOMIAL,
46  EXPONENTIAL,
47  };
48 
49  enum CostFunctionType {
50  GRADIENT,
51  LEAST_SQUARES,
52  };
53 
54  enum PopulationInitializationType {
55  LATIN_HYPERCUBE,
56  RANDOM,
57  };
58 
59  enum CoolingScheduleType {
60  BOLTZMANN,
61  CAUCHY,
62  FAST,
63  };
64 
65  const char* CoolingScheduleTypeToString(CoolingScheduleType type);
66  bool StringToCoolingScheduleType(std::string value, CoolingScheduleType* type);
67 
68  const char* MutationStrategyTypeToString(MutationStrategyType type);
69  bool StringToMutationStrategyType(std::string value, MutationStrategyType* type);
70 
71  const char* CrossoverStrategyTypeToString(CrossoverStrategyType type);
72  bool StringToCrossoverStrategyType(std::string value, CrossoverStrategyType* type);
73 
74  const char* PopulationInitializationTypeToString(PopulationInitializationType type);
75  bool StringToPopulationInitializationType(std::string value, PopulationInitializationType* type);
76 
77 } // namespace pallas
78 
79 #endif //PALLAS_TYPES_H
Definition: basinhopping.h:51