Implementation of the extended biobjective bbob-biobj-ext suite containing 92 functions and 6 dimensions.
More...
|
static coco_suite_t * | coco_suite_allocate (const char *suite_name, const size_t number_of_functions, const size_t number_of_dimensions, const size_t *dimensions, const char *default_instances) |
|
static void | suite_biobj_ext_free (void *stuff) |
| Frees the memory of the given bi-objective suite. More...
|
|
static size_t | suite_biobj_ext_get_new_instance (coco_suite_t *suite, const size_t instance, const size_t instance1, const size_t num_bbob_functions, const size_t *bbob_functions) |
| Computes the instance number of the second problem/objective so that the resulting bi-objective problem has more than a single optimal solution. More...
|
|
static coco_suite_t * | suite_biobj_ext_initialize (void) |
| Sets the dimensions and default instances for the bbob-biobj-ext suite. More...
|
|
static const char * | suite_biobj_ext_get_instances_by_year (const int year) |
| Sets the instances associated with years for the bbob-biobj-ext suite. More...
|
|
static coco_problem_t * | suite_biobj_ext_get_problem (coco_suite_t *suite, const size_t function_idx, const size_t dimension_idx, const size_t instance_idx) |
| Returns the problem from the bbob-biobj-ext suite that corresponds to the given parameters. More...
|
|
static int | check_consistency_of_instances (const size_t dimension, size_t function1, size_t instance1, size_t function2, size_t instance2) |
| Performs a few checks and returns whether the two problem instances given should break the search for new instances in suite_biobj_ext_get_new_instance(...). More...
|
|
Implementation of the extended biobjective bbob-biobj-ext suite containing 92 functions and 6 dimensions.
The bbob-biobj-ext suite is created by combining two single-objective problems from the bbob suite. The first 55 functions are the same as in the original bbob-biobj test suite to which 37 functions are added. Those additional functions are constructed by combining all not yet contained in-group combinations (i,j) of single-objective bbob functions i and j such that i<j (i.e. in particular not all combinations (i,i) are included in this bbob-biobj-ext suite), with the exception of the Weierstrass function (f16) for which the optimum is not unique and thus a nadir point is difficult to compute, see http://numbbo.github.io/coco-doc/bbob-biobj/functions/ for details.
- Note
- Because some bi-objective problems constructed from two single-objective ones have a single optimal value, some care must be taken when selecting the instances. The already verified instances are stored in suite_biobj_ext_instances. If a new instance of the problem is called, a check ensures that the two underlying single-objective instances create a true bi-objective problem. However, these new instances need to be manually added to suite_biobj_ext_instances, otherwise they will be computed each time the suite constructor is invoked with these instances.
-
This file is based on the original suite_bbob_biobj.c and extends it by 37 functions in 6 dimensions.
static size_t suite_biobj_ext_get_new_instance |
( |
coco_suite_t * |
suite, |
|
|
const size_t |
instance, |
|
|
const size_t |
instance1, |
|
|
const size_t |
num_bbob_functions, |
|
|
const size_t * |
bbob_functions |
|
) |
| |
|
static |
Computes the instance number of the second problem/objective so that the resulting bi-objective problem has more than a single optimal solution.
Starts by setting instance2 = instance1 + 1 and increases this number until an appropriate instance has been found (or until a maximum number of tries has been reached, in which case it throws a coco_error). An appropriate instance is the one for which the resulting bi-objective problem (in any considered dimension) has the ideal and nadir points apart enough in the objective space and the extreme optimal points apart enough in the decision space. When the instance has been found, it is output through coco_warning, so that the user can see it and eventually manually add it to suite_biobj_ext_instances.
- Note
- Copied from suite_bbob_biobj.c.
static coco_problem_t* suite_biobj_ext_get_problem |
( |
coco_suite_t * |
suite, |
|
|
const size_t |
function_idx, |
|
|
const size_t |
dimension_idx, |
|
|
const size_t |
instance_idx |
|
) |
| |
|
static |
Returns the problem from the bbob-biobj-ext suite that corresponds to the given parameters.
Creates the bi-objective problem by constructing it from two single-objective problems from the bbob suite. If the invoked instance number is not in suite_biobj_ext_instances, the function uses the following formula to construct a new appropriate instance:
problem1_instance = 2 * biobj_instance + 1
problem2_instance = problem1_instance + 1
If needed, problem2_instance is increased (see also the explanation of suite_biobj_ext_get_new_instance).
- Parameters
-
suite | The COCO suite. |
function_idx | Index of the function (starting from 0). |
dimension_idx | Index of the dimension (starting from 0). |
instance_idx | Index of the instance (starting from 0). |
- Returns
- The problem that corresponds to the given parameters.
- Note
- Copied from suite_bbob_biobj.c and extended.