psychogeekir / pyshoal

Particle Swarm Optimisation implementation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pyshoal

An implementation of Particle Swarm Optimisation in Python

Typical usage:

import numpy as np
from pyshoal import PSO

def rastrigin(a, b):
    """Objective function."""
    return 10 * 2 + \
           (a**2 - (10 * np.cos(2 * np.pi * a))) + \
           (b**2 - (10 * np.cos(2 * np.pi * b)))

my_pso = PSO(obj_func=rastrigin,
             box_bounds=((-500, 500), (-500, 500)),
             n_parts=144,
             topo='gbest',
             weights=[0.9, 0.4, 2.1, 2.1],
             extra_args=None,
             minimise=True)

results = my_pso.opt(max_itr=100,
                     tol_thres=(0.01, 0.01),
                     tol_win=5,
                     plot=True,
                     save_plots=False)

(swarm_best, swarm_best_perf, n_itrs) = results

Please see the docstrings in pso.py for more info on pyshoal usage.

Note that pyshoal originally allowed for parallel execution of the objective function at each PSO step. This is not presently supported.

About

Particle Swarm Optimisation implementation

License:GNU General Public License v3.0


Languages

Language:Python 100.0%