EvA2 (an Evolutionary Algorithms framework, revised version 2) is a comprehensive heuristic optimization framework with emphasis on Evolutionary Algorithms implemented in Java™. It is a revised version of the JavaEvA optimization toolbox, which has been developed as a resumption of the former EvA software package.

EvA2 aims at two groups of users. Firstly, the end user who does not know much about the theory of Evolutionary Algorithms, but wants to use Evolutionary Algorithms to solve an application problem. Secondly, the scientific user who wants to investigate the performance of different optimization algorithms or wants to compare the effect of alternative or specialized evolutionary or heuristic operators. The latter usually knows more about evolutionary algorithms or heuristic optimization and is able to extend EvA2 by adding specific optimization strategies or solution representations.

EvA2 is being used as teaching aid in lecture tutorials, as a developing platform in student research projects and applied to numerous optimisation problems within active research and ongoing industrial cooperations.

Features of EvA 2

  • An easy-to-use graphical user interface with access to the optimization parameters
  • Derivation free optimization methods:
    • Classical techniques such as multi-start Hill Climbing or Simulated Annealing
    • Evolution Strategies (ES)
    • Genetic Algorithms (GA)
    • Differential Evolution (DE)
    • Particle Swarm Optimization (PSO)
    • Clustering-based Niching PSO and EA (CBN-PSO, CBN-EA),
    • CMA-ES Niching using Dynamic Peak Identification (DPI)
    • TRIBES, a parameter-free PSO
    • Scatter Search, Binary Scatter Search
    • Population-based Incremental Learning (PBIL)
    • Bayesian Optimization Algorithm
    • ... and several more
  • Job list view for statistical comparison of multirun experiments
  • Multi-objective optimization (MOEA) for problems with multiple criteria
  • Multi-modal optimization and post-processing for refinement of multiple solutions
  • Interfaces for external optimization from MATLAB™ or using standalone executables
  • Client-server architecture using Java Remote Method Invocation (RMI) allowing distributed optimization (Island-model EA)
  • An extensible API allowing direct integration of new classes into the GUI


The brand name Java is a registered trademark of Sun Microsystems, Inc. in the United States and other countries.

The brand name MATLAB is a registered trademark of The Mathworks, Inc. in the United States and other countries.