Features
========



Algorithms
-----------------------------

NiaPy features more than 30 algorithms. They are categorized as basic, modified, and others.

Basic algorithms
~~~~~~~~~~~~~~~~

- 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
- Harmony Search Algorithm
- Krill Herd Algorithm
- Monarch butterfly optimization
- Monkey King Evolution
- Moth flame optimizer
- Particle swarm optimization
- Sine Cosine Algorithm

Documentation for the basic algorithms can be found here: :mod:`NiaPy.algorithms.basic`.


Modified algorithms
~~~~~~~~~~~~~~~~~~~

- Hybrid bat algorithm
- Self-adaptive differential evolution algorithm
- Dynamic population size self-adaptive differential evolution algorithm

Documentation for the modified algorithms can be found here: :mod:`NiaPy.algorithms.modified`.


Other algorithms
~~~~~~~~~~~~~~~~

- Anarchic society optimization
- Hill climb algorithm
- Multiple trajectory search
- Nelder mead method
- Simulated annealing algorithm

Documentation for the other algorithms can be found here: :mod:`NiaPy.algorithms.other`.


Functions
-----------------------------

NiaPy features more than 30 benchmark functions. Documentation for them can be found here: :mod:`NiaPy.benchmarks`.

- 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


Other examples:
-----------------------------

- Using different termination conditions (nFES, nGEN, reference value)
- Basic statistics example (min, max, mean, median, std)
- Storing improvements during the evolutionary cycle
- Custom initialization of initial population
