libcmaes 0.10.2
A C++11 library for stochastic optimization with CMA-ES
Loading...
Searching...
No Matches
surrcmaes.h
1
22#ifndef SURRCMAES_H
23#define SURRCMAES_H
24
25#include <libcmaes/cmaes.h>
26#include <libcmaes/surrogates/rankingsvm.hpp>
27#include <libcmaes/surrogates/rsvm_surr_strategy.hpp>
28
29namespace libcmaes
30{
31 template <class TGenoPheno=GenoPheno<NoBoundStrategy> >
32 CMASolutions CMAES_EXPORT surrcmaes(FitFunc &func,
33 CMAParameters<TGenoPheno> &parameters)
34 {
35 switch(parameters.get_algo())
36 {
37 case CMAES_DEFAULT:
38 {
39 ESOptimizer<RSVMSurrogateStrategy<CMAStrategy,CovarianceUpdate>,CMAParameters<>> optim(func,parameters);
40 optim.optimize();
41 return optim.get_solutions();
42 }
43 case IPOP_CMAES:
44 {
45 ESOptimizer<RSVMSurrogateStrategy<IPOPCMAStrategy,CovarianceUpdate>,CMAParameters<>> optim(func,parameters);
46 optim.optimize();
47 return optim.get_solutions();
48 }
49 case BIPOP_CMAES:
50 {
51 ESOptimizer<RSVMSurrogateStrategy<BIPOPCMAStrategy,CovarianceUpdate>,CMAParameters<>> optim(func,parameters);
52 optim.optimize();
53 return optim.get_solutions();
54 }
55 case aCMAES:
56 {
57 ESOptimizer<RSVMSurrogateStrategy<CMAStrategy,ACovarianceUpdate>,CMAParameters<>> optim(func,parameters);
58 optim.optimize();
59 return optim.get_solutions();
60 }
61 case aIPOP_CMAES:
62 {
63 ESOptimizer<RSVMSurrogateStrategy<IPOPCMAStrategy,ACovarianceUpdate>,CMAParameters<>> optim(func,parameters);
64 optim.optimize();
65 return optim.get_solutions();
66 }
67 case aBIPOP_CMAES:
68 {
69 ESOptimizer<RSVMSurrogateStrategy<BIPOPCMAStrategy,ACovarianceUpdate>,CMAParameters<>> optim(func,parameters);
70 optim.optimize();
71 return optim.get_solutions();
72 }
73 case sepCMAES:
74 {
75 parameters.set_sep();
76 ESOptimizer<RSVMSurrogateStrategy<CMAStrategy,CovarianceUpdate>,CMAParameters<>> optim(func,parameters);
77 optim.optimize();
78 return optim.get_solutions();
79 }
80 case sepIPOP_CMAES:
81 {
82 parameters.set_sep();
83 ESOptimizer<RSVMSurrogateStrategy<IPOPCMAStrategy,CovarianceUpdate>,CMAParameters<>> optim(func,parameters);
84 optim.optimize();
85 return optim.get_solutions();
86 }
87 case sepBIPOP_CMAES:
88 {
89 parameters.set_sep();
90 ESOptimizer<RSVMSurrogateStrategy<BIPOPCMAStrategy,CovarianceUpdate>,CMAParameters<>> optim(func,parameters);
91 optim.optimize();
92 return optim.get_solutions();
93 }
94 case sepaCMAES:
95 {
96 parameters.set_sep();
97 ESOptimizer<RSVMSurrogateStrategy<CMAStrategy,ACovarianceUpdate>,CMAParameters<>> optim(func,parameters);
98 optim.optimize();
99 return optim.get_solutions();
100 }
101 case sepaIPOP_CMAES:
102 {
103 parameters.set_sep();
104 ESOptimizer<RSVMSurrogateStrategy<IPOPCMAStrategy,ACovarianceUpdate>,CMAParameters<>> optim(func,parameters);
105 optim.optimize();
106 return optim.get_solutions();
107 }
108 case sepaBIPOP_CMAES:
109 {
110 parameters.set_sep();
111 ESOptimizer<RSVMSurrogateStrategy<BIPOPCMAStrategy,ACovarianceUpdate>,CMAParameters<>> optim(func,parameters);
112 optim.optimize();
113 return optim.get_solutions();
114 }
115 case VD_CMAES:
116 {
117 parameters.set_vd();
118 ESOptimizer<RSVMSurrogateStrategy<CMAStrategy,VDCMAUpdate>,CMAParameters<>> optim(func,parameters);
119 optim.optimize();
120 return optim.get_solutions();
121 }
122 case VD_IPOP_CMAES:
123 {
124 parameters.set_vd();
125 ESOptimizer<RSVMSurrogateStrategy<IPOPCMAStrategy,VDCMAUpdate>,CMAParameters<>> optim(func,parameters);
126 optim.optimize();
127 return optim.get_solutions();
128 }
129 case VD_BIPOP_CMAES:
130 {
131 parameters.set_vd();
132 ESOptimizer<RSVMSurrogateStrategy<BIPOPCMAStrategy,VDCMAUpdate>,CMAParameters<>> optim(func,parameters);
133 optim.optimize();
134 return optim.get_solutions();
135 }
136 default:
137 return CMASolutions();
138 }
139 }
140}
141
142#endif
linear scaling of the parameter space to achieve similar sensitivity across all components.
Definition acovarianceupdate.h:30