skip to main content
10.1145/3520304.3533960acmconferencesArticle/Chapter ViewAbstractPublication PagesgeccoConference Proceedingsconference-collections
research-article

JGEA: a modular java framework for experimenting with evolutionary computation

Published: 19 July 2022 Publication History

Abstract

We present the Java General Evolutionary Algorithm (JGEA) framework, a modular Java framework for experimenting with Evolutionary Computation (EC). We designed JGEA to be (a) aimed at providing a general interface to potentially all Evolutionary Algorithms (EAs), yet (b) solid and easy to use for people who rely on EC as a tool. To this extent, we developed JGEA including a range of ready-to-use EAs, backed by a modular architecture, comprising diverse layers of abstraction, which simplifies the implementation of new EAs and the addition of new features. Here, we detail the general structure of JGEA, focusing on its high-level components, and present the use case of the introduction of a new EA in the framework. To complete the picture, we illustrate the application of JGEA for solving a real world problem, from its formal definition in the framework to the saving and processing of results. The source code of JGEA is available at https://github.com/ericmedvet/jgea.

References

[1]
[n. d.]. Jenetics: Java Genetic Algorithm Library. https://jenetics.io/. Accessed: 2022-03-28.
[2]
David Ackley. 2012. A connectionist machine for genetic hillclimbing. Vol. 28. Springer Science & Business Media.
[3]
Stewart Adcock. 2009. Genetic algorithm utility library. URL http://gaul.sourceforge.net (2009).
[4]
Reem J Alattas, Sarosh Patel, and Tarek M Sobh. 2019. Evolutionary modular robotics: Survey and analysis. Journal of Intelligent & Robotic Systems 95, 3 (2019), 815--828.
[5]
Alberto Bartoli, Mauro Castelli, and Eric Medvet. 2018. Weighted hierarchical grammatical evolution. IEEE transactions on cybernetics 50, 2 (2018), 476--488.
[6]
Alberto Bartoli, Andrea De Lorenzo, Eric Medvet, and Giovanni Squillero. 2019. Multi-level diversity promotion strategies for grammar-guided genetic programming. Applied Soft Computing 83 (2019), 105599.
[7]
Antonio Benitez-Hidalgo, Antonio J Nebro, Jose Garcia-Nieto, Izaskun Oregi, and Javier Del Ser. 2019. jMetalPy: A Python framework for multi-objective optimization with metaheuristics. Swarm and Evolutionary Computation 51 (2019), 100598.
[8]
Hans-Georg Beyer and Hans-Paul Schwefel. 2002. Evolution strategies-a comprehensive introduction. Natural computing 1, 1 (2002), 3--52.
[9]
Jakob Bossek. 2017. ecr 2.0: a modular framework for evolutionary computation in R. In Proceedings of the genetic and evolutionary computation conference companion. 1187--1193.
[10]
Jakob Bossek. 2018. Performance assessment of multi-objective evolutionary algorithms with the R package ecr. In Proceedings of the Genetic and Evolutionary Computation Conference Companion. 1350--1356.
[11]
Lars Buitinck, Gilles Louppe, Mathieu Blondel, Fabian Pedregosa, Andreas Mueller, Olivier Grisel, Vlad Niculae, Peter Prettenhofer, Alexandre Gramfort, Jaques Grobler, et al. 2013. API design for machine learning software: experiences from the scikit-learn project. In ECML PKDD Workshop: Languages for Data Mining and Machine Learning. 108--122.
[12]
Bogdan Burlacu, Gabriel Kronberger, and Michael Kommenda. 2020. Operon C++ an efficient genetic programming framework for symbolic regression. In Proceedings of the 2020 Genetic and Evolutionary Computation Conference Companion. 1562--1570.
[13]
Pilar Caamaño, Rafael Tedín, Alejandro Paz-Lopez, and Jose Antonio Becerra. 2010. Jeaf: A java evolutionary algorithm framework. In IEEE Congress on Evolutionary Computation. IEEE, 1--8.
[14]
François Chollet et al. 2015. Keras. https://keras.io.
[15]
Vincent A Cicirello. 2020. Chips-n-salsa: A java library of customizable, hybridizable, iterative, parallel, stochastic, and self-adaptive local search algorithms. Journal of Open Source Software 5, 52 (2020).
[16]
Mark A Coletti, Eric O Scott, and Jeffrey K Bassett. 2020. Library for evolutionary algorithms in python (LEAP). In Proceedings of the 2020 Genetic and Evolutionary Computation Conference Companion. 1571--1579.
[17]
John Cona. 1995. Developing a genetic programming system. AI Expert (1995), 20--29.
[18]
Kalyanmoy Deb, Amrit Pratap, Sameer Agarwal, and TAMT Meyarivan. 2002. A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE transactions on evolutionary computation 6, 2 (2002), 182--197.
[19]
Michael Fenton, James McDermott, David Fagan, Stefan Forstenlechner, Erik Hemberg, and Michael O'Neill. 2017. Ponyge2: Grammatical evolution in python. In Proceedings of the Genetic and Evolutionary Computation Conference Companion. 1194--1201.
[20]
Andrea Ferigo, Giovanni Iacca, and Eric Medvet. 2021. Beyond body shape and brain: evolving the sensory apparatus of voxel-based soft robots. In International Conference on the Applications of Evolutionary Computation (Part of EvoStar). Springer, 210--226.
[21]
Andrea Ferigo, Giovanni Iacca, Eric Medvet, and Federico Pigozzi. 2021. Evolving Hebbian Learning Rules in Voxel-based Soft Robots. (2021).
[22]
Andrea Ferigo, Eric Medvet, and Giovanni Iacca. 2022. Optimizing the Sensory Apparatus of Voxel-Based Soft Robots Through Evolution and Babbling. SN Computer Science 3, 2 (2022), 1--17.
[23]
Félix-Antoine Fortin, François-Michel De Rainville, Marc-André Gardner Gardner, Marc Parizeau, and Christian Gagné. 2012. DEAP: Evolutionary algorithms made easy. The Journal of Machine Learning Research 13, 1 (2012), 2171--2175.
[24]
Christian Gagné and Marc Parizeau. 2002. Open BEAGLE: A New Versatile C++ Framework for Evolutionary Computation. In GECCO Late Breaking Papers. Citeseer, 161--168.
[25]
Christian Gagné and Marc Parizeau. 2006. Genericity in evolutionary computation software tools: Principles and case-study. International Journal on Artificial Intelligence Tools 15, 02 (2006), 173--194.
[26]
Nikolaus Hansen. 2016. The CMA evolution strategy: A tutorial. arXiv preprint arXiv:1604.00772 (2016).
[27]
Nikolaus Hansen and Andreas Ostermeier. 2001. Completely derandomized self-adaptation in evolution strategies. Evolutionary computation 9, 2 (2001), 159--195.
[28]
Patrick Indri, Alberto Bartoli, Eric Medvet, and Laura Nenzi. 2022. One-Shot Learning of Ensembles of Temporal Logic Formulas for Anomaly Detection in Cyber-Physical Systems. In European Conference on Genetic Programming. Springer.
[29]
Peter Jamieson, Ricardo Ferreira, and José Augusto M Nacif. 2020. GA-lapagos, an open-source c framework including a python-based system for data analysis. In Proceedings of the 2020 Genetic and Evolutionary Computation Conference Companion. 1589--1590.
[30]
Maarten Keijzer, Juan J Merelo, Gustavo Romero, and Marc Schoenauer. 2001. Evolving objects: A general purpose evolutionary computation library. In International Conference on Artificial Evolution (Evolution Artificielle). Springer, 231--242.
[31]
Mike J Keith and Martin C Martin. 1994. Genetic programming in C++: Implementation issues. Advances in genetic programming 1 (1994), 285--310.
[32]
John R Koza and Riccardo Poli. 2005. Genetic programming. In Search methodologies. Springer, 127--164.
[33]
Natalio Krasnogor and Jim Smith. 2000. MAFRA: A Java memetic algorithms framework. (2000).
[34]
David Levine. 1996. Users guide to the PGAPack parallel genetic algorithm library. Argonne National Laboratory 9700, S 8703941 (1996).
[35]
Sean Luke. 2017. ECJ then and now. In Proceedings of the genetic and evolutionary computation conference companion. 1223--1230.
[36]
Sean Luke, Liviu Panait, Gabriel Balan, Sean Paus, Zbigniew Skolicki, Jeff Bassett, Robert Hubley, and A Chircop. 2006. Ecj: A java-based evolutionary computation research system. Downloadable versions and documentation can be found at the following url: http://cs.gmu.edu/eclab/projects/ecj 880 (2006).
[37]
Eric Medvet. 2017. Hierarchical grammatical evolution. In Proceedings of the Genetic and Evolutionary Computation Conference Companion. 249--250.
[38]
Eric Medvet and Alberto Bartoli. 2018. On the automatic design of a representation for grammar-based genetic programming. In European Conference on Genetic Programming. Springer, 101--117.
[39]
Eric Medvet and Alberto Bartoli. 2020. Evolutionary Optimization of Graphs with GraphEA. In International Conference of the Italian Association for Artificial Intelligence. Springer, 83--98.
[40]
Eric Medvet and Alberto Bartoli. 2021. GraphEA: a Versatile Representation and Evolutionary Algorithm for Graphs. In Workshop on Evolutionary and Population-based Optimization (Part of AIxIA).
[41]
Eric Medvet, Alberto Bartoli, Alessio Ansuini, and Fabiano Tarlao. 2018. Observing the Population Dynamics in GE by means of the Intrinsic Dimension. arXiv preprint arXiv:1812.02504 (2018).
[42]
Eric Medvet, Alberto Bartoli, and Andrea De Lorenzo. 2018. Exploring the application of GOMEA to bit-string GE. In Proceedings of the Genetic and Evolutionary Computation Conference Companion. 270--271.
[43]
Eric Medvet, Alberto Bartoli, Andrea De Lorenzo, and Giulio Fidel. 2020. Evolution of distributed neural controllers for voxel-based soft robots. In Proceedings of the 2020 Genetic and Evolutionary Computation Conference. 112--120.
[44]
Eric Medvet, Alberto Bartoli, Andrea De Lorenzo, and Stefano Seriani. 2020. 2D-VSR-Sim: a simulation tool for the optimization of 2-D voxel-based soft robots. SoftwareX 12 (2020), 100573.
[45]
Eric Medvet, Alberto Bartoli, Andrea De Lorenzo, and Stefano Seriani. 2020. Design, validation, and case studies of 2D-VSR-Sim, an optimization-friendly simulator of 2-D Voxel-based Soft Robots. arXiv preprint arXiv:2001.08617 (2020).
[46]
Eric Medvet, Alberto Bartoli, Andrea De Lorenzo, and Fabiano Tarlao. 2018. GOMGE: Gene-pool optimal mixing on grammatical evolution. In International Conference on Parallel Problem Solving from Nature. Springer, 223--235.
[47]
Eric Medvet, Alberto Bartoli, Andrea De Lorenzo, and Fabiano Tarlao. 2019. Designing automatically a representation for grammatical evolution. Genetic Programming and Evolvable Machines 20, 1 (2019), 37--65.
[48]
Eric Medvet, Alberto Bartoli, Federico Pigozzi, and Marco Rochelli. 2021. Biodiversity in evolved voxel-based soft robots. In Proceedings of the Genetic and Evolutionary Computation Conference. 129--137.
[49]
Eric Medvet, Stefano Seriani, Alberto Bartoli, and Paolo Gallina. 2019. Design of powered floor systems for mobile robots with differential evolution. In International Conference on the Applications of Evolutionary Computation (Part of EvoStar). Springer, 19--32.
[50]
Eric Medvet, Stefano Seriani, Alberto Bartoli, and Paolo Gallina. 2020. Evolutionary optimization of sliding contact positions in powered floor systems for mobile robots. at-Automatisierungstechnik 68, 2 (2020), 97--109.
[51]
Eric Medvet, Marco Virgolin, Mauro Castelli, Peter AN Bosman, Ivo Gonçalves, and Tea Tušar. 2018. Unveiling evolutionary algorithm representation with DU maps. Genetic Programming and Evolvable Machines 19, 3 (2018), 351--389.
[52]
Juan-Julián Merelo, Pedro Castillo, Antonio Mora, Anna Esparcia-Alcázar, and Víctor Rivas-Santos. 2014. NodEO, a multi-paradigm distributed evolutionary algorithm platform in JavaScript. In Proceedings of the Companion Publication of the 2014 Annual Conference on Genetic and Evolutionary Computation. 1155--1162.
[53]
Juan J Merelo, Pedro A Castillo, Pablo García-Sánchez, Paloma de las Cuevas, and Mario García Valdez. 2016. NodIO: A Framework and Architecture for Pool-based Evolutionary Computation. In Proceedings of the 2016 on Genetic and Evolutionary Computation Conference Companion. 1323--1330.
[54]
Jean-Baptiste Mouret and Jeff Clune. 2015. Illuminating search spaces by mapping elites. arXiv preprint arXiv:1504.04909 (2015).
[55]
Heinz Mühlenbein, M Schomisch, and Joachim Born. 1991. The parallel genetic algorithm as function optimizer. Parallel computing 17, 6--7 (1991), 619--632.
[56]
Giorgia Nadizar, Eric Medvet, and Karine Miras. 2022. On the Schedule for Morphological Development of Evolved Modular Soft Robots. In European Conference on Genetic Programming (Part of EvoStar). Springer, 146--161.
[57]
Giorgia Nadizar, Eric Medvet, Stefano Nichele, and Sidney Pontes-Filho. 2022. Collective control of modular soft robots via embodied Spiking Neural Cellular Automata. arXiv preprint arXiv:2204.02099 (2022).
[58]
Giorgia Nadizar, Eric Medvet, Felice Andrea Pellegrino, Marco Zullich, and Stefano Nichele. 2021. On the effects of pruning on evolved neural controllers for soft robots. In Proceedings of the Genetic and Evolutionary Computation Conference Companion. 1744--1752.
[59]
Giorgia Nadizar, Eric Medvet, Hola Huse Ramstad, Stefano Nichele, Felice Andrea Pellegrino, and Marco Zullich. 2022. Merging pruning and neuroevolution: towards robust and efficient controllers for modular soft robots. The Knowledge Engineering Review 37 (2022).
[60]
Ricardo Nieto-Fuentes and Carlos Segura. 2022. GP-DMD: a genetic programming variant with dynamic management of diversity. Genetic Programming and Evolvable Machines (2022), 1--26.
[61]
Stefano Nolfi. 2021. Behavioral and cognitive robotics: an adaptive perspective. Stefano Nolfi.
[62]
Mariusz Nowostawski and Riccardo Poli. 1999. Parallel genetic algorithm taxonomy. In 1999 Third International Conference on Knowledge-Based Intelligent Information Engineering Systems. Proceedings (Cat. No. 99TH8410). Ieee, 88--92.
[63]
Michael O'Neill and Conor Ryan. 2001. Grammatical evolution. IEEE Transactions on Evolutionary Computation 5, 4 (2001), 349--358.
[64]
Edward Pantridge and Lee Spector. 2017. PyshGP: PushGP in python. In Proceedings of the Genetic and Evolutionary Computation Conference Companion. 1255--1262.
[65]
Adam Paszke, Sam Gross, Francisco Massa, Adam Lerer, James Bradbury, Gregory Chanan, Trevor Killeen, Zeming Lin, Natalia Gimelshein, Luca Antiga, Alban Desmaison, Andreas Kopf, Edward Yang, Zachary DeVito, Martin Raison, Alykhan Tejani, Sasank Chilamkurthy, Benoit Steiner, Lu Fang, Junjie Bai, and Soumith Chintala. 2019. PyTorch: An Imperative Style, High-Performance Deep Learning Library. In Advances in Neural Information Processing Systems 32, H. Wallach, H. Larochelle, A. Beygelzimer, F. d'Alché-Buc, E. Fox, and R. Garnett (Eds.). Curran Associates, Inc., 8024--8035. http://papers.neurips.cc/paper/9015-pytorchan-imperative-style-high-performance-deep-learning-library.pdf
[66]
Federico Pigozzi and Eric Medvet. 2022. Evolving Modularity in Soft Robots through an Embodied and Self-Organizing Neural Controller. Artificial Life (2022).
[67]
Federico Pigozzi, Eric Medvet, and Laura Nenzi. 2021. Mining Road Traffic Rules with Signal Temporal Logic and Grammar-Based Genetic Programming. Applied Sciences 11, 22 (2021), 10573.
[68]
Federico Pigozzi, Yujin Tang, Eric Medvet, and David Ha. 2022. Evolving Modular Soft Robots without Explicit Inter-Module Communication using Local Self-Attention. In Proceedings of the Genetic and Evolutionary Computation Conference.
[69]
Aurora Ramírez, José Raúl Romero, and Sebastián Ventura. 2015. An extensible JCLEC-based solution for the implementation of multi-objective evolutionary algorithms. In Proceedings of the Companion Publication of the 2015 Annual Conference on Genetic and Evolutionary Computation. 1085--1092.
[70]
Paweł Renc, Patryk Orzechowski, Aleksander Byrski, Jarosław Wăs, and Jason H Moore. 2021. EBIC. JL: an efficient implementation of evolutionary biclustering algorithm in Julia. In Proceedings of the Genetic and Evolutionary Computation Conference Companion. 1540--1548.
[71]
A Rummler. 2007. Evolvica: a Java framework for evolutionary algorithms.
[72]
Andreas Rummler and Gerd Scarbata. 2001. eaLib---A Java Frameword for Implementation of Evolutionary Algorithms. In International Conference on Computational Intelligence. Springer, 92--102.
[73]
Tim Salimans, Jonathan Ho, Xi Chen, Szymon Sidor, and Ilya Sutskever. 2017. Evolution strategies as a scalable alternative to reinforcement learning. arXiv preprint arXiv:1703.03864 (2017).
[74]
Eric O Scott and Sean Luke. 2019. ECJ at 20: toward a general metaheuristics toolkit. In Proceedings of the genetic and evolutionary computation conference companion. 1391--1398.
[75]
Rainer Storn and Kenneth Price. 1997. Differential evolution-a simple and efficient heuristic for global optimization over continuous spaces. Journal of global optimization 11, 4 (1997), 341--359.
[76]
Jacopo Talamini, Eric Medvet, and Stefano Nichele. 2021. Criticality-Driven Evolution of Adaptable Morphologies of Voxel-Based Soft-Robots. Frontiers in Robotics and AI 8 (2021), 172.
[77]
Yujin Tang, Yingtao Tian, and David Ha. 2022. EvoJAX: Hardware-Accelerated Neuroevolution. arXiv preprint arXiv:2202.05008 (2022).
[78]
Aimo Törn and Antanas Žilinskas. 1989. Global optimization. Springer.
[79]
Leonardo Vanneschi, Mauro Castelli, and Luca Manzoni. 2011. The k landscapes: a tunably difficult benchmark for genetic programming. In Proceedings of the 13th annual conference on Genetic and evolutionary computation. 1467--1474.
[80]
Sebastián Ventura, Cristóbal Romero, Amelia Zafra, José A Delgado, and César Hervás. 2008. JCLEC: a Java framework for evolutionary computation. Soft computing 12, 4 (2008), 381--392.
[81]
Peter A Whigham et al. 1995. Grammatically-based genetic programming. In Proceedings of the workshop on genetic programming: from theory to real-world applications, Vol. 16. Citeseer, 33--41.
[82]
David R White, James McDermott, Mauro Castelli, Luca Manzoni, Brian W Goldman, Gabriel Kronberger, Wojciech Jaśkowski, Una-May O'Reilly, and Sean Luke. 2013. Better GP benchmarks: community survey results and proposals. Genetic Programming and Evolvable Machines 14, 1 (2013), 3--29.
[83]
Douglas Zongker, Bill Punch, and Bill Rand. 1995. lil-gp 1.0 User's Manual. Dept. of Computer Science, Michigan State University 1 (1995).

Cited By

View all
  • (2025)Totipotent neural controllers for modular soft robots: Achieving specialization in body–brain co-evolution through Hebbian learningNeurocomputing10.1016/j.neucom.2024.128811614(128811)Online publication date: Jan-2025
  • (2024)Eventually, all you need is a simple evolutionary algorithm (for neuroevolution of continuous control policies)Proceedings of the Genetic and Evolutionary Computation Conference Companion10.1145/3638530.3664112(1904-1913)Online publication date: 14-Jul-2024
  • (2024)The Role of the Substrate in CA-based Evolutionary AlgorithmsProceedings of the Genetic and Evolutionary Computation Conference10.1145/3638529.3654112(768-777)Online publication date: 14-Jul-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

GECCO '22: Proceedings of the Genetic and Evolutionary Computation Conference Companion
July 2022
2395 pages
ISBN:9781450392686
DOI:10.1145/3520304
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 July 2022

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. evolutionary algorithms
  2. evolutionary computation software tools

Qualifiers

  • Research-article

Funding Sources

  • Erasmus+

Conference

GECCO '22
Sponsor:

Acceptance Rates

Overall Acceptance Rate 1,669 of 4,410 submissions, 38%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)16
  • Downloads (Last 6 weeks)1
Reflects downloads up to 23 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2025)Totipotent neural controllers for modular soft robots: Achieving specialization in body–brain co-evolution through Hebbian learningNeurocomputing10.1016/j.neucom.2024.128811614(128811)Online publication date: Jan-2025
  • (2024)Eventually, all you need is a simple evolutionary algorithm (for neuroevolution of continuous control policies)Proceedings of the Genetic and Evolutionary Computation Conference Companion10.1145/3638530.3664112(1904-1913)Online publication date: 14-Jul-2024
  • (2024)The Role of the Substrate in CA-based Evolutionary AlgorithmsProceedings of the Genetic and Evolutionary Computation Conference10.1145/3638529.3654112(768-777)Online publication date: 14-Jul-2024
  • (2024)Neuron-centric Hebbian LearningProceedings of the Genetic and Evolutionary Computation Conference10.1145/3638529.3654011(87-95)Online publication date: 14-Jul-2024
  • (2024)GP for Continuous Control: Teacher or Learner? The Case of Simulated Modular Soft RobotsGenetic Programming Theory and Practice XX10.1007/978-981-99-8413-8_11(203-224)Online publication date: 18-Feb-2024
  • (2024)Evolutionary Computation Meets Stream ProcessingApplications of Evolutionary Computation10.1007/978-3-031-56852-7_24(377-393)Online publication date: 3-Mar-2024
  • (2023)PyScheduling: an Extensible and User-Friendly Python Framework for Scheduling ProblemsProceedings of the Companion Conference on Genetic and Evolutionary Computation10.1145/3583133.3596366(1855-1863)Online publication date: 15-Jul-2023
  • (2023)Gaggle: Genetic Algorithms on the GPU using PyTorchProceedings of the Companion Conference on Genetic and Evolutionary Computation10.1145/3583133.3596356(2358-2361)Online publication date: 15-Jul-2023
  • (2023)A General Purpose Representation and Adaptive EA for Evolving GraphsProceedings of the Genetic and Evolutionary Computation Conference10.1145/3583131.3590431(1156-1164)Online publication date: 15-Jul-2023
  • (2023)A Fully-distributed Shape-aware Neural Controller for Modular RobotsProceedings of the Genetic and Evolutionary Computation Conference10.1145/3583131.3590419(184-192)Online publication date: 15-Jul-2023
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy