Skip to main content

evox

Project description

EvoX Logo

EvoX Paper on arXiv EvoX Documentation EvoX Build Status

🌟Distributed GPU-accelerated Framework for Scalable Evolutionary Computation🌟


Building upon JAX and Ray, EvoX offers a comprehensive suite of 50+ Evolutionary Algorithms (EAs) and a wide range of 100+ Benchmark Problems, all benefiting from distributed GPU-acceleration. It facilitates efficient exploration of complex optimization landscapes, effective tackling of black-box optimization challenges, and deep dives into neuroevolution with Brax. With a foundation in functional programming and hierarchical state management, EvoX offers a user-friendly and modular experience. For more details, please refer to our Paper and Documentation.


Key Features

  • 🚀 Fast Performance:

    • Experience GPU-Accelerated optimization, achieving speeds 100x faster than traditional methods.
    • Leverage the power of Distributed Workflows for even more rapid optimization.
  • 🌐 Versatile Optimization Suite:

    • Cater to all your needs with both Single-objective and Multi-objective optimization capabilities.
    • Dive into a comprehensive library of Benchmark Problems, ensuring robust testing and evaluation.
    • Explore the frontier of AI with extensive tools for Neuroevolution tasks.
  • 🛠️ Designed for Simplicity:

    • Embrace the elegance of Functional Programming, simplifying complex algorithmic compositions.
    • Benefit from Hierarchical State Management, ensuring modular and clean programming.
    • Jumpstart your journey with our Detailed Tutorial.

Comprehensive Evolutionary Algorithms

Single-Objective Optimization

Category Algorithm Names
Differential Evolution CoDE, JaDE, SaDE, SHADE, IMODE, ...
Evolution Strategies CMA-ES, PGPE, OpenES, CR-FM-NES, xNES, ...
Particle Swarm Optimization FIPS, CSO, CPSO, CLPSO, SL-PSO, ...

Multi-Objective Optimization

Category Algorithm Names
Dominance-based NSGA-II, NSGA-III, SPEA2, BiGE, KnEA, ...
Decomposition-based MOEA/D, RVEA, t-DEA, MOEAD-M2M, EAG-MOEAD, ...
Indicator-based IBEA, HypE, SRA, MaOEA-IGD, AR-MOEA, ...

For a comprehensive list and further details of all algorithms, please check the API Documentation.

Diverse Benchmark Problems

Category Problem Names
Numerical DTLZ, LSMOP, MaF, ZDT, CEC'22, ...
Neuroevolution Brax, Gym, TorchVision Dataset, ...

For a comprehensive list and further details of all benchmark problems, please check the API Documentation.

Setting Up EvoX

Install evox effortlessly via pip:

pip install evox

Note: To install EvoX with JAX and hardware acceleration capabilities, please refer to our comprehensive Installation Guide.

Quick Start

Kickstart your journey with EvoX in just a few simple steps:

  1. Import necessary modules:
import evox
from evox import algorithms, problems, workflows
  1. Configure an algorithm and define a problem:
pso = algorithms.PSO(
    lb=jnp.full(shape=(2,), fill_value=-32),
    ub=jnp.full(shape=(2,), fill_value=32),
    pop_size=100,
)
ackley = problems.numerical.Ackley()
  1. Compose and initialize the workflow:
workflow = workflows.StdWorkflow(pso, ackley)
key = jax.random.PRNGKey(42)
state = workflow.init(key)
  1. Run the workflow:
# Execute the workflow for 100 iterations
for i in range(100):
    state = workflow.step(state)

Use-cases and Applications

Try out ready-to-play examples in your browser with Colab:

Example Link
Basic Usage Open in Colab
Numerical Optimization Open in Colab
Neuroevolution with Gym Open in Colab
Neuroevolution with Brax Open in Colab
Custom Algorithm/Problem Open in Colab

For more use-cases and applications, pleae check out Example Directory.

Community & Support

  • Engage in discussions and share your experiences on GitHub Discussion Board.
  • Join our QQ group (ID: 297969717).
  • Help with the translation of the documentation on Weblate.

Translation status

Sister Projects

  • EvoXBench: A benchmark platform for Neural Architecutre Search (NAS) without the requirement of GPUs/PyTorch/Tensorflow, supporting various programming languages such as Java, Matlab, Python, ect. Check out here.

Citing EvoX

If you use EvoX in your research and want to cite it in your work, please use:

@article{evox,
  title = {{EvoX}: {A} {Distributed} {GPU}-accelerated {Framework} for {Scalable} {Evolutionary} {Computation}},
  author = {Huang, Beichen and Cheng, Ran and Li, Zhuozhao and Jin, Yaochu and Tan, Kay Chen},
  journal = {arXiv preprint arXiv:2301.12457},
  eprint = {2301.12457},
  year = {2023}
}

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

evox-0.6.3.tar.gz (302.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

evox-0.6.3-py3-none-any.whl (371.8 kB view details)

Uploaded Python 3

File details

Details for the file evox-0.6.3.tar.gz.

File metadata

  • Download URL: evox-0.6.3.tar.gz
  • Upload date:
  • Size: 302.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for evox-0.6.3.tar.gz
Algorithm Hash digest
SHA256 e0029010c2def35be4a21e10ae3081e9fb2d16d090317364cce9d8db7a2ab124
MD5 929ec28df6858e042fd61da8a4bdc9ac
BLAKE2b-256 f33835e425f1e4c16361681854beb5734f15363eca263bb65f2b5d02f4e301ce

See more details on using hashes here.

File details

Details for the file evox-0.6.3-py3-none-any.whl.

File metadata

  • Download URL: evox-0.6.3-py3-none-any.whl
  • Upload date:
  • Size: 371.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for evox-0.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8bc8e59860fa77679d64bb5a8a8d8558725dd3a5f0e1d8d0105f413c6ad402b7
MD5 a7122d2d9be56edb474b654226091b59
BLAKE2b-256 a4090cbbb4330143b98b48464e01f333aeb417a71f730364c7105c218236a93c

See more details on using hashes here.

Supported by

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