- Notifications
You must be signed in to change notification settings - Fork28
Implementation of Firefly Algorithm in Python
License
firefly-cpp/FireflyAlgorithm
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
📋 About •📦 Installation •🚀 Usage •📚 Reference Papers •📄 Cite us •🔑 License
This package implements a nature-inspired algorithm for optimization called Firefly Algorithm (FA) in Python programming language. 🌿🔍💻
To install FireflyAlgorithm with pip, use:
pip install fireflyalgorithm
To install FireflyAlgorithm on Fedora, use:
dnf install python-fireflyalgorithm
To install FireflyAlgorithm on Arch Linux, please use anAUR helper:
$ yay -Syyu python-fireflyalgorithm
To install FireflyAlgorithm on Alpine Linux, use:
$ apk add py3-fireflyalgorithm
fromfireflyalgorithmimportFireflyAlgorithmfromfireflyalgorithm.problemsimportsphereFA=FireflyAlgorithm()best=FA.run(function=sphere,dim=10,lb=-5,ub=5,max_evals=10000)print(best)
In thefireflyalgorithm.problems
module, you can find the implementations of 33 popular optimization test problems. Additionally, the module provides a utility function,get_problem
, that allows you to retrieve a specific optimization problem function by providing its name as a string:
fromfireflyalgorithm.problemsimportget_problem# same as from fireflyalgorithm.problems import rosenbrockrosenbrock=get_problem('rosenbrock')
For more information about the implemented test functions,click here.
The package also comes with a simple command line interface which allows you to evaluate the algorithm on several popular test functions. 🔬
firefly-algorithm -h
usage: firefly-algorithm [-h] --problem PROBLEM -d DIMENSION -l LOWER -u UPPER -nfes MAX_EVALS [-r RUNS] [--pop-size POP_SIZE] [--alpha ALPHA] [--beta-min BETA_MIN] [--gamma GAMMA] [--seed SEED]Evaluate the Firefly Algorithm on one or more test functionsoptions: -h, --help show this help message and exit --problem PROBLEM Test problem to evaluate -d DIMENSION, --dimension DIMENSION Dimension of the problem -l LOWER, --lower LOWER Lower bounds of the problem -u UPPER, --upper UPPER Upper bounds of the problem -nfes MAX_EVALS, --max-evals MAX_EVALS Max number of fitness function evaluations -r RUNS, --runs RUNS Number of runs of the algorithm --pop-size POP_SIZE Population size --alpha ALPHA Randomness strength --beta-min BETA_MIN Attractiveness constant --gamma GAMMA Absorption coefficient --seed SEED Seed for the random number generator
Note: The CLI script can also run as a python module (python -m fireflyalgorithm ...).
I. Fister Jr., X.-S. Yang, I. Fister, J. Brest, D. Fister.A Brief Review of Nature-Inspired Algorithms for Optimization. Elektrotehniški vestnik, 80(3), 116-122, 2013.
I. Fister Jr., X.-S. Yang, I. Fister, J. Brest.Memetic firefly algorithm for combinatorial optimization in Bioinspired Optimization Methods and their Applications (BIOMA 2012), B. Filipic and J.Silc, Eds.Jozef Stefan Institute, Ljubljana, Slovenia, 2012
I. Fister, I. Fister Jr., X.-S. Yang, J. Brest.A comprehensive review of firefly algorithms. Swarm and Evolutionary Computation 13 (2013): 34-46.
Fister Jr., I., Pečnik, L., & Stupan, Ž. (2023). firefly-cpp/FireflyAlgorithm: 0.4.3 (0.4.3). Zenodo.https://doi.org/10.5281/zenodo.10430919
This package is distributed under the MIT License. This license can be found online athttp://www.opensource.org/licenses/MIT.
This framework is provided as-is, and there are no guarantees that it fits your purposes or that it is bug-free. Use it at your own risk!
About
Implementation of Firefly Algorithm in Python
Topics
Resources
License
Code of conduct
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors5
Uh oh!
There was an error while loading.Please reload this page.