|
5 | 5 | #include "cecxx/detail/benchmark/cec2017/consts.hpp"
|
6 | 6 | #include "cecxx/detail/benchmark/invoke.hpp"
|
7 | 7 | #include "cecxx/detail/context.hpp"
|
| 8 | +#include "cecxx/problem/multimodal/ackley.hpp" |
8 | 9 | #include "cecxx/problem/multimodal/bi_rastrigin.hpp"
|
| 10 | +#include "cecxx/problem/multimodal/discus.hpp" |
| 11 | +#include "cecxx/problem/multimodal/escaffer.hpp" |
| 12 | +#include "cecxx/problem/multimodal/grie_rosen.hpp" |
| 13 | +#include "cecxx/problem/multimodal/hgbat.hpp" |
| 14 | +#include "cecxx/problem/multimodal/katsuura.hpp" |
9 | 15 | #include "cecxx/problem/multimodal/levy.hpp"
|
10 | 16 | #include "cecxx/problem/multimodal/rastrigin.hpp"
|
11 | 17 | #include "cecxx/problem/multimodal/rosenbrock.hpp"
|
12 | 18 | #include "cecxx/problem/multimodal/schaffer.hpp"
|
13 | 19 | #include "cecxx/problem/multimodal/schwefel.hpp"
|
14 | 20 | #include "cecxx/problem/multimodal/step_rastrigin.hpp"
|
| 21 | +#include "cecxx/problem/multimodal/weierstrass.hpp" |
15 | 22 | #include "cecxx/problem/multimodal/zakharov.hpp"
|
16 | 23 | #include "cecxx/problem/unimodal/bent_cigar.hpp"
|
17 | 24 | #include "cecxx/problem/unimodal/ellips.hpp"
|
@@ -62,36 +69,54 @@ auto dispatch_problem(problem_context_view ctx, const int fn, const auto& input)
|
62 | 69 | {0.3, 0.3, 0.4}, ctx, {.rot = do_affine_trans::yes, .shift = do_affine_trans::yes}, {1.0, 10.0, 1.0});
|
63 | 70 | case 13:
|
64 | 71 | return invoke_hybrid_problem(
|
65 |
| - input, {problem::unimodal::bent_cigar, problem::multimodal::rosenbrock, problem::multimodal::legacy::bi_rastrigin}, |
| 72 | + input, |
| 73 | + {problem::unimodal::bent_cigar, problem::multimodal::rosenbrock, problem::multimodal::legacy::bi_rastrigin}, |
66 | 74 | {0.3, 0.3, 0.4}, ctx, {.rot = do_affine_trans::yes, .shift = do_affine_trans::yes}, {1.0, 2.048 / 100.0, 1.0});
|
67 | 75 | case 14:
|
68 |
| - return invoke_hybrid_problem( |
69 |
| - input, {problem::unimodal::ellips, problem::multimodal::schwefel, problem::unimodal::bent_cigar}, |
70 |
| - {0.3, 0.3, 0.4}, ctx, {.rot = do_affine_trans::yes, .shift = do_affine_trans::yes}, {1.0, 10.0, 1.0}); |
| 76 | + return invoke_hybrid_problem(input, |
| 77 | + {problem::unimodal::ellips, problem::multimodal::ackley, |
| 78 | + problem::multimodal::legacy::schaffer, problem::multimodal::rastrigin}, |
| 79 | + {0.2, 0.2, 0.2, 0.4}, ctx, |
| 80 | + {.rot = do_affine_trans::yes, .shift = do_affine_trans::yes}, {1.0, 10.0, 1.0}); |
71 | 81 | case 15:
|
72 |
| - return invoke_hybrid_problem( |
73 |
| - input, {problem::unimodal::ellips, problem::multimodal::schwefel, problem::unimodal::bent_cigar}, |
74 |
| - {0.3, 0.3, 0.4}, ctx, {.rot = do_affine_trans::yes, .shift = do_affine_trans::yes}, {1.0, 10.0, 1.0}); |
| 82 | + return invoke_hybrid_problem(input, |
| 83 | + {problem::unimodal::bent_cigar, problem::multimodal::hgbat, |
| 84 | + problem::multimodal::rastrigin, problem::multimodal::rosenbrock}, |
| 85 | + {0.2, 0.2, 0.3, 0.3}, ctx, |
| 86 | + {.rot = do_affine_trans::yes, .shift = do_affine_trans::yes}, {1.0, 10.0, 1.0}); |
75 | 87 | case 16:
|
76 |
| - return invoke_hybrid_problem( |
77 |
| - input, {problem::unimodal::ellips, problem::multimodal::schwefel, problem::unimodal::bent_cigar}, |
78 |
| - {0.3, 0.3, 0.4}, ctx, {.rot = do_affine_trans::yes, .shift = do_affine_trans::yes}, {1.0, 10.0, 1.0}); |
| 88 | + return invoke_hybrid_problem(input, |
| 89 | + {problem::multimodal::escaffer, problem::multimodal::hgbat, |
| 90 | + problem::multimodal::rosenbrock, problem::multimodal::schwefel}, |
| 91 | + {0.2, 0.2, 0.3, 0.3}, ctx, |
| 92 | + {.rot = do_affine_trans::yes, .shift = do_affine_trans::yes}, {1.0, 10.0, 1.0}); |
79 | 93 | case 17:
|
80 | 94 | return invoke_hybrid_problem(
|
81 |
| - input, {problem::unimodal::ellips, problem::multimodal::schwefel, problem::unimodal::bent_cigar}, |
82 |
| - {0.3, 0.3, 0.4}, ctx, {.rot = do_affine_trans::yes, .shift = do_affine_trans::yes}, {1.0, 10.0, 1.0}); |
| 95 | + input, |
| 96 | + {problem::multimodal::katsuura, problem::multimodal::ackley, problem::multimodal::grie_rosen, |
| 97 | + problem::multimodal::schwefel, problem::multimodal::rastrigin}, |
| 98 | + {0.1, 0.2, 0.2, 0.2, 0.3}, ctx, {.rot = do_affine_trans::yes, .shift = do_affine_trans::yes}, {1.0, 10.0, 1.0}); |
83 | 99 | case 18:
|
84 | 100 | return invoke_hybrid_problem(
|
85 |
| - input, {problem::unimodal::ellips, problem::multimodal::schwefel, problem::unimodal::bent_cigar}, |
86 |
| - {0.3, 0.3, 0.4}, ctx, {.rot = do_affine_trans::yes, .shift = do_affine_trans::yes}, {1.0, 10.0, 1.0}); |
| 101 | + input, |
| 102 | + {problem::unimodal::ellips, problem::multimodal::ackley, problem::multimodal::rastrigin, |
| 103 | + problem::multimodal::hgbat, problem::multimodal::discus}, |
| 104 | + {0.2, 0.2, 0.2, 0.2, 0.2}, ctx, {.rot = do_affine_trans::yes, .shift = do_affine_trans::yes}, {1.0, 10.0, 1.0}); |
87 | 105 | case 19:
|
88 | 106 | return invoke_hybrid_problem(
|
89 |
| - input, {problem::unimodal::ellips, problem::multimodal::schwefel, problem::unimodal::bent_cigar}, |
90 |
| - {0.3, 0.3, 0.4}, ctx, {.rot = do_affine_trans::yes, .shift = do_affine_trans::yes}, {1.0, 10.0, 1.0}); |
| 107 | + input, |
| 108 | + {problem::unimodal::bent_cigar, problem::multimodal::rastrigin, problem::multimodal::grie_rosen, |
| 109 | + problem::multimodal::weierstrass, problem::multimodal::escaffer}, |
| 110 | + {0.2, 0.2, 0.2, 0.2, 0.2}, ctx, {.rot = do_affine_trans::yes, .shift = do_affine_trans::yes}, {1.0, 10.0, 1.0}); |
91 | 111 | case 20:
|
92 | 112 | return invoke_hybrid_problem(
|
93 |
| - input, {problem::unimodal::ellips, problem::multimodal::schwefel, problem::unimodal::bent_cigar}, |
94 |
| - {0.3, 0.3, 0.4}, ctx, {.rot = do_affine_trans::yes, .shift = do_affine_trans::yes}, {1.0, 10.0, 1.0}); |
| 113 | + input, |
| 114 | + {problem::multimodal::hgbat, problem::multimodal::katsuura, problem::multimodal::ackley, |
| 115 | + problem::multimodal::rastrigin, problem::multimodal::rastrigin, problem::multimodal::schwefel, |
| 116 | + problem::multimodal::rastrigin}, |
| 117 | + // problem::multimodal::legacy::schaffer}, |
| 118 | + {0.1, 0.1, 0.2, 0.2, 0.2, 0.2}, ctx, {.rot = do_affine_trans::yes, .shift = do_affine_trans::yes}, |
| 119 | + {1.0, 10.0, 1.0}); |
95 | 120 | // case 21:
|
96 | 121 | // cec2017_cf01(input.data(), output.data(), input.size(), ctx.shift(fn), ctx.rotate(fn),
|
97 | 122 | // to_underlying(do_shift::yes));
|
|
0 commit comments