{"id":20476380,"url":"https://github.com/aminehorseman/butterfly-optimization-algorithms","last_synced_at":"2025-09-25T01:30:58.195Z","repository":{"id":128267838,"uuid":"416019346","full_name":"amineHorseman/butterfly-optimization-algorithms","owner":"amineHorseman","description":"Implementing several variants of the Butterfly Optimization Algorithm to solve global optimization problems","archived":false,"fork":false,"pushed_at":"2022-10-04T07:06:59.000Z","size":209,"stargazers_count":6,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-11-15T15:20:35.991Z","etag":null,"topics":["algorithms","bio-inspired","boa","butterfly-optimization","combinatorial-optimization","metaheuristics","numerical-optimization","optimization","optimization-algorithms","robotics","swarm-intelligence","xboa"],"latest_commit_sha":null,"homepage":"","language":"Python","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/amineHorseman.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}},"created_at":"2021-10-11T17:11:40.000Z","updated_at":"2024-04-08T01:43:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"24fbc3f2-583a-4daf-a527-9f070070bccb","html_url":"https://github.com/amineHorseman/butterfly-optimization-algorithms","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amineHorseman%2Fbutterfly-optimization-algorithms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amineHorseman%2Fbutterfly-optimization-algorithms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amineHorseman%2Fbutterfly-optimization-algorithms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amineHorseman%2Fbutterfly-optimization-algorithms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amineHorseman","download_url":"https://codeload.github.com/amineHorseman/butterfly-optimization-algorithms/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234143351,"owners_count":18786140,"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":["algorithms","bio-inspired","boa","butterfly-optimization","combinatorial-optimization","metaheuristics","numerical-optimization","optimization","optimization-algorithms","robotics","swarm-intelligence","xboa"],"created_at":"2024-11-15T15:20:11.241Z","updated_at":"2025-09-25T01:30:57.863Z","avatar_url":"https://github.com/amineHorseman.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Butterfly Optimization Algorithm(s)\n\nImplementation of the Butterfly Optimization Algorithm and some of its variants.\n1. **BOA**: The standard BOA algorithm from [Arora et al. 2019] \u0026 [Arora et al. 2016]\n2. **mBOA**: BOA with intensive search from [Arora et al. 2018]\n3. **ABOA**: BOA with a non-linear update rule for the sensory modality from [Zhang et al. 2020]\n4. **SABOA**: BOA with Self-Adaptative update rule from [Fan et al. 2020]\n5. **xBOA**: BOA with crossover operator from [Bendahmane et al. 2022]\n\n\n\n## Dependencies\n\nPlease install the following packages to use this repository\n```\npip install numpy\npip install pyyaml\npip install pygmo\n```\n\n\n## How to use\n\n1. Change the parameters in the file `params.yaml`\n\n   - A description of each parameter is given as a comment in the .yaml file\n   - You can remove a parameter by commenting or removing its line, it will be replaced by the default value automatically\n\n2. Launch the main script\n   ```\n   python main.py\n   ```\n3. You will get an output similar to this:\n   ```\n   Solving problem using xBOA: Crossover Butterfly Optimization Algorithm (UDA)\n     Gen    Fevals     Fbest       Improv     Duration\n      1       11    900.098353  -10.484016      0.0\n      2       16    585.152347  -314.946006     0.0\n      3       21    331.047822  -254.104524     0.0\n      4       26    177.079935  -153.967888     0.0\n      5       32    147.851095   -29.228839     0.0\n      6       39    147.851095     0.0          0.0\n      7       44     71.580096   -76.270999     0.0\n      8       49     42.675169   -28.904927     0.0\n      9       55     35.876333    -6.798837     0.0\n      10      61     19.645902   -16.23043      0.0\n   Executed: 10 generations\n   Best solution: [ 0.12479103  0.08723433  0.          0.44437604  0.17309622  0. 0.25159349  0.32912562  3.50034695  0.          0.         11.41293089 1.46827132  0.          0.          0.29118183  0.          1.56295445 0.          0. ]\n   ```\n\n\n\n## Experimental results and data\n\nWe used these algorithms to solve various problems and evaluated their performances. The main contributions are presented in this section:\n\n### **1. Unknown Area Exploration problem**\n\nIn [Bendahmane et al. 2022], we used the Butterﬂy Optimization Algorithm (BOA) and its variants to solve the robotics Unknown Area Exploration problem with energy constraints in dynamic environments. As far as we know, BOA was never used for solving robotics problems before this work.\n\nWe also introduced the xBOA variant for the first time, and conducted several experiments for comparing its performance with BOA and the other variants, as well as 5 other metaheuristics used in the literature (GA, PSO, ABC, GWO, CMA-ES).\n\nWe found that BOA can be a good alternative to many metaheuristics in terms of the exploration\ntime, while xBOA is more robust to local optima; has better fitness convergence; and achieves better exploration rates than the original BOA\nand its other variants.\n\nExperimental data and screenshots are available in the folder [data/robot-exploration](https://github.com/amineHorseman/butterfly-optimization-algorithms/tree/main/data/robot-exploration).\nThe full simulation code will be available soon.\n\n### **2. Path Planning**\n\n   ...to be completed.\n\n### **3. Numerical Optimization**\n\n   ...to be completed.\n\n## Contribute\n\nContributions are welcome. You may help with the following:\n- Writing documentation \u0026 tutorials\n- Adding new algorithms\n- Improving code \u0026 performances\n- Writing automated tests\n- Debugging\n- Translation\n\nPlease open a new issue for each contribution before sending a pull request.\n\n## References\n\n- [Arora et al. 2016]:\n\n   Arora S, Singh S (2016) *\"An improved butterfly optimization algorithm for global optimization\"*. Advanced Science, Engineering and Medicine 8(9):711–717\n\n- [Arora et al. 2018]:\n\n   Arora S, Singh S, Yetilmezsoy K (2018) *\"A modified butterfly optimization algorithm for mechanical design optimization problems\"*. Journal of the Brazilian Society of Mechanical Sciences and Engineering 40(1):1–17\n\n- [Arora et al. 2019]:\n\n   Arora S, Singh S (2019) *\"Butterfly optimization algorithm: a novel approach for global optimization\"*. Soft Computing 23(3):715–734\n\n- [Bendahmane et al. 2022]:\n\n   Bendahmane A, Tlemsani R (2022): *\"Unknown area exploration for robots with energy constraints using a modified Butterfly Optimization Algorithm\"*. Soft Computing https://doi.org/10.1007/s00500-022-07530-w\n\n- [Fan et al. 2020]:\n\n   Fan Y, Shao J, Sun G, et al (2020) *\"A self-adaption butterfly optimization algorithm for numerical optimization problems\"*. IEEE Access 8:88,026–88,041\n\n- [Zhang et al. 2020]:\n\n   Zhang M, Long D, Qin T, et al (2020) *\"A chaotic hybrid butterfly optimization algorithm with particle swarm optimization for highdimensional optimization problems\"*. Symmetry 12(11):1800\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faminehorseman%2Fbutterfly-optimization-algorithms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faminehorseman%2Fbutterfly-optimization-algorithms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faminehorseman%2Fbutterfly-optimization-algorithms/lists"}