A library for optimization benchmark functions in python
Project description
# PyBenchFCN #
Introduction
This library is a python implementation for the MatLab package BenchmarkFcns Toolbox.
You can simply install with command pip install PyBenchFCN
.
- Pre-request:
numpy
How to Use
To use the package, one may see the sample code in Factory.py
in the repository, or follow the script below.
import numpy as np
# import single objective problems from PyBenchFCN
from PyBenchFCN import SingleObjectiveProblem as SOP
n_var = 10 # dimension of problem
n_pop = 3 # size of population
problem = SOP.ackleyfcn(n_var) # Ackley problem
'''same function as the code above
from PyBenchFCN import Factory
problem = Factory.set_sop("f1", n_var)
'''
print( np.round(problem.optimalF, 5) ) # show rounded optimal value
xl, xu = problem.boundaries # bound of problem
x = np.random.uniform(xl, xu, n_var) # initialize a solution
print( problem.f(x) ) # show fitness value
X = np.random.uniform( xl, xu, (n_pop, n_var) ) # initialize a population
print( problem.F(X) ) # show fitness values
List of Functions
Totally, 61 functions are implemented. The plot of 2D versions of 59 problems are provided. Please check the homepage of BenchmarkFcns Toolbox for the further documentation.
- Ackley Function >>
n-dim
differentiable
non-convex
multimodal
separable
- Ackley N.2 Function >>
2-dim
differentiable
convex
unimodal
non-separable
- Ackley N.3 Function >>
2-dim
differentiable
non-convex
multimodal
non-separable
- Adjiman Function >>
2-dim
differentiable
non-convex
multimodal
non-separable
- Alpine N.1 Function >>
n-dim
differentiable
non-convex
multimodal
non-separable
- Alpine N.2 Function >>
n-dim
differentiable
non-convex
multimodal
non-separable
- Bartelsconn Function >>
2-dim
non-differentiable
non-convex
multimodal
non-separable
- Beale Function >>
2-dim
differentiable
non-convex
multimodal
non-separable
- Bird Function >>
2-dim
differentiable
non-convex
multimodal
non-separable
- Bohachevsky N.1 Function >>
2-dim
differentiable
non-convex
multimodal
non-separable
- Bohachevsky N.2 Function >>
2-dim
differentiable
non-convex
multimodal
non-separable
- Booth Function >>
2-dim
differentiable
convex
unimodal
non-separable
- Brent Function >>
2-dim
differentiable
convex
unimodal
non-separable
- BrownFunction >>
n-dim
differentiable
convex
unimodal
non-separable
- Bukin N.6 Function >>
2-dim
non-differentiable
convex
multimodal
non-separable
- Cross-in-Tray Function >>
2-dim
non-differentiable
non-convex
multimodal
non-separable
- Deckkers-Aarts Function >>
2-dim
differentiable
non-convex
multimodal
non-separable
- Dropwave Function >>
2-dim
differentiable
non-convex
multimodal
non-separable
- Easom Function >>
2-dim
differentiable
non-convex
multimodal
separable
- Egg Crate Function >>
2-dim
differentiable
non-convex
multimodal
separable
- Eggholder Function >>
2-dim
differentiable
non-convex
multimodal
non-separable
- Exponential Function >>
n-dim
differentiable
convex
unimodal
non-separable
- Goldstein-Price Function >>
2-dim
differentiable
non-convex
multimodal
non-separable
- Gramacy & Lee Function >>
1-dim
differentiable
non-convex
multimodal
separable
- Griewank Function >>
n-dim
differentiable
non-convex
multimodal
non-separable
- Happy Cat Function >>
n-dim
differentiable
non-convex
multimodal
non-separable
- Himmelblau Function >>
2-dim
differentiable
non-convex
multimodal
non-separable
- Holder-Table Function >>
2-dim
non-differentiable
non-convex
multimodal
non-separable
- Keane Function >>
2-dim
differentiable
non-convex
multimodal
non-separable
- Leon Function >>
2-dim
differentiable
non-convex
multimodal
non-separable
- Levi N.13 Function >>
2-dim
differentiable
non-convex
multimodal
non-separable
- Matyas Function >>
2-dim
differentiable
convex
unimodal
non-separable
- McCormick Function >>
2-dim
differentiable
convex
multimodal
non-separable
- Periodic Function >>
n-dim
differentiable
non-convex
multimodal
non-separable
- Picheny Function >>
2-dim
differentiable
non-convex
multimodal
non-separable
- Powell Sum Function >>
n-dim
differentiable
convex
unimodal
separable
- Qing Function >>
n-dim
differentiable
non-convex
multimodal
non-separable
- Quatric Function >>
n-dim
differentiable
non-convex
multimodal
separable
random
- RastriginFunction >>
n-dim
differentiable
non-convex
multimodal
separable
- Ridge Function >>
n-dim
differentiable
non-convex
multimodal
non-separable
- Rosenbrock Function >>
n-dim
differentiable
convex
unimodal
non-separable
- Salomon Function >>
n-dim
differentiable
non-convex
multimodal
non-separable
- Schaffer N.1 Function >>
2-dim
differentiable
non-convex
multimodal
non-separable
- Schaffer N.2 Function >>
2-dim
differentiable
non-convex
multimodal
non-separable
- Schaffer N.3 Function >>
2-dim
differentiable
non-convex
multimodal
non-separable
- Schaffer N.4 Function >>
2-dim
differentiable
non-convex
multimodal
non-separable
- Schwefel 2.20 Function >>
n-dim
non-differentiable
convex
unimodal
separable
- Schwefel 2.21 Function >>
n-dim
non-differentiable
convex
unimodal
separable
- Schwefel 2.22 Function >>
n-dim
non-differentiable
convex
unimodal
non-separable
- Schwefel 2.23 Function >>
n-dim
differentiable
convex
unimodal
separable
- Schwefel Function >>
n-dim
differentiable
non-convex
multimodal
separable
- Sphere Function >>
n-dim
differentiable
convex
unimodal
separable
- Styblinski-Tang Function >>
n-dim
differentiable
non-convex
multimodal
separable
- Sum Squares Function >>
n-dim
differentiable
convex
unimodal
separable
- Three-Hump Camel Function >>
2-dim
differentiable
non-convex
multimodal
non-separable
- Wolfe Function >>
3-dim
non-differentiable
non-convex
multimodal
separable
- Xin-She Yang N.1 Function >>
n-dim
non-differentiable
non-convex
multimodal
separable
random
- Xin-She Yang N.2 Function >>
n-dim
non-differentiable
non-convex
multimodal
non-separable
- Xin-She Yang N.3 Function >>
n-dim
differentiable
non-convex
multimodal
non-separable
- Xin-She Yang N.4 Function >>
n-dim
non-differentiable
non-convex
multimodal
non-separable
- Zakharov Function >>
n-dim
differentiable
convex
unimodal
non-separable
Acknowledgement
PyBenchFCN is maintained by Y1fanHE. The author of this repostory is very grateful to Mr. Mazhar Ansari Ardeh, who implemented the MatLab package BenchFCNs Toolbox.
- If you find any mistakes, please report at a new issue.
- If you want to help me implement more benchmarks (discrete optimization, multi-objective optimization), please contact at he.yifan.xs@alumni.tsukuba.ac.jp.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for PyBenchFCN-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27cb835f133122fc659e88dec1c6ff98641bc869ce53ba8c09dfe45d59403da9 |
|
MD5 | 72de157970595ff05c50aad1c4c91579 |
|
BLAKE2b-256 | 0c8151885f51c5c59865319382bb461f1f4501cf74ee8c173f4d42161ab90671 |