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, 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,Memetic Algorithm, Moth Flame Optimization, Multiverse Optimizer, Particle Swarm Optimization, Random Search, Salp Swarm Algorithm, Simulated Annealing, Sine Cosine Algorithm, Whale Optimization Algorithm.
- Install
pip install pyMetaheuristic
- 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)
- Try it in Colab:
- Adaptive Random Search ( Colab Demo )
- Ant Lion Optimizer ( Colab Demo )
- Arithmetic Optimization Algorithm ( Colab Demo )
- Artificial Bee Colony Optimization ( Colab Demo )
- Artificial Fish Swarm Algorithm ( Colab Demo )
- Bat Algorithm ( Colab Demo )
- Biogeography Based Optimization ( Colab Demo )
- Cross-Entropy Method ( Colab Demo )
- Cuckoo Search ( Colab Demo )
- Differential Evolution ( Colab Demo )
- Dispersive Flies Optimization ( Colab Demo )
- Dragonfly Algorithm ( Colab Demo )
- Firefly Algorithm ( Colab Demo )
- Flow Direction Algorithm ( Colab Demo )
- Flower Pollination Algorithm ( Colab Demo )
- Genetic Algorithm ( Colab Demo )
- Grey Wolf Optimizer ( Colab Demo )
- Grasshopper Optimization Algorithm ( Colab Demo )
- Gravitational Search Algorithm ( Colab Demo )
- Harris Hawks Optimization ( Colab Demo )
- Improved Grey Wolf Optimizer ( Colab Demo )
- Improved Whale Optimization Algorithm ( Colab Demo )
- Jaya ( Colab Demo )
- Jellyfish Search Optimizer ( Colab Demo )
- Memetic Algorithm ( Colab Demo )
- Moth Flame Optimization ( Colab Demo )
- Multiverse Optimizer ( Colab Demo )
- Particle Swarm Optimization ( Colab Demo )
- Random Search ( Colab Demo )
- Salp Swarm Algorithm ( Colab Demo )
- Simulated Annealing ( Colab Demo )
- Sine Cosine Algorithm ( Colab Demo )
- Whale Optimization Algorithm ( Colab Demo )
This section is dedicated to all the people that helped to improve or correct the code. Thank you very much!
- Raiser (01.MARCH.2022) - https://github.com/mpraiser - University of Chinese Academy of Sciences (China)