Skip to main content

evox

Project description

EvoX Logo

arXiv Documentation PyPI-Version Python-Version Discord Server QQ Group GitHub User's Stars


🌟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/Environments, 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 over 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/Environments, ensuring robust testing and evaluation.
    • Explore the frontier of AI with extensive tools for Neuroevolution/RL tasks.
  • 🛠️ Designed for Simplicity:

    • Embrace the elegance of Functional Programming, simplifying complex algorithmic compositions.
    • Benefit from Hierarchical State Management, ensuring modular and clean programming.

Main Contents

Evolutionary Algorithms for Single-objective Optimization

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

Evolutionary Algorithms for Multi-objective Optimization

Category Algorithms
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.

Benchmark Problems/Environments

Category Problems/Environments
Numerical DTLZ, LSMOP, MaF, ZDT, CEC'22, ...
Neuroevolution/RL Brax, Gym, TorchVision Dataset, ...

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

Setting Up EvoX

Install evox effortlessly via pip:

pip install evox

Note: To setup EvoX with GPU acceleration capabilities, you will need to setup JAX first. For detials, please refer to our comprehensive Installation Guide. Additionally, you can watch our instructional videos:

🎥 EvoX Installation Guide (Linux)

🎥 EvoX Installation Guide (Windows)

🎥 EvoX 安装指南 (Linux)

🎥 EvoX 安装指南 (Windows)

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

Sister Projects

  • TensorNEAT: Tensorized NeuroEvolution of Augmenting Topologies (NEAT) for GPU Acceleration. Check out here.
  • TensorRVEA: Tensorized Reference Vector Guided Evolutionary Algorithm (RVEA) for GPU Acceleration. Check out here.
  • TensorACO: Tensorized Ant Colony Optimization (ACO) for GPU Acceleration. Check out here.
  • 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 = {IEEE Transactions on Evolutionary Computation},
  year = 2024,
  doi = {10.1109/TEVC.2024.3388550}
}

Star History

Star History Chart

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.9.0rc2.tar.gz (321.4 kB view details)

Uploaded Source

Built Distribution

evox-0.9.0rc2-py3-none-any.whl (393.5 kB view details)

Uploaded Python 3

File details

Details for the file evox-0.9.0rc2.tar.gz.

File metadata

  • Download URL: evox-0.9.0rc2.tar.gz
  • Upload date:
  • Size: 321.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for evox-0.9.0rc2.tar.gz
Algorithm Hash digest
SHA256 bb499890543b0e72164f3787f89310bf20b52c4d4074a259f562d5ef3052d93d
MD5 096228934d14da4185da7c1abe599a90
BLAKE2b-256 076c2611637be66bb3e48739b3da4cafbfcf87b756c448544641ea61a436a51f

See more details on using hashes here.

File details

Details for the file evox-0.9.0rc2-py3-none-any.whl.

File metadata

  • Download URL: evox-0.9.0rc2-py3-none-any.whl
  • Upload date:
  • Size: 393.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for evox-0.9.0rc2-py3-none-any.whl
Algorithm Hash digest
SHA256 aa69ad2a2fb532ec5ac63fec9dc4af7a89314c39511d10adac62fb8df19fda22
MD5 36bbc9b0b448594f1fca6dcd7ce5b857
BLAKE2b-256 a7d3981b68a6e7d1f325743a10d1093d1da5128b8f6385ba3c63725e5294b62e

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