OPFUNU is the largest python library for cutting-edge numerical optimization benchmark functions. Contains all CEC competition functions from 2005, 2008, 2010, 2013, 2014, 2015, 2017, 2019, 2020, 2021, 2022. Besides, more than 300 traditional functions with different dimensions are implemented.
- Free software: GNU General Public License (GPL) V3 license
- Total problems: > 500 problems
- Documentation: https://opfunu.readthedocs.io
- Python versions: 3.7.x, 3.8.x, 3.9.x, 3.10.x, 3.11.x
- Dependencies: numpy, matplotlib
Install the current PyPI release:
$ pip install opfunu==1.0.1
Or install the development version from GitHub:
pip install git+https://github.com/thieu1995/opfunu
In case you want to install directly from the source code, use:
$ git clone https://github.com/thieu1995/opfunu.git
$ cd opfunu
$ python setup.py install
docs
examples
opfunu
cec_based
cec.py
cec2005.py
cec2008.py
...
cec2021.py
cec2022.py
name_based
a_func.py
b_func.py
...
y_func.py
z_func.py
utils
operator.py
validator.py
visualize.py
__init__.py
benchmark.py
README.md
setup.py
After installation, you can import Opfunu as any other Python module:
$ python
>>> import opfunu
>>> opfunu.__version__
Let's go through some examples.
How to get the function and use it
from opfunu.cec_based.cec2014 import F12014
func = F12014(ndim=30)
func.evaluate(func.create_solution())
## or
from opfunu.cec_based import F102014
func = F102014(ndim=50)
func.evaluate(func.create_solution())
import opfunu
funcs = opfunu.get_functions_by_classname("F12014")
func = funcs[0](ndim=10)
func.evaluate(func.create_solution())
## or
all_funcs_2014 = opfunu.get_functions_based_classname("2014")
print(all_funcs_2014)
For more usage examples please look at examples folder.
-
Official source code repo: https://github.com/thieu1995/opfunu
-
Official document: https://opfunu.readthedocs.io/
-
Download releases: https://pypi.org/project/opfunu/
-
Issue tracker: https://github.com/thieu1995/opfunu/issues
-
Notable changes log: https://github.com/thieu1995/opfunu/blob/master/ChangeLog.md
-
Examples with different meapy version: https://github.com/thieu1995/opfunu/blob/master/examples.md
-
Join our telegram community at link** to get more support and help.
-
This project also related to our another projects which are "meta-heuristics" and "neural-network", check it here
If you are using opfunu in your project, we would appreciate citations:
@software{thieu_nguyen_2020_3711682,
author = {Nguyen Van Thieu},
title = {Opfunu: An Open-source Library For Optimization Functions in Numpy},
year = 2020,
publisher = {Zenodo},
doi = {10.5281/zenodo.3620960},
url = {https://doi.org/10.5281/zenodo.3620960.}
}
1. http://benchmarkfcns.xyz/fcns
2. https://en.wikipedia.org/wiki/Test_functions_for_optimization
3. https://www.cs.unm.edu/~neal.holts/dga/benchmarkFunction/
4. http://www.sfu.ca/~ssurjano/optimization.html
5. A Literature Survey of Benchmark Functions For Global Optimization Problems (2013)
6. Problem Definitions and Evaluation Criteria for the CEC 2014 Special Session and Competition on Single Objective Real-Parameter Numerical Optimization