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
6namespace shark {namespace benchmarks{
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
21HV(DTLZ1, 120.86111, 120.873737)
22HV(DTLZ2, 120.178966, 120.210644)
23HV(DTLZ3, 120.178966, 120.210643)
24HV(DTLZ4, 120.178966, 120.210634)
25HV(DTLZ7, 115.964708, 116.101551)
26HV(ZDT1, 120.613761, 120.662137)
27HV(ZDT2, 120.286820, 120.328881)
28HV(ZDT3, 128.748470, 128.775955)
29HV(ZDT4, 120.613761, 120.662137)
30HV(ZDT6, 117.483246, 117.514950)
31
32#undef HV
33
34}} // namespace shark
35
36#endif