/JEAF

Java Evolutionary Algorithm Framework

Primary LanguageHTML

The JAVA Evolutionary Algorithm Framework (JEAF) is a collection of JAVA libraries developed in the Integrated Group for Engineering Research (GII) containing several evolutionary algorithms, real-parameter benchmark functions and analysis tools that can be applied in evolutionary computation R&D. This framework is intensively used by the researchers of the GII and, consequently, it is in continuous improvement and extension. The main properties of JEAF are the following:

  • Multiplatform: JEAF is implemented in Java. The required version is 1.5 or higher.
  • Modular: the design is profoundly object oriented, maintaining the maximum possible independence between the different components.
  • Flexible: JEAF was designed not only to support current evolutionary algorithms, but also whatever combination of operators a given user could imagine. This is achieved by splitting the evolutionary algorithm into stages and implementing each stage with an operator chain of arbitrary length. In addition, many aspects of the already implemented common operators can also be configured with plug-ins.
  • Efficiency: Evolutionary algorithms are time consuming, especially if they are applied to some engineering field, and the choice of Java already has a negative impact if we compare that language to C or C++. So, some decisions were carefully taken to maximize the efficiency of the implementation.
  • Easy-to-use: taking into account that JEAF was going to be used by other researchers who do not belong to computer science area, it was designed so that users do not need to know its inner working, only the global behavior and the holes that have to be filled for solving a particular problem.
  • Analysis tools: besides different evolutionary algorithms and benchmark functions, this framework provides several analysis tools and support to implement even more. These tools are developed with the aim of facilitating the comparison of results using different algorithms or different versions of the same algorithm. Evolutionary algorithm analysis tools and function analysis tools are included.
  • Distributed processing supported: JEAF supports a very flexible distribution model for the evolutionary process, using MPI as the communication protocol. Several models are supported with different topologies and ways of exchanging genetic material. The models supported can also be combined to create hybrid distribution schemes that adapt to the particular problem and / or hardware availability.

Go to JEAF wiki or JEAF repository for more information and / or download.