Skip to content

Latest commit

 

History

83 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Code for "Tracing Genome Influence in Multi-Objective Evolutionary Algorithms"

This repository contains the code for my paper for the GECCO 2025 Workshop Analysing algorithmic behaviour of optimisation heuristics titled "Tracing Genome Influence in Multi-Objective Evolutionary Algorithms". This repository contains the code to generate and evaluate the test data. This is also the basis for Chapter 11 of my dissertation. Check it out, if you are interested in the topic.

Folder Structure

There are three folders for the code, data and figures generated by the evaluation:

  • code - contains all the code, most importantly the script for generating the test data and the jupyter notebook used for evaluation. Besides the test scripts, code from the preliminary evaluation as well as the sub-repository for the T-EA is also here.
  • data - is the output folder for the test data, both for the preliminary test and the actual benchmark. Also already contains the compressed test data.
  • figures - contains the generated figures from the evaluation of the data.

Installing

To set up the git repository, follow these steps:

  1. Clone the repository.
git clone https://github.com/tobeneck/genome_in_moeas_study.git
cd genome_in_moeas_study
  1. Set up a virtual environment, for example venv, and install the required packages.
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt

Besides the packages, the t-ea pymoo implementation is required to run the code in this repository.

  1. Clone and initialize the nessecary sub-repositories (tea_pymoo and pymoo_problems).
cd code/tea_pymoo
git submodule init
git submodule update
cd ../pymoo_problems
git submodule init
git submodule update
cd ../

For more information on the heritage tracking process of the traceable evolutionary algorithm (T-EA) you can refer to this paper, the implementation can be found in this git repository.

The repository containing the problem implementations outside of pymoo can be found here.

Generating the Test Data

Generating the test data is done in a few separate steps. The data will always be saved in the data folder. A filtered version of the data used for evaluation is provided as zip archives. If you want to evaluate the full data, you need to generate it yourself the following way:

  1. Generating the initial populations and seed individuals:
cd code
python3 generate_initial_pop.py
python3 generate_seed_individuals.py

Python version 3.9.6 was used to generate all tests.

  1. Run the actual tests (this may take a while...):
python3 e_and_c_benchmark.py
  1. Calculate the hypervolume performance indicator, statistical significance and baseline comparison:
python3 calc_HV.py
python3 mwu_and_baseline_comparison.py
  1. You might want to filter the data, as the evaluation scripts otherwise use a lot of memory. Currently, the trace-, fitness-, and performance data is filtered to only contain the final generation. Feel free to change this for your own purposes:
python3 filter_data.py
  1. Evaluate the tests. You can use the povided notebooks:
  • eval_genome_range.ipynb - visualized the variable ranges of the genome for the MOPs used in the Paper.
  • eval_trace_data.ipynb - contains all visualizations done for the trace data of the t-ea.
  • eval_performance.ipynb - contains all visualizations fo the performance data.

Currently, the notebooks evaluate the provided data. Change this if you want to use the scripts on your own data.

Citation

Consider citing the paper on this work if you use code from this repository:

T. Benecke and S. Mostaghim, “Tracing Genome Influence in Multi-Objective Evolutionary Algorithms,” in Proceedings of the Genetic and Evolutionary Computation Conference Companion, in GECCO ’25 Companion. New York, NY, USA: Association for Computing Machinery, Aug. 2025, pp. 1807–1815. https://doi.org/10.1145/3712255.3734275.

@inproceedings{beneckeTracingGenomeInfluence2025,
    series = {{GECCO} '25 {Companion}},
    title = {Tracing {Genome} {Influence} in {Multi}-{Objective} {Evolutionary} {Algorithms}},
    doi = {10.1145/3712255.3734275},
    booktitle = {Proceedings of the {Genetic} and {Evolutionary} {Computation} {Conference} {Companion}},
    publisher = {Association for Computing Machinery},
    author = {Benecke, Tobias and Mostaghim, Sanaz},
    month = aug,
    year = {2025},
    keywords = {multi-objective, population dynamics, my work, gene level, NSGA-II, genetic algorithm (GA), MOEA/D, my\_work},
    pages = {1807--1815},
}

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages