enoppy

ENOPPY: A Python Library for Engineering Optimization Problems

https://github.com/thieu1995/enoppy

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

benchmark-problems chemical-process-problems constrained-problems engineering-optimization engineering-problems livestock-feed-ration-optimization mathematical-optimization mechanical-design-problems multi-objectives-optimization-problems power-system-problems process-design-and-synthesis-problems real-world-optimization rolling-element-bearing-design-problems
Last synced: 6 months ago · JSON representation ·

Repository

ENOPPY: A Python Library for Engineering Optimization Problems

Basic Info
Statistics
  • Stars: 14
  • Watchers: 1
  • Forks: 2
  • Open Issues: 0
  • Releases: 2
Topics
benchmark-problems chemical-process-problems constrained-problems engineering-optimization engineering-problems livestock-feed-ration-optimization mathematical-optimization mechanical-design-problems multi-objectives-optimization-problems power-system-problems process-design-and-synthesis-problems real-world-optimization rolling-element-bearing-design-problems
Created almost 3 years ago · Last pushed about 2 years ago
Metadata Files
Readme Changelog License Code of conduct Citation

README.md

ENOPPY


GitHub release Wheel PyPI version PyPI - Python Version PyPI - Status PyPI - Downloads Downloads Tests & Publishes to PyPI GitHub Release Date Documentation Status Chat Average time to resolve an issue Percentage of issues still open GitHub contributors GitTutorial DOI License: GPL v3

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

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
bug (2)
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

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 35 Last month
Rankings
Dependent packages count: 7.3%
Average: 29.5%
Forks count: 30.5%
Stargazers count: 39.4%
Dependent repos count: 40.9%
Maintainers (1)
Last synced: 6 months ago