Multi-Objective Particle Swarm Optimization (MOPSO)

Bearable and compressed implementation of Multi-Objective Particle Swarm Optimization (MOPSO)
Updated 27 Nov 2019

View License

This function performs a Multi-Objective Particle Swarm Optimization (MOPSO) for minimizing continuous functions. The implementation is bearable, computationally cheap, and compressed (the algorithm only requires one file: MPSO.m). An 'example.m' script is provided in order to help users to use the implementation. It is also noteworthy to mention that the code is highly commented for easing the understanding. This implementation is based on the paper of Coello et al. (2004), "Handling multiple objectives with particle swarm optimization".

IMPORTANT: the objetive function that you specify must be vectorized. This means that it will take the entire population (i.e., a matrix Np x nVar, which Np is the number of particles and nVar is the number of variables) and it expects to receive a fitness value for each particle (i.e., a vector Np x 1). If the function is not vectoriyed and receives only a single value, the code will obviously rise an error.

Cite As

Víctor Martínez-Cagigal (2024). Multi-Objective Particle Swarm Optimization (MOPSO) (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2016a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired: Multiple Design Options - MOPSO (MDO-MOPSO)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

Now the function raises a warning if the objective function is badly programmed, which is usually the issue that is reported in some comments.

ParetoFront folder is now uploaded

Optimal Pareto Fronts are updated.
Function is modified in order to return the data form the repository

More benchmark functions and optimal Pareto Fronts are implemented

Mutation operator and crowding factor for repository removing are applied.