{"id":22144921,"url":"https://github.com/cicirello/optimize-ga-operators","last_synced_at":"2025-10-06T18:25:53.443Z","repository":{"id":264993434,"uuid":"639043154","full_name":"cicirello/optimize-ga-operators","owner":"cicirello","description":"Experiments for paper: Optimizing Genetic Algorithms Using the Binomial Distribution","archived":false,"fork":false,"pushed_at":"2024-12-04T21:19:28.000Z","size":1639,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-19T06:04:03.721Z","etag":null,"topics":["binomial-distribution","binomial-random-variable","binomial-random-variates","bitflip","bitflip-mutation","crossover","evolutionary-algorithms","genetic-algorithm-control-loop","genetic-algorithms","mutation","uniform-crossover"],"latest_commit_sha":null,"homepage":"https://www.cicirello.org/publications/cicirello2024ecta2.html","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cicirello.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"cicirello","patreon":null,"open_collective":null,"ko_fi":"cicirello","tidelift":null,"community_bridge":null,"liberapay":"cicirello","issuehunt":null,"otechie":null,"custom":null}},"created_at":"2023-05-10T16:27:48.000Z","updated_at":"2024-12-04T21:19:29.000Z","dependencies_parsed_at":"2024-11-28T13:30:25.136Z","dependency_job_id":null,"html_url":"https://github.com/cicirello/optimize-ga-operators","commit_stats":null,"previous_names":["cicirello/optimize-ga-operators"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cicirello%2Foptimize-ga-operators","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cicirello%2Foptimize-ga-operators/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cicirello%2Foptimize-ga-operators/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cicirello%2Foptimize-ga-operators/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cicirello","download_url":"https://codeload.github.com/cicirello/optimize-ga-operators/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245267567,"owners_count":20587459,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["binomial-distribution","binomial-random-variable","binomial-random-variates","bitflip","bitflip-mutation","crossover","evolutionary-algorithms","genetic-algorithm-control-loop","genetic-algorithms","mutation","uniform-crossover"],"created_at":"2024-12-01T22:35:28.999Z","updated_at":"2025-10-06T18:25:48.401Z","avatar_url":"https://github.com/cicirello.png","language":"Java","funding_links":["https://github.com/sponsors/cicirello","https://ko-fi.com/cicirello","https://liberapay.com/cicirello"],"categories":[],"sub_categories":[],"readme":"# Code to reproduce the experiments from: Optimizing Genetic Algorithms Using the Binomial Distribution\n\nCopyright \u0026copy; 2023-2024 Vincent A. Cicirello\n\nThis repository contains code to reproduce the experiments, and analysis of \nexperimental data, from the following paper:\n\n\u003e Vincent A. Cicirello. 2024. [Optimizing Genetic Algorithms Using the Binomial Distribution](https://www.cicirello.org/publications/cicirello2024ecta-optimize-ga.pdf). *Proceedings of the 16th International Joint Conference on Computational Intelligence*, pages 159-169. November 2024. doi:[10.5220/0013038300003837](https://doi.org/10.5220/0013038300003837).\n\n| __Publication__ | [![doi:10.5220/0013038300003837](doi.svg)](https://doi.org/10.5220/0013038300003837) |\n| :--- | :--- |\n| __License__ | [![GitHub](https://img.shields.io/github/license/cicirello/optimize-ga-operators)](LICENSE) |\n\n## Dependencies\n\nThe experiments depend upon the following libraries, which are automatically downloaded from\nMaven Central during the build process:\n* [Chips-n-Salsa](https://chips-n-salsa.cicirello.org/) 7.0.0\n* [JavaPermutationTools](https://jpt.cicirello.org/) 6.0.0\n* [\u0026rho;\u0026mu;](https://rho-mu.cicirello.org) 4.1.0\n* [org.cicirello.core](https://core.cicirello.org) 2.7.0\n\n## Requirements to Build and Run the Experiments\n\nTo build and run the experiments on your own machine, you will need the following:\n* __JDK 17__: I used OpenJDK 17, but other distributions should be fine. \n* __Apache Maven__: In the root of the repository, there is a `pom.xml` \n  for building the Java programs for the experiments. Using this `pom.xml`, \n  Maven will take care of downloading the exact version of \n  [Chips-n-Salsa](https://chips-n-salsa.cicirello.org/) (release 7.0.0) \n  and its dependencies that were used in the experiments. \n* __Python 3__: The repository contains Python programs that were used to \n  process the raw data for the paper. If you want to run the Python programs, \n  you will need Python 3. \n* __Make__: The repository contains a Makefile to simplify running the build, \n  running the experiment's Java programs, and running the Python program to \n  analyze the data. If you are familiar with using the Maven build tool, \n  and running Python programs, then you can just run these directly, although \n  the Makefile may be useful to see the specific commands needed.\n\n## Building the Java Programs\n\nThe source code of the Java programs implementing the experiments\nis in the [src/main/java](src/main/java) directory. You can build \nthe experiment programs in one of the following ways.\n\n__Using Maven__: Execute the following from the root of the\nrepository.\n\n```shell\nmvn clean package\n```\n\n__Using Make__: Or, you can execute the following from the root\nof the repository.\n\n```shell\nmake build\n```\n\n## Running the Experiments\n\nIf you just want to inspect the data from my runs, then you can find that output\nin the [/data](data) directory. If you instead want to run the experiments yourself,\nyou must first follow the build instructions. Once the jar of the experiments is \nbuilt, you can then run the experiments with the following executed at the root of \nthe repository:\n\n```shell\nmake experiments\n```\n\nIf you don't want to overwrite my original data files, then first change the variable\n`pathToDataFiles` in the `Makefile` before running the above command.\n\n## Analyzing the Experimental Data\n\nTo run the Python programs that process the raw data and generate the figures \nfrom the paper, you need Python 3 installed. The source \ncode of the Python programs is found in the [src/analysis](src/analysis) \ndirectory.  To run the analysis, execute the following at the root of the \nrepository:\n\n```shell\nmake figures\n```\n\nThis make command will also take care of installing any required Python packages \nif you don't already have them installed.\n\nIf you want to generate the figures in `pdf` format, then after executing the\nabove, proceed to execute the following (which assumes that you have `epstopdf` \ninstalled):\n\n```shell\nmake epstopdf\n```\n\nIf you don't want to overwrite my original data files, and figures, then change the \nvariable `pathToDataFiles` in the `Makefile` before running the above commands.\n\n## Other Files in the Repository\n\nThere are other files, potentially of interest, in the repository, including:\n* `system-stats.txt`: This file contains details of the system I \n  used to run the experiments, such as operating system, processor \n  specs, Java JDK and VM. It is in the [/data](data) directory.\n\n## License\n\nThe code to replicate the experiments from the paper, as well as the\nChips-n-Salsa library and its dependencies, are licensed under \nthe [GNU General Public License 3.0](https://www.gnu.org/licenses/gpl-3.0.en.html).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcicirello%2Foptimize-ga-operators","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcicirello%2Foptimize-ga-operators","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcicirello%2Foptimize-ga-operators/lists"}