Skip to main content

Vectorized BBOB functions in torch

Project description

BBOB torch

Implementation of BBOB functions (Real-Parameter Black-Box Optimization Benchmarking) as specified by https://coco.gforge.inria.fr/downloads/download16.00/bbobdocfunctions.pdf.

All the functions are vectorized and allow to pass potentional solutions in the same (num_of_solutions, problem_dimension).

Problem description

All the problems are represented by Problem class. This class allows to:

  • Evaluate your solutions by directly calling it problem(solutions).
  • Get problem dimension problem.dim.
  • Get optimal solution resp. optimal function value using problem.x_opt resp. problem.f_opt.
  • Get boundaries of solution using problem.min resp. problem.max for each dimension.
  • Change underlying type or device using problem.type(torch.float16) and problem.ty(torch.device('cuda:0')).

Problem creation

You can create new instance of each problem by calling corresponding create_fxx function. This function accepts problem dimension and can optionally accept device and seed.

import torch
import bbobtorch
problem = bbobtorch.create_f09(40, dev=torch.device('cuda:0'), seed=42)

Example

import matplotlib.pyplot as plt
import numpy as np
import torch
import bbobtorch

x = torch.arange(-5,5, 0.01, dtype=torch.float32)
grid = torch.stack(torch.meshgrid(x, x), -1)
flat_grid = torch.reshape(grid, (-1,2))
xgrid, ygrid = np.meshgrid(x.numpy(), x.numpy())

fn = bbobtorch.create_f22(2, seed=42)  # two dimension with seed 42
results = fn(flat_grid)
results_grid = torch.reshape(results, xgrid.shape) - fn.f_opt

plt.figure(figsize=(6,6))
plt.pcolormesh(xgrid, ygrid, results_grid, cmap='inferno', shading='nearest')
plt.scatter(*fn.x_opt.tolist()[::-1], marker='x', c='r')
plt.show()

BBOB f22 graph

You can view all the functions in attached PDF.


Author: Patrik Valkovič

License: MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

BBOBtorch-1.0.1.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

BBOBtorch-1.0.1-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file BBOBtorch-1.0.1.tar.gz.

File metadata

  • Download URL: BBOBtorch-1.0.1.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.0.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for BBOBtorch-1.0.1.tar.gz
Algorithm Hash digest
SHA256 6718631a3d0fe6944b339610ce772a1235f4c83410e8005dec3f04a863fe2c6b
MD5 09c4fd228196ddb46a129dbdad253ca8
BLAKE2b-256 75dfb963ca8d475c9ad6d191443b3804d4112e8d930e02c40ec1e39eac77ab3e

See more details on using hashes here.

File details

Details for the file BBOBtorch-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: BBOBtorch-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.0.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for BBOBtorch-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3fe277d706546e2a8597f0443266841fc175b73a3191344f3feb8c78040a3bb4
MD5 816ecb1ffabdf41c68cf4f46d6c010b2
BLAKE2b-256 99322abfa0aa45e7858988070463bb9214aa84e47ff8d53fbee5ebade692aabc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page