Skip to main content

Benchmarks for large scale, model-based optimization.

Project description

Evobench

Evobench is a collection of benchmark problems dedicated for model-based large scale optimization.

Overview

This package contains following problems.

Discrete

  • trap
  • step trap
  • bimodal
  • step bimodal
  • HIFF
  • Ising Spin Glass

Continous

  • trap
  • multimodal
  • step multimodal
  • sawtooth

Getting started

pip install evobench
import evobench


trap = evobench.discrete.Trap(block_size=5, repetitions=3)
initialization = evobench.discrete.initialization.Uniform(population_size=4e3)

population = initialization.initialize_population(trap.genome_size)
fitness = trap.evaluate_population(population)

You can also evaluate single solution.

fitness = trap.evaluate_solution(population.solutions[0])

Everytime you're evaluating solutions we increment ffe counter. You can access it through benchmark instance.

print(trap.ffe)

Ising Spin Glass

To instantiate ISG you neet to pass specific problem configuaration.

from evobench.discrete import IsingSpinGlass


isg = IsingSpinGlass('IsingSpinGlass_pm_16_0')

You can find 5,000 instances at evobench\discrete\isg\data folder. Instances vary in length and complexity.

How to implement your own function

Fully separable

You need to inherit Separable class from evobench.separable. Then just implement def evaluate_block(self, block: np.ndarray) -> int method. Best follow evobench.discrete.trap implementation.

Other

Inherit Benchmark class from evobench.benchmark. Then implement def _evaluate_solution(self, solution: Solution) -> float method.

Coming soon

We'll be adding more problems in near future. If you're looking for any particular problem, please mail us or open an issue.

We're thinking about interactive visualizations, so you can sample the space and check how it looks. It's easier than digging through definitions.

We're working on linkage quality metrics. Once they're published, we'll incorporate them to this package.

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

evobench-0.0.2.tar.gz (10.5 kB view hashes)

Uploaded Source

Built Distribution

evobench-0.0.2-py3-none-any.whl (25.1 kB view hashes)

Uploaded Python 3

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