bbob#

Classes#

AttractiveSector#

class AttractiveSector : public ioh::problem::BBOProblem<AttractiveSector>#

Attractive Sector problem id = 2.

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

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#

class BentCigar : public ioh::problem::BBOProblem<BentCigar>#

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

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#

class BuecheRastrigin : public ioh::problem::bbob::RastriginBase<BuecheRastrigin>#

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

Protected Functions

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

Variables transformation method.

DifferentPowers#

class DifferentPowers : public ioh::problem::BBOProblem<DifferentPowers>#

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

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#

class Discus : public ioh::problem::BBOProblem<Discus>#

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

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#

class Ellipsoid : public ioh::problem::bbob::EllipsoidBase<Ellipsoid>#

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

EllipsoidBase#

template<typename T>
class EllipsoidBase : public ioh::problem::BBOProblem<T>#

CTRP base class for ellipsiod class variants.

Template Parameters:

T – type of the ellipsiod problem

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#

class EllipsoidRotated : public ioh::problem::bbob::EllipsoidBase<EllipsoidRotated>#

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

Protected Functions

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

Transoform variables method.

Gallagher#

template<typename T>
class Gallagher : public ioh::problem::BBOProblem<T>#

CTRP base class for Gallagher problems.

Template Parameters:

T – type of the gallagher problem

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 int 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 int seed, const double max_condition)#

Gallagher101#

class Gallagher101 : public ioh::problem::bbob::Gallagher<Gallagher101>#

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

Gallagher21#

class Gallagher21 : public ioh::problem::bbob::Gallagher<Gallagher21>#

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

GriewankRosenBrock#

class GriewankRosenBrock : public ioh::problem::BBOProblem<GriewankRosenBrock>#

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

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#

class Katsuura : public ioh::problem::BBOProblem<Katsuura>#

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

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#

class LinearSlope : public ioh::problem::BBOProblem<LinearSlope>#

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

Protected Functions

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

Evaluation method.

LunacekBiRastrigin#

class LunacekBiRastrigin : public ioh::problem::BBOProblem<LunacekBiRastrigin>#

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

Protected Functions

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

Evaluation method.

Rastrigin#

class Rastrigin : public ioh::problem::bbob::RastriginBase<Rastrigin>#

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

RastriginBase#

template<typename T>
class RastriginBase : public ioh::problem::BBOProblem<T>#

CRTP base class for Rastrigin Problem variants.

Template Parameters:

T – type of the new rastrigin class

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#

class RastriginRotated : public ioh::problem::bbob::RastriginBase<RastriginRotated>#

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

Protected Functions

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

Variables transformation method.

Rosenbrock#

class Rosenbrock : public ioh::problem::bbob::RosenbrockBase<Rosenbrock>#

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

RosenbrockBase#

template<typename T>
class RosenbrockBase : public ioh::problem::BBOProblem<T>#

CRTP base class for Rosenbrock Problem variants.

Template Parameters:

T – type of the new Rosenbrock class

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#

class RosenbrockRotated : public ioh::problem::bbob::RosenbrockBase<RosenbrockRotated>#

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

Protected Functions

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

Variables transformation method.

Schaffers#

template<typename T>
class Schaffers : public ioh::problem::BBOProblem<T>#

CRTP base class for Schaffers Problem variants.

Template Parameters:

T – type of the new Schaffers class

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#

class Schaffers10 : public ioh::problem::bbob::Schaffers<Schaffers10>#

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

Schaffers1000#

class Schaffers1000 : public ioh::problem::bbob::Schaffers<Schaffers1000>#

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

Schwefel#

class Schwefel : public ioh::problem::BBOProblem<Schwefel>#

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

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#

class SharpRidge : public ioh::problem::BBOProblem<SharpRidge>#

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

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#

class Sphere : public ioh::problem::BBOProblem<Sphere>#

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

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#

class StepEllipsoid : public ioh::problem::BBOProblem<StepEllipsoid>#

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

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#

class Weierstrass : public ioh::problem::BBOProblem<Weierstrass>#

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

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_#