enoppy
ENOPPY: A Python Library for Engineering Optimization Problems
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 5 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.1%) to scientific vocabulary
Keywords
Repository
ENOPPY: A Python Library for Engineering Optimization Problems
Basic Info
- Host: GitHub
- Owner: thieu1995
- License: gpl-3.0
- Language: Python
- Default Branch: main
- Homepage: https://enoppy.readthedocs.io
- Size: 154 KB
Statistics
- Stars: 14
- Watchers: 1
- Forks: 2
- Open Issues: 0
- Releases: 2
Topics
Metadata Files
README.md

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:
sh
$ pip install enoppy
After installation, you can import ENOPPY as any other Python module:
```sh $ python
import enoppy enoppy.version ```
Usage
This is a minimal usage example of the enoppy library.
1) How to get the problem and use it
```python from enoppy.paperbased.moeosma2023 import SpeedReducerProblem
SRP = SpeedReducerProblem
SP = SpringProblem
HTBP = HydrostaticThrustBearingProblem
VPP = VibratingPlatformProblem
CSP = CarSideImpactProblem
WRMP = WaterResourceManagementProblem
BCP = BulkCarriersProblem
MPBPP = MultiProductBatchPlantProblem
srpprob = SpeedReducerProblem() print("Lower bound for this problem: ", srpprob.lb) print("Upper bound for this problem: ", srpprob.ub) x0 = srpprob.createsolution() print("Get the objective values of x0: ", srpprob.getobjs(x0)) print("Get the constraint values of x0: ", srpprob.getcons(x0)) print("Evaluate with default penalty function: ", srpprob.evaluate(x0))
```
2) Design my own penalty function:
```python import numpy as np from enoppy.paperbased.moeosma2023 import HTBP
HTBP = HydrostaticThrustBearingProblem
def penaltyfunc(listobjectives, listconstraints): listconstraints[listconstraints < 0] = 0 return np.sum(listobjectives) + 1e5 * np.sum(list_constraints**2)
htbpprob = HTBP(fpenalty=penaltyfunc) print("Lower bound for this problem: ", htbpprob.lb) print("Upper bound for this problem: ", htbpprob.ub) x0 = htbpprob.createsolution() print("Get the objective values of x0: ", htbpprob.getobjs(x0)) print("Get the constraint values of x0: ", htbpprob.getcons(x0)) print("Evaluate with default penalty function: ", htbpprob.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:
```code @software{nguyenvanthieu20237953207, 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.
Owner
- Name: Nguyen Van Thieu
- Login: thieu1995
- Kind: user
- Location: Earth
- Company: AIIR Group
- Website: https://thieu1995.github.io/
- Repositories: 13
- Profile: https://github.com/thieu1995
Knowledge is power, sharing it is the premise of progress in life. It seems like a burden to someone, but it is the only way to achieve immortality.
Citation (CITATION.cff)
cff-version: 1.1.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Van Thieu"
given-names: "Nguyen"
orcid: "https://orcid.org/0000-0001-9994-8747"
title: "ENOPPY: A Python Library for Engineering Optimization Problems"
version: 0.1.1
doi: 10.5281/zenodo.7953206
date-released: 2023-05-20
url: "https://github.com/thieu1995/enoppy"
GitHub Events
Total
- Watch event: 4
Last Year
- Watch event: 4
Issues and Pull Requests
Last synced: 7 months ago
All Time
- Total issues: 2
- Total pull requests: 1
- Average time to close issues: 1 day
- Average time to close pull requests: about 1 month
- Total issue authors: 1
- Total pull request authors: 1
- Average comments per issue: 3.5
- Average comments per pull request: 0.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- theshyyi (2)
Pull Request Authors
- Saethox (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 35 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 2
- Total maintainers: 1
pypi.org: enoppy
ENOPPY: A Python Library for Engineering Optimization Problems
- Homepage: https://github.com/thieu1995/enoppy
- Documentation: https://enoppy.readthedocs.io/
- License: GPLv3
-
Latest release: 0.1.1
published almost 3 years ago