Python micro framework for building nature-inspired algorithms.
Project description
About
Nature-inspired algorithms are a very popular tool for solving optimization problems. Numerous variants of nature-inspired algorithms have been developed since the beginning of their era. To prove their versatility, those were tested in various domains on various applications, especially when they are hybridized, modified or adapted. However, implementation of nature-inspired algorithms is sometimes a difficult, complex and tedious task. In order to break this wall, NiaPy is intended for simple and quick use, without spending time for implementing algorithms from scratch.
Mission
numerous benchmark functions implementations,
use of various nature-inspired algorithms without struggle and effort with a simple interface,
easy comparison between nature-inspired algorithms and
export of results in various formats (Pandas DataFrame, JSON, Excel).
Overview
Python micro framework for building nature-inspired algorithms. Official documentation is available here.
The micro framework features following algorithms:
- basic:
Artificial bee colony algorithm
Bat algorithm
Camel algorithm
Cuckoo search
Differential evolution algorithm
Evolution Strategy
Firefly algorithm
Fireworks algorithm
Flower pollination algorithm
Forest optimization algorithm
Genetic algorithm
Glowworm swarm optimization
Grey wolf optimizer
Monarch butterfly optimization
Moth flame optimizer
Harmony Search algorithm
Krill herd algorithm
Monkey king evolution
Multiple trajectory search
Particle swarm optimization
Sine cosine algorithm
- modified:
Hybrid bat algorithm
Self-adaptive differential evolution algorithm
Dynamic population size self-adaptive differential evolution algorithm
- other:
Anarchic society optimization algorithm
Hill climbing algorithm
Multiple trajectory search
Nelder mead method or downhill simplex method or amoeba method
Simulated annealing algorithm
The following benchmark functions are included in NiaPy:
Ackley
- Alpine
Alpine1
Alpine2
Bent Cigar
Chung Reynolds
Csendes
Discus
Dixon-Price
Elliptic
Griewank
Happy cat
HGBat
Katsuura
Levy
Michalewicz
Perm
Pintér
Powell
Qing
Quintic
Rastrigin
Ridge
Rosenbrock
Salomon
Schumer Steiglitz
- Schwefel
Schwefel 2.21
Schwefel 2.22
- Sphere
Sphere2 -> Sphere with different powers
Sphere3 -> Rotated hyper-ellipsoid
- Step
Step2
Step3
Stepint
Styblinski-Tang
Sum Squares
Trid
Weierstrass
Whitley
Zakharov
Setup
Requirements
Python 3.6.x or 3.7.x (backward compatibility with 2.7.x)
Pip
Dependencies
numpy >= 1.16.2
scipy >= 1.2.1
enum34 >= 1.1.6 (if using python version < 3.4)
xlsxwriter >= 1.1.6
matplotlib >= 2.2.4
List of development dependencies and requirements can be found in the installation section of NiaPy documentation.
Installation
Install NiaPy with pip:
$ pip install NiaPy
Install NiaPy with conda:
$ conda install -c niaorg niapy
Install NiaPy on Fedora:
$ yum install python3-niapy
Or directly from the source code:
$ git clone https://github.com/NiaOrg/NiaPy.git
$ cd NiaPy
$ python setup.py install
Usage
After installation, the package can imported:
$ python
>>> import NiaPy
>>> NiaPy.__version__
For more usage examples please look at examples folder.
Contributing
We encourage you to contribute to NiaPy! Please check out the Contributing to NiaPy guide for guidelines about how to proceed.
Everyone interacting in NiaPy’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the NiaPy code of conduct.
Licence
This package is distributed under the MIT License. This license can be found online at http://www.opensource.org/licenses/MIT.
Disclaimer
This framework is provided as-is, and there are no guarantees that it fits your purposes or that it is bug-free. Use it at your own risk!
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file NiaPy-2.0.0rc11.tar.gz
.
File metadata
- Download URL: NiaPy-2.0.0rc11.tar.gz
- Upload date:
- Size: 149.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd17f76beb0edbe511136a13fcf5a3cff9b27c59162f20b0e11d75688121be97 |
|
MD5 | 1a55095e12b910e5f642b51832588b26 |
|
BLAKE2b-256 | 7f8445a78fdbabf120741630da14c12d6cbe09064f13aaec4c1bbae2d2b83fb2 |
File details
Details for the file NiaPy-2.0.0rc11-py3-none-any.whl
.
File metadata
- Download URL: NiaPy-2.0.0rc11-py3-none-any.whl
- Upload date:
- Size: 211.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 399dde08bf7a0f9c7658dac258942c923d3fa44f25299d9dfe5a9dfea60d0c82 |
|
MD5 | e5b83b256d73e39eb9c723752b29efd5 |
|
BLAKE2b-256 | be92c222f5f377afb24b7f59363e463ff7b837e624b704d67aaf647e52004b06 |