Hypervolumes.h
Go to the documentation of this file.
1 #ifndef SHARK_OBJECTIVEFUNCTIONS_BENCHMARK_HYPERVOLUMES_H
2 #define SHARK_OBJECTIVEFUNCTIONS_BENCHMARK_HYPERVOLUMES_H
3 
5 
6 namespace shark {
7 
8 // The optimal hypervolumes for various population sizes. All with a reference
9 // point of (11, 11).
10 
11 #define HV(type, vol10, vol100) \
12  double optimal_hyper_volume(type const &, std::size_t mu) { \
13  switch(mu){ \
14  case 10: return vol10; \
15  case 100: return vol100; \
16  } \
17  throw SHARKEXCEPTION("No known hypervolume for " #type \
18  " for mu = " + std::to_string(mu)); \
19  }
20 
21 HV(DTLZ1, 120.86111, 120.873737)
22 HV(DTLZ2, 120.178966, 120.210644)
23 HV(DTLZ3, 120.178966, 120.210643)
24 HV(DTLZ4, 120.178966, 120.210634)
25 HV(DTLZ7, 115.964708, 116.101551)
26 HV(ZDT1, 120.613761, 120.662137)
27 HV(ZDT2, 120.286820, 120.328881)
28 HV(ZDT3, 128.748470, 128.775955)
29 HV(ZDT4, 120.613761, 120.662137)
30 HV(ZDT6, 117.483246, 117.514950)
31 
32 #undef HV
33 
34 } // namespace shark
35 
36 #endif