bbob

Namespaces

Classes

AttractiveSector

template<typename P = BBOB>
class AttractiveSector : public ioh::problem::BBOB

Attractive Sector problem id = 6.

Public Functions

inline AttractiveSector(const int instance, const int n_variables)

Construct a new Attractive Sector object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 6

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "AttractiveSector"

The name in the registry, also used by the constructor.

Protected Functions

inline double evaluate(const std::vector<double> &x) override

Evaluation method.

inline std::vector<double> transform_variables(std::vector<double> x) override

Variables transformation method.

BentCigar

template<typename P = BBOB>
class BentCigar : public ioh::problem::BBOB

Bent Cigar problem id = 12.

Public Functions

inline BentCigar(const int instance, const int n_variables)

Construct a new Bent Cigar object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 12

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "BentCigar"

The name in the registry, also used by the constructor.

Protected Functions

inline double evaluate(const std::vector<double> &x) override

Evaluation method.

inline std::vector<double> transform_variables(std::vector<double> x) override

Variables transformation method.

BuecheRastrigin

template<typename P = BBOB>
class BuecheRastrigin : public ioh::problem::bbob::RastriginBase<BBOB>

BuecheRastrigin problem id 4.

Public Functions

inline BuecheRastrigin(const int instance, const int n_variables)

Construct a new Bueche Rastrigin object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 4

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "BuecheRastrigin"

The name in the registry, also used by the constructor.

Protected Functions

inline std::vector<double> transform_variables(std::vector<double> x) override

Variables transformation method.

DifferentPowers

template<typename P = BBOB>
class DifferentPowers : public ioh::problem::BBOB

Different powers problem id 14.

Public Functions

inline DifferentPowers(const int instance, const int n_variables)

Construct a new Different Powers object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 14

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "DifferentPowers"

The name in the registry, also used by the constructor.

Protected Functions

inline double evaluate(const std::vector<double> &x) override

Evaluation method.

inline std::vector<double> transform_variables(std::vector<double> x) override

Variables transformation method

Discus

template<typename P = BBOB>
class Discus : public ioh::problem::BBOB

Discuss function id 11.

Public Functions

inline Discus(const int instance, const int n_variables)

Construct a new Discus object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 11

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "Discus"

The name in the registry, also used by the constructor.

Protected Functions

inline double evaluate(const std::vector<double> &x) override

Evaluation method.

inline std::vector<double> transform_variables(std::vector<double> x) override

Variables transformation method.

Ellipsoid

template<typename P = BBOB>
class Ellipsoid : public ioh::problem::bbob::EllipsoidBase<BBOB>

Ellipsiod problem id 2.

Public Functions

inline Ellipsoid(const int instance, const int n_variables)

Construct a new Ellipsoid object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 2

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "Ellipsoid"

The name in the registry, also used by the constructor.

EllipsoidBase

template<typename P = BBOB>
class EllipsoidBase : public ioh::problem::BBOB

CTRP base class for ellipsiod class variants.

Template Parameters:

T – type of the ellipsiod problem

Subclassed by ioh::problem::bbob::Ellipsoid< P >, ioh::problem::bbob::EllipsoidRotated< P >

Public Functions

inline EllipsoidBase(const int problem_id, const int instance, const int n_variables, const std::string &name)

Construct a new Ellipsoid Base object.

Parameters:
  • problem_id – the problem id

  • instance – the instance

  • n_variables – the dimension

  • name – the name of the problem

Protected Functions

inline double evaluate(const std::vector<double> &x) override

Evaluation method.

inline std::vector<double> transform_variables(std::vector<double> x) override

Variables transformation method.

EllipsoidRotated

template<typename P = BBOB>
class EllipsoidRotated : public ioh::problem::bbob::EllipsoidBase<BBOB>

Rotated ellipsoid problem id 10.

Public Functions

inline EllipsoidRotated(const int instance, const int n_variables)

Construct a new Ellipsoid Rotated object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 10

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "EllipsoidRotated"

The name in the registry, also used by the constructor.

Protected Functions

inline std::vector<double> transform_variables(std::vector<double> x) override

Transoform variables method.

Gallagher

template<typename P>
class Gallagher : public P

Gallagher Base.

Subclassed by ioh::problem::bbob::Gallagher101< P >, ioh::problem::bbob::Gallagher21< P >

Public Functions

inline Gallagher(const int problem_id, const int instance, const int n_variables, const std::string &name, const int number_of_peaks, const double b = 10., const double c = 5.0, double max_condition = sqrt(1000.))

Construct a new Gallagher object.

Parameters:
  • problem_id – the id of the problem

  • instance – the instance of the problem

  • n_variables – the dimension of the problem

  • name – the name of the problem

  • number_of_peaks – the number of peaks of the problem

  • b – gallagher variables

  • c – gallagher variables

  • max_condition – the maximum conditioning of the problem

Protected Functions

inline double evaluate(const std::vector<double> &x) override

Evaluation method.

Private Members

std::vector<std::vector<double>> x_transformation_
std::vector<Peak> peaks_
double factor_
struct Peak

Peak struct.

Public Functions

inline Peak(const double value, const unsigned long seed, const int n_variables, const double condition)

Public Members

double value
std::vector<double> scales

Public Static Functions

static inline std::vector<Peak> get_peaks(const int n, const int n_variables, const unsigned long seed, const double max_condition)

Gallagher101

template<typename P = BBOB>
class Gallagher101 : public ioh::problem::bbob::Gallagher<BBOB>

Gallaher 101 problem id 21.

Public Functions

inline Gallagher101(const int instance, const int n_variables)

Construct a new Gallagher 1 0 1 object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 21

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "Gallagher101"

The name in the registry, also used by the constructor.

Gallagher21

template<typename P = BBOB>
class Gallagher21 : public ioh::problem::bbob::Gallagher<BBOB>

Gallagher 21 problem id 22.

Public Functions

inline Gallagher21(const int instance, const int n_variables)

Construct a new Gallagher 2 1 object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 22

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "Gallagher21"

The name in the registry, also used by the constructor.

GriewankRosenbrock

template<typename P = BBOB>
class GriewankRosenbrock : public ioh::problem::BBOB

GriewankRosenbrock problem id 19.

Public Functions

inline GriewankRosenbrock(const int instance, const int n_variables)

Construct a new Griewank Rosen Brock object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 19

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "GriewankRosenbrock"

The name in the registry, also used by the constructor.

Protected Functions

inline double evaluate(const std::vector<double> &x) override

Evaluation method.

inline std::vector<double> transform_variables(std::vector<double> x) override

Variables transformation method.

Private Members

std::vector<double> x_shift_

Katsuura

template<typename P = BBOB>
class Katsuura : public ioh::problem::BBOB

Katsuura problem id 23.

Public Functions

inline Katsuura(const int instance, const int n_variables)

Construct a new Katsuura object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 23

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "Katsuura"

The name in the registry, also used by the constructor.

Protected Functions

inline double evaluate(const std::vector<double> &x) override

Evaluation method.

inline std::vector<double> transform_variables(std::vector<double> x) override

Variables transformation method.

Private Members

double exponent_
double factor_

LinearSlope

template<typename P = BBOB>
class LinearSlope : public ioh::problem::BBOB

Linear Slope problem id 5.

Public Functions

inline LinearSlope(const int instance, const int n_variables)

Construct a new Linear Slope object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 5

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "LinearSlope"

The name in the registry, also used by the constructor.

Protected Functions

inline double evaluate(const std::vector<double> &x) override

Evaluation method.

LunacekBiRastrigin

template<typename P = BBOB>
class LunacekBiRastrigin : public ioh::problem::BBOB

LunacekBiRastrigin problem id 24.

Public Functions

inline LunacekBiRastrigin(const int instance, const int n_variables)

Construct a new Lunacek Bi Rastrigin object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 24

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "LunacekBiRastrigin"

The name in the registry, also used by the constructor.

Protected Functions

inline double evaluate(const std::vector<double> &x) override

Evaluation method.

ManyAffine

class ManyAffine : public ioh::problem::SingleObjectiveProblem<double>

Public Functions

inline ManyAffine(const std::vector<double> &xopt, const std::array<double, 24> &weights, const std::array<int, 24> &instances, const int n_variables, const std::array<double, 24> &scale_factors)

Construct a new Many Affine object, requires weights and instances to be specified.

Parameters:
  • xopt – the location of the optimum

  • weights – weight vector which specifies the contribution of each of the 24 bbob to the final objective value

  • instances – the vector of instances used

  • n_variables – the dimension of the problem

  • scale_factors – the relative scale factors for each problem

inline ManyAffine(const int instance, const int n_variables)

Construct a new Many Affine object with default weights and a single instance for all sub functions.

A random location of the optimum and a weight vector are generated using the bbob2009 uniform random number generator, using the instance as seed offset.

Parameters:
  • instance – the instance

  • n_variables – the dimension used

inline std::array<double, 24> get_weights() const
inline std::array<int, 24> get_instances() const
inline std::array<double, 24> get_scale_factors() const
inline std::array<std::shared_ptr<ioh::problem::BBOB>, 24> get_problems()
inline std::array<double, 24> get_function_values() const

Public Static Attributes

static constexpr std::array<double, 24> default_scales{11., 17.5, 12.3, 12.6, 11.5, 15.3, 12.1, 15.3, 15.2, 17.4, 13.4, 20.4, 12.9, 10.4, 12.3, 10.3, 9.8, 10.6, 10., 14.7, 10.7, 10.8, 9., 12.1}

Protected Functions

inline double evaluate(const std::vector<double> &x) override

Private Members

std::array<double, 24> weights_
std::array<int, 24> instances_
std::array<double, 24> scale_factors_
std::array<std::shared_ptr<ioh::problem::BBOB>, 24> problems_
std::array<double, 24> function_values_

Rastrigin

template<typename P = BBOB>
class Rastrigin : public ioh::problem::bbob::RastriginBase<BBOB>

Rastrigin problem id 3.

Public Functions

inline Rastrigin(const int instance, const int n_variables)

Construct a new Rastrigin object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 3

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "Rastrigin"

The name in the registry, also used by the constructor.

RastriginBase

template<typename P = BBOB>
class RastriginBase : public ioh::problem::BBOB

CRTP base class for Rastrigin Problem variants.

Template Parameters:

T – type of the new rastrigin class

Subclassed by ioh::problem::bbob::BuecheRastrigin< P >, ioh::problem::bbob::Rastrigin< P >, ioh::problem::bbob::RastriginRotated< P >

Public Functions

inline RastriginBase(const int problem_id, const int instance, const int n_variables, const std::string &name)

Construct a new Rastrigin Base object.

Parameters:
  • problem_id – the problem id

  • instance – the problem instance

  • n_variables – the problem dimension

  • name – the name of the problem

Protected Functions

inline double evaluate(const std::vector<double> &x) override

Evaluation method.

inline std::vector<double> transform_variables(std::vector<double> x) override

Variables transformation method.

RastriginRotated

template<typename P = BBOB>
class RastriginRotated : public ioh::problem::bbob::RastriginBase<BBOB>

Rotated Rastrigin problem id 15.

Public Functions

inline RastriginRotated(const int instance, const int n_variables)

Construct a new Rastrigin Rotated object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 15

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "RastriginRotated"

The name in the registry, also used by the constructor.

Protected Functions

inline std::vector<double> transform_variables(std::vector<double> x) override

Variables transformation method.

Rosenbrock

template<typename P = BBOB>
class Rosenbrock : public ioh::problem::bbob::RosenbrockBase<BBOB>

Rosenbrock problem id 8.

Public Functions

inline Rosenbrock(const int instance, const int n_variables)

Construct a new Rosenbrock object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 8

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "Rosenbrock"

The name in the registry, also used by the constructor.

RosenbrockBase

template<typename P = BBOB>
class RosenbrockBase : public ioh::problem::BBOB

CRTP base class for Rosenbrock Problem variants.

Template Parameters:

T – type of the new Rosenbrock class

Subclassed by ioh::problem::bbob::Rosenbrock< P >, ioh::problem::bbob::RosenbrockRotated< P >

Public Functions

inline RosenbrockBase(const int problem_id, const int instance, const int n_variables, const std::string &name)

Construct a new Rosenbrock Base object.

Parameters:
  • problem_id – the problem id

  • instance – the problem instance

  • n_variables – the problem dimension

  • name – the name of the problem

Protected Functions

inline double evaluate(const std::vector<double> &x) override

Evaluation method.

inline std::vector<double> transform_variables(std::vector<double> x) override

Variables transformation method.

Private Members

double factor_
std::vector<double> negative_one_

RosenbrockRotated

template<typename P = BBOB>
class RosenbrockRotated : public ioh::problem::bbob::RosenbrockBase<BBOB>

Rotated Rosenbrock function 9.

Public Functions

inline RosenbrockRotated(const int instance, const int n_variables)

Construct a new Rosenbrock Rotated object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 9

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "RosenbrockRotated"

The name in the registry, also used by the constructor.

Protected Functions

inline std::vector<double> transform_variables(std::vector<double> x) override

Variables transformation method.

Schaffers

template<typename P>
class Schaffers : public P

CRTP base class for Schaffers Problem variants.

Subclassed by ioh::problem::bbob::Schaffers10< P >, ioh::problem::bbob::Schaffers1000< P >

Public Functions

inline Schaffers(const int problem_id, const int instance, const int n_variables, const std::string &name, const double condition)

Construct a new Schaffers object.

Parameters:
  • problem_id – the problem id

  • instance – the problem instance

  • n_variables – the problem dimension

  • name – the name of the problem

  • condition – condition of the problem

Protected Functions

inline double evaluate(const std::vector<double> &x) override

Evaluation method.

inline std::vector<double> transform_variables(std::vector<double> x) override

Variables transformation method.

Protected Attributes

double condition_

Condition of the problem.

Schaffers10

template<typename P = BBOB>
class Schaffers10 : public ioh::problem::bbob::Schaffers<BBOB>

Shaffers 10 problem id 17.

Public Functions

inline Schaffers10(const int instance, const int n_variables)

Construct a new Schaffers 1 0 object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 17

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "Schaffers10"

The name in the registry, also used by the constructor.

Schaffers1000

template<typename P = BBOB>
class Schaffers1000 : public ioh::problem::bbob::Schaffers<BBOB>

Shaffers 1000 problem id 18.

Public Functions

inline Schaffers1000(const int instance, const int n_variables)

Construct a new Schaffers 1 0 0 0 object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 18

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "Schaffers1000"

The name in the registry, also used by the constructor.

Schwefel

template<typename P = BBOB>
class Schwefel : public ioh::problem::BBOB

Schefel problem id 20.

Public Functions

inline Schwefel(const int instance, const int n_variables)

Construct a new Schwefel object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 20

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "Schwefel"

The name in the registry, also used by the constructor.

Protected Functions

inline double evaluate(const std::vector<double> &x) override

Evaluation method.

inline std::vector<double> transform_variables(std::vector<double> x) override

Variables transformation method.

Private Members

std::vector<double> negative_offset_
std::vector<double> positive_offset_

SharpRidge

template<typename P = BBOB>
class SharpRidge : public ioh::problem::BBOB

Sharp ridge function problem id 13.

Public Functions

inline SharpRidge(const int instance, const int n_variables)

Construct a new Sharp Ridge object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 13

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "SharpRidge"

The name in the registry, also used by the constructor.

Protected Functions

inline double evaluate(const std::vector<double> &x) override

Evaluation method.

inline std::vector<double> transform_variables(std::vector<double> x) override

Variables transformation method.

Private Members

int n_linear_dimensions_

Sphere

template<typename P = BBOB>
class Sphere : public ioh::problem::BBOB

Sphere function problem id 1.

Public Functions

inline Sphere(const int instance, const int n_variables)

Construct a new Sphere object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 1

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "Sphere"

The name in the registry, also used by the constructor.

Protected Functions

inline double evaluate(const std::vector<double> &x) override

Evaluation method.

inline std::vector<double> transform_variables(std::vector<double> x) override

Variables transformation method.

StepEllipsoid

template<typename P = BBOB>
class StepEllipsoid : public ioh::problem::BBOB

Step ellipsiod problem id 7.

Public Functions

inline StepEllipsoid(const int instance, const int n_variables)

Construct a new Step Ellipsoid object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 7

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "StepEllipsoid"

The name in the registry, also used by the constructor.

Protected Functions

inline double compute_projection(const std::vector<double> &x)

compute project of x

inline double evaluate(const std::vector<double> &x) override

Evaluation method.

Weierstrass

template<typename P = BBOB>
class Weierstrass : public ioh::problem::BBOB

Weierstrass problem id 16.

Public Functions

inline Weierstrass(const int instance, const int n_variables)

Construct a new Weierstrass object.

Parameters:
  • instance – instance id

  • n_variables – the dimension of the problem

Public Static Attributes

static constexpr int registry_id = 16

The id in the registry, also used by the constructor.

static constexpr const char *registry_name = "Weierstrass"

The name in the registry, also used by the constructor.

Protected Functions

inline double evaluate(const std::vector<double> &x) override

Evaluation method.

inline std::vector<double> transform_variables(std::vector<double> x) override

Variables transformation method.

Private Members

double f0_
std::vector<double> ak_
std::vector<double> bk_