Nature Inspired Optimization Algorithms

# 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:

## 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)

## Project details

Uploaded Source
Uploaded Python 3