Package: evox
🌟Distributed GPU-accelerated Framework for Scalable Evolutionary Computation🌟Building uponJAXandRay, EvoX offers a comprehensive suite of50+ Evolutionary Algorithms (EAs)and a wide range of100+ 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 withBrax. With a foundation in functional programming and hierarchical state management, EvoX offers a user-friendly and modular experience. For more details, please refer to ourPaperandDocumentation/文档.Key Features🚀Fast Performance:ExperienceGPU-Acceleratedoptimization, achieving speeds over 100x faster than traditional methods.Leverage the power ofDistributed Workflowsfor even more rapid optimization.🌐Versatile Optimization Suite:Cater to all your needs with bothSingle-objectiveandMulti-objectiveoptimization capabilities.Dive into a comprehensive library ofBenchmark Problems, ensuring robust testing and evaluation.Explore the frontier of AI with extensive tools forNeuroevolutiontasks.🛠️Designed for Simplicity:Embrace the elegance ofFunctional Programming, simplifying complex algorithmic compositions.Benefit fromHierarchical State Management, ensuring modular and clean programming.Jumpstart your journey with ourDetailed Tutorial.Comprehensive Evolutionary AlgorithmsSingle-Objective OptimizationCategoryAlgorithm NamesDifferential EvolutionCoDE, JaDE, SaDE, SHADE, IMODE, ...Evolution StrategyCMA-ES, PGPE, OpenES, CR-FM-NES, xNES, ...Particle Swarm OptimizationFIPS, CSO, CPSO, CLPSO, SL-PSO, ...Multi-Objective OptimizationCategoryAlgorithm NamesDominance-basedNSGA-II, NSGA-III, SPEA2, BiGE, KnEA, ...Decomposition-basedMOEA/D, RVEA, t-DEA, MOEAD-M2M, EAG-MOEAD, ...Indicator-basedIBEA, HypE, SRA, MaOEA-IGD, AR-MOEA, ...For a comprehensive list and further details of all algorithms, please check theAPI Documentation.Diverse Benchmark ProblemsCategoryProblem NamesNumericalDTLZ, LSMOP, MaF, ZDT, CEC'22,  ...NeuroevolutionBrax, Gym, TorchVision Dataset, ...For a comprehensive list and further details of all benchmark problems, please check theAPI Documentation.Setting Up EvoXInstallevoxeffortlessly viapip:pipinstallevoxNote: To install EvoX with JAX and hardware acceleration capabilities, please refer to our comprehensiveInstallation Guide.Quick StartKickstart your journey with EvoX in just a few simple steps:Import necessary modules:importevoxfromevoximportalgorithms,problems,workflowsConfigure 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()Compose and initialize the workflow:workflow=workflows.StdWorkflow(pso,ackley)key=jax.random.PRNGKey(42)state=workflow.init(key)Run the workflow:# Execute the workflow for 100 iterationsforiinrange(100):state=workflow.step(state)Use-cases and ApplicationsTry out ready-to-play examples in your browser with Colab:ExampleLinkBasic UsageNumerical OptimizationNeuroevolution with GymNeuroevolution with BraxCustom Algorithm/ProblemFor more use-cases and applications, pleae check outExample Directory.Community & SupportEngage in discussions and share your experiences onGitHub Discussion Board.Join our QQ group (ID: 297969717).Help with the translation of the documentation onWeblate.
We currently support translations in two languages,English/中文.Official Website:https://evox.group/Sister ProjectsEvoXBench: 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 outhere.Citing EvoXIf 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}
}