Skip to content
/ SLPSO Public

Social Learning Particle Swarm Optimization algorithm

License

Notifications You must be signed in to change notification settings

vsg-root/SLPSO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SLPso - Social Learning Particle Swarm Optimization

License Python 3.10

SLPso is a Python library that implements the Social Learning Particle Swarm Optimization (SL-PSO) algorithm for scalable optimization problems.

About the Algorithm

This library used this article as a basis:

A Social Learning Particle Swarm Optimization Algorithm for Scalable Optimization Authors: Ran Cheng and Yaochu Jin Journal: Information Sciences, Volume 291, Pages 43-60, Year 2015 DOI: 10.1016/j.ins.2014.08.039 URL to the Paper: Read the full paper

If you use the SLPso library in your research, please consider citing this library.

Reveal quote

SLPso - Social Learning Particle Swarm Optimization [Software]. (2023). Available at: https://github.com/vsg-root/slpso.

About SL-PSO

The Social Learning Particle Swarm Optimization is a population-based optimization algorithm inspired by the behavior of a swarm of particles. It leverages social interactions to enhance exploration of the search space and convergence to optimal solutions in scalable optimization problems.

Important Note

It is crucial to highlight that this library's performance did not match the results reported in the referenced paper. The following results were obtained through extensive experiments, each run 30 times for different dimensions, with 100 particles, and a total of 200,000 fitness evaluations for each experiment.

- Restrigin Function

Texto Alternativo 1

- Ackley Function

Texto Alternativo 1

Installation

To get started with SLPso, you can install it via pip:

pip install slpso

Try your first SL-PSO program

>>> import numpy as np
>>> from slpso.slpso import SLPSO

>>> def custom_objective_function(positions: np.ndarray) -> np.ndarray:
    """
    The custom objective function to be minimized.

    Args:
        positions (np.ndarray): An array of particle positions.

    Returns:
        np.ndarray: An array of fitness values.
    """
>>>     return np.sum(positions ** 2, axis=1)

>>> lower_bound = -30.0  # Set the lower bound
>>> upper_bound = 30.0   # Set the upper bound

>>> slpso_optimizer = SLPSO(custom_objective_function,
                            seed=1,
                            lower_bound=lower_bound,
                            upper_bound=upper_bound,
                            show_progress=False)

>>> global_best_position, global_best_value = slpso_optimizer.optimize()
>>> print("Global Best Position:", global_best_position)
>>> print("Global Best Value:", global_best_value)

Note: This library is not affiliated with or endorsed by the original researchers. It is an independent implementation of the SL-PSO algorithm for the convenience of users interested in applying it to their optimization problems. Please do not confuse this library with the work of the original authors.

About

Social Learning Particle Swarm Optimization algorithm

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages