Skip to main content

NIA

NIA is a python package for Nature Inspired Optimization Algorithms which makes optimization process easy and fast.

Instalation

Check NIA's PyPI page or simply install it using pip:

pip install nia

Usage

Solve Ackley problem using Genetic Algorithm:

from nia.algorithms import GeneticAlgorithm
from nia.problems import ackley


nia = GeneticAlgorithm(cost_function=ackley,
                       lower_bond=[-5,-5],
                       upper_bond=[5,5],
                                )
nia.run()
print(nia.message);

output:

quit criteria reached best answer is: [-0.02618036 -0.03615453] and best fitness is: 0.0006327163637145361 iteration : 11

Plot:

Result gif

Customization:

from nia.algorithms import GeneticAlgorithm
# Specific selection, crossover and muttion algorithms are available under related sub-packages.
from nia.selections import Tournament
from nia.crossovers import RandomSBX
from nia.mutations import Uniform
import numpy as np

def ackley(X):
    x = X[0]
    y = X[1]
    return -20 * np.exp(-0.2 * np.sqrt(0.5 * (x**2 + y**2))) - np.exp(0.5 *
        (np.cos(2 * np.pi * x) + np.cos(2 * np.pi * y))) + np.e + 20

def log(ga):
  print(ga.best)

lower = np.array([-5,-5])
upper = np.array([5,5])

nia = GeneticAlgorithm(cost_function=ackley,
                       iteration_function=log,
                       lower_bond=lower,
                       upper_bond=upper,
                       quit_criteria = 0.0001,
                       num_variable = 2,
                       num_population = 20,
                       max_iteration = 100,
                       crossover = RandomSBX(2),
                       mutation = Uniform(0.05),
                       selection = Tournament(20)
                                )
nia.run()
print(nia.message);

output

max iteration reached best answer so far: [-0.02618036 -0.03615453] with best fitness: 0.1786046633597529 iteration : 99

Supported Algorithms :

  • Genetic algorithm (GeneticAlgorithm)
  • Differential Evolution
  • Evolutionary Programming
  • Artificial Immune System
  • Clonal Selection Algorithm
  • Biogeography-based
  • Symbiotic Organisms Search
  • Ant Colony Optimization
  • Artificial Bee Colony (ArtificialBeeColony)
  • Moth Flame Optimization Algorithm
  • Cuckoo Search
  • Green Herons Optimization Algorithm
  • Bat Algorithm
  • Whale Optimization Algorithm
  • Krill Herd
  • Fish-swarm Algorithm
  • Grey Wolf Optimizer
  • Shuffle frog-leaping Algorithm
  • Cat Swarm Optimization
  • Flower Pollination Algorithm
  • Invasive Weed Optimization
  • Water Cycle Algorithm
  • Teaching–Learning-Based Optimization
  • Particle Swarm Optimization (ParticleSwarmOptimization)
  • Simulated Annealing Algorithm
  • Gravitational Search Algorithm
  • Big Bang - Big Crunch

Supported Selection Operators :

  • Rank (Rank)
  • Tournament (Tournament)

Supported Cross Over Operators :

  • K-Point (KPoint)
  • SBX (SBX)
  • Random SBX (RandomSBX)

Supported Mutation Operators :

  • Uniform (Uniform)

Metadata

Release files for nia 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nia 0.0.3
File Size Uploaded
nia-0.0.3.tar.gz 10.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nia 0.0.3
File Interpreter ABI Platform
nia-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 27.1 kB

Release files / nia-0.0.3.tar.gz

Download URL nia-0.0.3.tar.gz
Size 10.9 kB
Tags Source
SHA-256 checksum
How to use checksums
59a55839952a0082b14de8e149a9d990987e1f03b1addc749f258d4550f9f355
BLAKE2b-256 checksum
How to use checksums
799018a76ff79ab6b788ccbc403e57ab40aac8314d0fc4b812d1314ae241e6ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release files / nia-0.0.3-py3-none-any.whl

Download URL nia-0.0.3-py3-none-any.whl
Size 16.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
34f6527bbd75f0da17e52b401ab3d6847518a0ff97e045bda39fdbb32d946c46
BLAKE2b-256 checksum
How to use checksums
9ae87907190ae2bae026cc8324e1cacc9fd98ec33bbaf52a0cc5b2db9951d9fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page