Skip to content

A python library for the following Metaheuristics: Adaptive Random Search, Ant Lion Optimizer, Arithmetic Optimization Algorithm, Artificial Bee Colony Optimization, Artificial Fish Swarm Algorithm, Bat Algorithm, Biogeography Based Optimization, Cross-Entropy Method, Crow Search Algorithm, Cuckoo Search, Differential Evolution

License

Notifications You must be signed in to change notification settings

Wahhab-Zendehdel/pyMetaheuristic

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pyMetaheuristic

Due to pyMetaheuristic is not able to fork. This repo is created to support that repo.

Introduction

A python library for the following Metaheuristics:

Adaptive Random Search, Ant Lion Optimizer, Arithmetic Optimization Algorithm, Artificial Bee Colony Optimization, Artificial Fish Swarm Algorithm, Bat Algorithm, Biogeography Based Optimization, Cross-Entropy Method, Crow Search Algorithm, Cuckoo Search, Differential Evolution, Dispersive Flies Optimization, Dragonfly Algorithm, Firefly Algorithm, Flow Direction Algorithm, Flower Pollination Algorithm, Genetic Algorithm, Grasshopper Optimization Algorithm, Gravitational Search Algorithm, Grey Wolf Optimizer, Harris Hawks Optimization, Improved Grey Wolf Optimizer, Improved Whale Optimization Algorithm, Jaya, Jellyfish Search Optimizer, Krill Herd Algorithm, Memetic Algorithm, Moth Flame Optimization, Multiverse Optimizer, Pathfinder Algorithm, Particle Swarm Optimization, Random Search, Salp Swarm Algorithm, Simulated Annealing, Sine Cosine Algorithm, Student Psychology Based Optimization; Symbiotic Organisms Search; Teaching Learning Based Optimization, Whale Optimization Algorithm.

Usage

1.Install

pip install pyMetaheuristic

2.Import

# Import PSO
from pyMetaheuristic.algorithm import particle_swarm_optimization

# Import a Test Function. Available Test Functions: https://bit.ly/3KyluPp
from pyMetaheuristic.test_function import easom

# OR Define your Own Custom Function. The function input should be a list of values, 
# each value represents a dimenstion (x1, x2, ...xn) of the problem.
import numpy as np
def easom(variables_values = [0, 0]):
    x1, x2     = variables_values
    func_value = -np.cos(x1)*np.cos(x2)*np.exp(-(x1 - np.pi)**2 - (x2 - np.pi)**2)
    return func_value

# Run PSO
parameters = {
    'swarm_size': 250,
    'min_values': (-5, -5),
    'max_values': (5, 5),
    'iterations': 500,
    'decay': 0,
    'w': 0.9,
    'c1': 2,
    'c2': 2
}
pso = particle_swarm_optimization(target_function = easom, **parameters)

# Print Solution
variables = pso[:-1]
minimum   = pso[ -1]
print('Variables: ', np.around(variables, 4) , ' Minimum Value Found: ', round(minimum, 4) )

# Plot Solution
from pyMetaheuristic.utils import graphs
plot_parameters = {
    'min_values': (-5, -5),
    'max_values': (5, 5),
    'step': (0.1, 0.1),
    'solution': [variables],
    'proj_view': '3D',
    'view': 'browser'
}
graphs.plot_single_function(target_function = easom, **plot_parameters)

3.Colab Demo

Try it in Colab:

Algorithm Name Colab
Adaptive Random Search Open In Colab img
Ant Lion Optimizer Open In Colab img
Arithmetic Optimization Algorithm Open In Colab img
Artificial Bee Colony Optimization Open In Colab img
Artificial Fish Swarm Algorithm Open In Colab img
Bat Algorithm Open In Colab img
Biogeography Based Optimization Open In Colab img
Cross-Entropy Method Open In Colab img
Crow Search Algorithm Open In Colab img
Cuckoo Search Open In Colab img
Differential Evolution Open In Colab img
Dispersive Flies Optimization Open In Colab img
Dragonfly Algorithm Open In Colab img
Firefly Algorithm Open In Colab img
Flow Direction Algorithm Open In Colab img
Flower Pollination Algorithm Open In Colab img
Genetic Algorithm Open In Colab img
Grey Wolf Optimizer Open In Colab img
Grasshopper Optimization Algorithm Open In Colab img
Gravitational Search Algorithm Open In Colab img
Harris Hawks Optimization Open In Colab img
Improved Grey Wolf Optimizer Open In Colab img
Improved Whale Optimization Algorithm Open In Colab img
Jaya Open In Colab img
Jellyfish Search Optimizer Open In Colab img
Krill Herd Algorithm Open In Colab img
Memetic Algorithm Open In Colab img
Moth Flame Optimization Open In Colab img
Multiverse Optimizer Open In Colab img
Pathfinder Algorithm Open In Colab img
Particle Swarm Optimization Open In Colab img
Random Search Open In Colab img
Salp Swarm Algorithm Open In Colab img
Simulated Annealing Open In Colab img
Sine Cosine Algorithm Open In Colab img
Student Psychology Based Optimization Open In Colab img
Symbiotic Organisms Search Open In Colab img
Teaching Learning Based Optimization Open In Colab img
Whale Optimization Algorithm Open In Colab img

4. Test Functions

  • Available Test Functions: https://bit.ly/3KyluPp
  • Test Functions and their Optimal Solutions with 2D or 3D plots Open In Colab

Multiobjective Optimization or Many Objectives Optimization

For Multiobjective Optimization or Many Objectives Optimization try pyMultiobjective

TSP (Travelling Salesman Problem)

For Travelling Salesman Problems try pyCombinatorial

Acknowledgement

This section is dedicated to all the people that helped to improve or correct the code. Thank you very much!

About

A python library for the following Metaheuristics: Adaptive Random Search, Ant Lion Optimizer, Arithmetic Optimization Algorithm, Artificial Bee Colony Optimization, Artificial Fish Swarm Algorithm, Bat Algorithm, Biogeography Based Optimization, Cross-Entropy Method, Crow Search Algorithm, Cuckoo Search, Differential Evolution

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%