Java Evolutionary Computation Toolkit
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
ECJ is a freeware evolutionary computation research system written in Java. It is a framework that supports a variety of evolutionary computation techniques, such as genetic algorithms, genetic programming, evolution strategies, coevolution, particle swarm optimization, and differential evolution. The framework models iterative evolutionary processes using a series of pipelines arranged to connect one or more subpopulations of individuals with selection, breeding (such as crossover, and mutation operators that produce new individuals. The framework is open source and is distributed under the Academic Free License. ECJ was created by Sean Luke, a computer science professor at George Mason University, and is maintained by Sean Luke and a variety of contributors.
Features (listed from ECJ's project page):
General Features:
- GUI with charting
- Platform-independent checkpointing and logging
- Hierarchical parameter files
- Multithreading
- Mersenne Twister Random Number Generators
- Abstractions for implementing a variety of EC forms.
EC Features:
- Asynchronous island models over TCP/IP
- Master/Slave evaluation over multiple processors
- Genetic Algorithms/Programming style Steady State and Generational evolution, with or without Elitism
- Evolutionary-Strategies style (mu, lambda) and (mu+lambda) evolution
- Very flexible breeding architecture
- Many selection operators
- Multiple subpopulations and species
- Inter-subpopulation exchanges
- Reading populations from files
- Single- and Multi-population coevolution
- SPEA2 multiobjective optimization
- Particle Swarm Optimization
- Differential Evolution
- Spatially embedded evolutionary algorithms
- Hooks for other multiobjective optimization methods
- Packages for parsimony pressure
GP Tree Representations:
- Set-based Strongly Typed Genetic Programming
- Ephemeral Random Constants
- Automatically Defined Functions and Automatically Defined Macros
- Multiple tree forests
- Six tree-creation algorithms
- Extensive set of GP breeding operators
- Seven pre-done GP application problem domains (ant, regression, multiplexer, lawnmower, parity, two-box, edge)
Vector (GA/ES) Representations:
- Fixed-Length and Variable-Length Genomes
- Arbitrary representations
- Five pre-done vector application problem domains (sum, rosenbrock, sphere, step, noisy-quartic)
Other Representations:
- NEAT
- Multiset-based genomes in the rule package, for evolving Pitt-approach rulesets or other set-based representations.
See also
- Paradiseo, a metaheuristics framework
- MOEA Framework, an open source Java framework for multiobjective evolutionary algorithms
References
- ECJ project page
- Wilson, G. C. McIntyre, A. Heywood, M. I. (2004), "Resource Review: Three Open Source Systems for Evolving Programs-Lilgp, ECJ and Grammatical Evolution", Genetic Programming And Evolvable Machines, 5 (19): 103–105, Kluwer Academic Publishers. ISSN 1389-2576
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.