Skip to main content

ENOPPY: A Python Library for Engineering Optimization Problems

Project description

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 engineering problems from CEC competition functions from 2005, 2008, 2010, 2013, 2014, 2015, 2017, 2019, 2020, 2021, 2022.

  • Free software: GNU General Public License (GPL) V3 license
  • Total problems: > 50 problems
  • Documentation: https://enoppy.readthedocs.io/en/latest/
  • Python versions: 3.6.x, 3.7.x, 3.8.x, 3.9.x, 3.10.x
  • Dependencies: numpy, scipy, pandas, matplotlib

Installation

Install with pip

Install the current PyPI release:

$ pip install enoppy==0.1.0

Or install the development version from GitHub:

pip install git+https://github.com/thieu1995/enoppy

Install from source

In case you want to install directly from the source code, use:

$ git clone https://github.com/thieu1995/enoppy.git
$ cd enoppy
$ python setup.py install

Lib's structure

docs
examples
enoppy
    paper_based
        pdo_2022.py
        rwco_2020.py
    problem_based
        chemical.py
        mechanism.py
    utils
        operator.py
        validator.py
        visualize.py
    __init__.py
    engineer.py
README.md
setup.py

Usage

After installation, you can import ENOPPY as any other Python module:

$ python
>>> import enoppy
>>> enoppy.__version__

Let's go through some examples.

Examples

How to get the function and use it

1st way

from enoppy.cec_based.cec2014 import F12014

func = F12014(ndim=30)
func.evaluate(func.create_solution())

## or

from enoppy.cec_based import F102014

func = F102014(ndim=50)
func.evaluate(func.create_solution())

2nd way

import enoppy

funcs = enoppy.get_functions_by_classname("F12014")
func = funcs[0](ndim=10)
func.evaluate(func.create_solution())

## or

all_funcs_2014 = enoppy.get_functions_based_classname("2014")
print(all_funcs_2014)

For more usage examples please look at examples folder.

Get helps (questions, problems)

Want to have an instant assistant? Join our telegram community at link We share lots of information, questions, and answers there. You will get more support and knowledge there.

Cite Us

If you are using enoppy in your project, we would appreciate citations:

@software{thieu_nguyen_2020_3711682,
  author       = {Nguyen Van Thieu},
  title        = {ENOPPY: A Python Library for Engineering Optimization Problems},
  year         = 2020,
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.3620960},
  url          = {https://doi.org/10.5281/zenodo.3620960.}
}

References

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 

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

enoppy-0.1.0.tar.gz (36.8 kB view hashes)

Uploaded Source

Built Distribution

enoppy-0.1.0-py3-none-any.whl (31.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page