ENOPPY (ENgineering Optimization Problems in PYthon) is the largest python library for real-world engineering optimization problems. Contains all real-world engineering problems from CEC competitions and research papers.
- Free software: GNU General Public License (GPL) V3 license
- Total problems: > 50 problems
- Documentation: https://enoppy.readthedocs.io/en/latest/
- Python versions: 3.7.x, 3.8.x, 3.9.x, 3.10.x, 3.11.x
- Dependencies: numpy, scipy
Installation
Install the current PyPI release:
$ pip install enoppy
After installation, you can import ENOPPY as any other Python module:
$ python
>>> import enoppy
>>> enoppy.__version__
Usage
This is a minimal usage example of the enoppy library.
- How to get the problem and use it
from enoppy.paper_based.moeosma_2023 import SpeedReducerProblem
# SRP = SpeedReducerProblem
# SP = SpringProblem
# HTBP = HydrostaticThrustBearingProblem
# VPP = VibratingPlatformProblem
# CSP = CarSideImpactProblem
# WRMP = WaterResourceManagementProblem
# BCP = BulkCarriersProblem
# MPBPP = MultiProductBatchPlantProblem
srp_prob = SpeedReducerProblem()
print("Lower bound for this problem: ", srp_prob.lb)
print("Upper bound for this problem: ", srp_prob.ub)
x0 = srp_prob.create_solution()
print("Get the objective values of x0: ", srp_prob.get_objs(x0))
print("Get the constraint values of x0: ", srp_prob.get_cons(x0))
print("Evaluate with default penalty function: ", srp_prob.evaluate(x0))
- Design my own penalty function:
import numpy as np
from enoppy.paper_based.moeosma_2023 import HTBP
# HTBP = HydrostaticThrustBearingProblem
def penalty_func(list_objectives, list_constraints):
list_constraints[list_constraints < 0] = 0
return np.sum(list_objectives) + 1e5 * np.sum(list_constraints**2)
htbp_prob = HTBP(f_penalty=penalty_func)
print("Lower bound for this problem: ", htbp_prob.lb)
print("Upper bound for this problem: ", htbp_prob.ub)
x0 = htbp_prob.create_solution()
print("Get the objective values of x0: ", htbp_prob.get_objs(x0))
print("Get the constraint values of x0: ", htbp_prob.get_cons(x0))
print("Evaluate with default penalty function: ", htbp_prob.evaluate(x0))
For more examples, check out examples folder and the enoppy documentation
Get helps (questions, problems)
-
Official source code repo: https://github.com/thieu1995/enoppy
-
Official document: https://enoppy.readthedocs.io/
-
Download releases: https://pypi.org/project/enoppy/
-
Issue tracker: https://github.com/thieu1995/enoppy/issues
-
Notable changes log: https://github.com/thieu1995/enoppy/blob/master/ChangeLog.md
-
Examples with different meapy version: https://github.com/thieu1995/enoppy/blob/master/examples.md
-
Join our telegram community: link
-
This project also related to our another projects which are "meta-heuristics", "neural-network", and "optimization" check it here
- https://github.com/thieu1995/mealpy
- https://github.com/thieu1995/permetrics
- https://github.com/thieu1995/opfunu
- https://github.com/thieu1995/metaheuristics
- https://github.com/thieu1995/MetaCluster
- https://github.com/thieu1995/pfevaluator
- https://github.com/thieu1995/IntelELM
- https://github.com/thieu1995/MetaPerceptron
- https://github.com/thieu1995/GrafoRVFL
- https://github.com/thieu1995/reflame
- https://github.com/aiir-team
Acknowledgments
If you are using enoppy in your project, we would appreciate citations:
@software{nguyen_van_thieu_2023_7953207,
author = {Nguyen Van Thieu},
title = {ENOPPY: A Python Library for Engineering Optimization Problems},
year = 2023,
publisher = {Zenodo},
doi = {10.5281/zenodo.7953206},
url = {https://github.com/thieu1995/enoppy}
}
@article{van2023mealpy,
title={MEALPY: An open-source library for latest meta-heuristic algorithms in Python},
author={Van Thieu, Nguyen and Mirjalili, Seyedali},
journal={Journal of Systems Architecture},
year={2023},
publisher={Elsevier},
doi={10.1016/j.sysarc.2023.102871}
}
References
paper_based
-
ihaoavoa_2022: Xiao, Y., Guo, Y., Cui, H., Wang, Y., Li, J., & Zhang, Y. (2022). IHAOAVOA: An improved hybrid aquila optimizer and African vultures optimization algorithm for global optimization problems. Mathematical Biosciences and Engineering, 19(11), 10963-11017.
-
moeosma_2023: Luo, Q., Yin, S., Zhou, G., Meng, W., Zhao, Y., & Zhou, Y. (2023). Multi-objective equilibrium optimizer slime mould algorithm and its application in solving engineering problems. Structural and Multidisciplinary Optimization, 66(5), 114.
-
pdo_2022: Ezugwu, A. E., Agushaka, J. O., Abualigah, L., Mirjalili, S., & Gandomi, A. H. (2022). Prairie dog optimization algorithm. Neural Computing and Applications, 34(22), 20017-20065.
-
rwco_2020: Kumar, A., Wu, G., Ali, M. Z., Mallipeddi, R., Suganthan, P. N., & Das, S. (2020). A test-suite of non-convex constrained optimization problems from the real-world and some baseline results. Swarm and Evolutionary Computation, 56, 100693.
Metadata
Release files for denoppy 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| denoppy-0.1.0.tar.gz | 44.5 kB | Without provenance | Details for denoppy-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| denoppy-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for denoppy-0.1.0-py3-none-any.whl |
Total release size: 87.3 kB
Release files / denoppy-0.1.0.tar.gz
| Download URL | denoppy-0.1.0.tar.gz |
|---|---|
| Size | 44.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f34b01fab2d4027a0f072524961e969253a8d18de6aa6b4c9c11117129aaa2ea
|
|
BLAKE2b-256 checksum How to use checksums |
9949b60f8696e0b03c7c17d998a78eaecdf5d8682dd17b4fe34dacb8d38843f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.11
|
Release files / denoppy-0.1.0-py3-none-any.whl
| Download URL | denoppy-0.1.0-py3-none-any.whl |
|---|---|
| Size | 42.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4b2bdcd1961e68d32382f7cd3110a649e92bd6b9f35c2e06b403a4f8ea7c6873
|
|
BLAKE2b-256 checksum How to use checksums |
0eeb088b99291cd669c3bab0f25dbded59a71816c1753ef934c80fcb7da45619
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.11
|
Security for denoppy 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.