EvoLP.jl: A playground for Evolutionary Computation in Julia

Conference paper at Norwegian AI Society Symposium 2023

Abstract

Optimisation is highly relevant in many problems in artificial intelligence, machine learning, engineering and statistics. In these situations, optimisation by means of evolutionary computation becomes especially relevant as it makes few assumptions (such as differentiability) about the objective function. Problems such as these represent various research opportunities, both in the Norwegian and European contexts. In this work we present an open-source software framework, EvoLP.jl, as an effort to support the research in this niche. EvoLP.jl is a Julia package that implements reusable pieces of code for experimenting with single-objective evolutionary computation algorithms and its components. The framework is composed of blocks that span the separate phases of the evolutionary process: population initialisation,selection, crossover, and mutation. These blocks can be put together to create a modular solver, where each of the components can easily be swapped for testing. In addition, we provide some built-in algorithms and a few optional utilities for analysis (like benchmark test functions,result reporting and statistics logging). EvoLP.jl is an effort of the Norwegian Open Artificial Intelligence Lab and strives to comply with the guidelines of the Julia scientific community. It is well-tested, provides extensive documentation and is free—available for everyone to use under an open-source license. It is our intention that EvoLP.jl becomes a useful tool not only for research in evolutionary computation but also in the education and innovation scenarios.

Publication
Proceedings of the 5th Symposium of the Norwegian AI Society, 3431. CEUR Workshop Proceedings Vol. 3431
Xavier F. C. Sánchez Díaz
Xavier F. C. Sánchez Díaz
PhD candidate in Artificial Intelligence

PhD candidate in Artificial Intelligence at the Department of Computer Science (IDI) of the Norwegian University of Science and Technology