Implementation of the step ellipsoid function and problem. More...
#include <assert.h>
#include "coco.h"
#include "coco_problem.c"
#include "coco_utilities.c"
#include "suite_bbob_legacy_code.c"
#include "transform_obj_penalize.c"
#include "transform_obj_shift.c"
#include "transform_vars_shift.c"
#include "transform_vars_permutation.c"
#include "transform_vars_blockrotation.c"
#include "transform_vars_round_step.c"
#include "transform_obj_norm_by_dim.c"
Data Structures | |
struct f_step_ellipsoid_data_t | |
Data type for the step ellipsoid problem. More... | |
Functions | |
static double f_step_ellipsoid_raw (const double *x, const size_t number_of_variables, f_step_ellipsoid_data_t *data) | |
Implements the step ellipsoid function without connections to any COCO structures. More... | |
static void f_step_ellipsoid_evaluate (coco_problem_t *problem, const double *x, double *y) | |
Uses the raw function to evaluate the COCO problem. More... | |
static void f_step_ellipsoid_free (coco_problem_t *problem) | |
Frees the step ellipsoid data object. More... | |
static coco_problem_t * f_step_ellipsoid_bbob_problem_allocate (const size_t function, const size_t dimension, const size_t instance, const long rseed, const char *problem_id_template, const char *problem_name_template) | |
Creates the BBOB step ellipsoid problem. More... | |
static double f_step_ellipsoid_core (const double *x, const size_t number_of_variables, f_step_ellipsoid_versatile_data_t *f_step_ellipsoid_versatile_data) | |
Implements the step ellipsoid function without connections to any COCO structures. More... | |
static void f_step_ellipsoid_permblock_evaluate (coco_problem_t *problem, const double *x, double *y) | |
Uses the raw function to evaluate the ls COCO problem. More... | |
static void f_step_ellipsoid_versatile_data_free (coco_problem_t *problem) | |
allows to free the versatile_data part of the problem. More... | |
static coco_problem_t * f_step_ellipsoid_allocate (const size_t number_of_variables) | |
Allocates the basic step ellipsoid problem. an additional coordinate is added that will contain the value of {z}_1 but that is ignored by functions other that f_step_ellipsoid_core and transform_vars_round_step. The latter sets it. More... | |
static coco_problem_t * f_step_ellipsoid_permblockdiag_bbob_problem_allocate (const size_t function, const size_t dimension, const size_t instance, const long rseed, const char *problem_id_template, const char *problem_name_template) | |
Creates the BBOB permuted block-rotated step ellipsoid problem. More... | |
Detailed Description
Implementation of the step ellipsoid function and problem.
The BBOB step ellipsoid function intertwines the variable and objective transformations in such a way that it is hard to devise a composition of generic transformations to implement it. In the end one would have to implement several custom transformations which would be used solely by this problem. Therefore we opt to implement it as a monolithic function instead.
TODO: It would be nice to have a generic step ellipsoid function to complement this one.
Function Documentation
|
static |
Allocates the basic step ellipsoid problem. an additional coordinate is added that will contain the value of {z}_1 but that is ignored by functions other that f_step_ellipsoid_core and transform_vars_round_step. The latter sets it.
|
static |
Creates the BBOB step ellipsoid problem.
- Note
- There is no separate basic allocate function.
|
static |
Implements the step ellipsoid function without connections to any COCO structures.
|
static |
Uses the raw function to evaluate the COCO problem.
|
static |
Frees the step ellipsoid data object.
|
static |
Uses the raw function to evaluate the ls COCO problem.
|
static |
Creates the BBOB permuted block-rotated step ellipsoid problem.
Wassim: TODO: consider implementing it sub-problem style Wassim: TODO: make the zhat1 value default to x1 when no transformation is applied and the data type defined here
|
static |
Implements the step ellipsoid function without connections to any COCO structures.
|
static |
allows to free the versatile_data part of the problem.