Table of Contents
Fetching ...

evortran: a modern Fortran package for genetic algorithms with applications from LHC data fitting to LISA signal reconstruction

Thomas Biekötter

TL;DR

This paper introduces evortran, a modern Fortran library implementing genetic algorithms for derivative-free optimization across high-dimensional spaces. The framework provides a modular, multi-layer interface with integer and float genomes, population-level operations, migration capabilities, and OpenMP-based parallelization, accessible from Python through pyevortran. It demonstrates strong performance on standard multimodal benchmarks (e.g., $f(x)$ like the Rastrigin, Michalewicz, Himmelblau, Drop-Wave) and real-world physics tasks, including a global fit of an extended Higgs sector to LHC data and the reconstruction of a stochastic gravitational wave background for LISA mock data. The results highlight efficient exploration, robustness to degeneracies, and scalable parallel performance, while also discussing practical aspects such as prior choices in GA-based inference and potential future extensions toward MPI or GPU acceleration. Overall, evortran provides a lightweight, flexible, and productive tool for complex, non-differentiable optimization in physics and beyond, with accessible integration into existing codes and workflows.

Abstract

evortran is a modern Fortran library designed for high-performance genetic algorithms and evolutionary optimization. evortran can be used to tackle a wide range of problems in high-energy physics and beyond, such as derivative-free parameter optimization, complex search taks, parameter scans and fitting experimental data under the presence of instrumental noise. The library is built as an fpm package with flexibility and efficiency in mind, while also offering a simple installation process, user interface and integration into existing Fortran (or Python) programs. evortran offers a variety of selection, crossover, mutation and elitism strategies, with which users can tailor an evolutionary algorithm to their specific needs. evortran supports different abstraction levels: from operating directly on individuals and populations, to running full evolutionary cycles, and even enabling migration between independently evolving populations to enhance convergence and maintain diversity. In this paper, we present the functionality of the evortran library, demonstrate its capabilities with example benchmark applications, and compare its performance with existing genetic algorithm frameworks. As physics-motivated applications, we use evortran to confront extended Higgs sectors with LHC data and to reconstruct gravitational wave spectra and the underlying physical parameters from LISA mock data, demonstrating its effectiveness in realistic, data-driven scenarios.

evortran: a modern Fortran package for genetic algorithms with applications from LHC data fitting to LISA signal reconstruction

TL;DR

This paper introduces evortran, a modern Fortran library implementing genetic algorithms for derivative-free optimization across high-dimensional spaces. The framework provides a modular, multi-layer interface with integer and float genomes, population-level operations, migration capabilities, and OpenMP-based parallelization, accessible from Python through pyevortran. It demonstrates strong performance on standard multimodal benchmarks (e.g., like the Rastrigin, Michalewicz, Himmelblau, Drop-Wave) and real-world physics tasks, including a global fit of an extended Higgs sector to LHC data and the reconstruction of a stochastic gravitational wave background for LISA mock data. The results highlight efficient exploration, robustness to degeneracies, and scalable parallel performance, while also discussing practical aspects such as prior choices in GA-based inference and potential future extensions toward MPI or GPU acceleration. Overall, evortran provides a lightweight, flexible, and productive tool for complex, non-differentiable optimization in physics and beyond, with accessible integration into existing codes and workflows.

Abstract

evortran is a modern Fortran library designed for high-performance genetic algorithms and evolutionary optimization. evortran can be used to tackle a wide range of problems in high-energy physics and beyond, such as derivative-free parameter optimization, complex search taks, parameter scans and fitting experimental data under the presence of instrumental noise. The library is built as an fpm package with flexibility and efficiency in mind, while also offering a simple installation process, user interface and integration into existing Fortran (or Python) programs. evortran offers a variety of selection, crossover, mutation and elitism strategies, with which users can tailor an evolutionary algorithm to their specific needs. evortran supports different abstraction levels: from operating directly on individuals and populations, to running full evolutionary cycles, and even enabling migration between independently evolving populations to enhance convergence and maintain diversity. In this paper, we present the functionality of the evortran library, demonstrate its capabilities with example benchmark applications, and compare its performance with existing genetic algorithm frameworks. As physics-motivated applications, we use evortran to confront extended Higgs sectors with LHC data and to reconstruct gravitational wave spectra and the underlying physical parameters from LISA mock data, demonstrating its effectiveness in realistic, data-driven scenarios.

Paper Structure

This paper contains 39 sections, 14 equations, 15 figures, 4 tables.

Figures (15)

  • Figure 1: Left: Surface plot of the $n=2$ dimensional Rastrigin function with $A = 10$ in the domain $x_{1,2} \in [-5.12, 5.12]$. Right: Number of calls to the Rastrigin function against the number of dimensions $n$ until the global minimum has been determined with a function value $f_{\rm min} < 10^{-10}$ using the example application benchmark_rastrigin.
  • Figure 2: Wall time as a function of the number of threads for the example program benchmark_rastrigin_nthreads. For each number of threads, the 20-dimensional Rastrigin function was minized ten times, and the plot shows the average wall time per minimzation. The blue points show the wall time using the evolve_population routine, and the orang points show the wall time using the evolve_migration routine.
  • Figure 3: Left: Surface plot of the $n=2$ dimensional Michalewicz function with $m = 10$ in the domain $x_{1,2} \in [0, \pi]$. Right: Minimal function values $f_{\rm min}$ of the Michalewicz function for $m = 10$ against the number of dimensions $n = 2,\dots 25$ that were found using the example application benchmark_michalewicz.
  • Figure 4: Minimal function values $f_{\rm min}$ of the Michalewicz function normalized to the dimensionality $n$ for $m = 10$ as a function of the number of dimensions $n = 2,\dots 100$ that were found using the example application benchmark_michalewicz. Blue and orange points indicate the values obtained with evortran and Pikaia, respectively, see text for details.
  • Figure 5: Surface plot of the $n = 2$ dimensional Himmelblau function in the domain $x,y \in [-5, 5]$.
  • ...and 10 more figures