question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Implement Multi-Objective PSO Variants

See original GitHub issue

Hi! Thank you for checking out this issue!

Currently, this whole part is pretty much open. As of now, I’m planning to give PySwarms four major optimization capabilities:

  • single-objective continuous optimization
  • single-objective discrete optimization
  • multi-objective optimization, and
  • constrained optimization.

We’ve established some grounds on single-objective continuous optimization (with the standard implementations of global-best and local-best PSO). But we haven’t done anything yet as for multi-objective optimization. Would you like to give us a headstart?

These are the steps that will be undertaken to close this issue:

  1. Creating an abstract class in the pyswarms.base module. This will provide a skeleton on how other implementations of the same optimization nature would be written. Take for example how global-best (pyswarms.single.gbest) and local-best (pyswarms.single.lbest) are inheriting from the class SwarmBase (this is the abstract class for single-objective continuous).

  2. Implementing a standard PSO algorithm inheriting the abstract class written in Step 1. This means that a particular multi-objective PSO optimization algorithm will be implemented while inheriting the base class.

  3. Writing unit tests and use-case examples This is to show how the proposed skeleton and algorithm will be used by the end-user, and of course some unit tests to check its robustness (please check the tests directory)

As you can see, these steps are asking for a lot of things. Right now, we’re setting this a low-priority because I am currently writing the abstract classes for the other PSO variants. If you think you wanted to be a super-contributor, then go ahead and do all the steps above. 👍 😄 But I believe it would be much better if I set-up a basis first then we iterate from there.

But perhaps, the best way to contribute on this issue would be the following: (note that these contributions don’t require pull requests)

  • Propose features on how to implement the abstract classes. What do you think are the things to consider when making an abstract class for multi-objective PSO? You can use your domain-knowledge, and your past experience in handling multi-objective optimization problems to point out some helpful guides on how to set-up the abstract classes. I can take all of these into consideration when making the first commit in this issue.
  • Suggest multi-objective PSO implementations that can be implemented in the future. If you’re planning to do this, please link the paper where it came from (it’s okay if there’s paywall). It would be better if the research is highly-cited, and is coming from reputable journals in the field of computational intelligence.

That’s it for this issue!! For any questions, just drop a comment here!

Update (10/5/2017)

  • Setting this to high-priority signifying that this is a major undertaking for the development roadmap

Issue Analytics

  • State:closed
  • Created 6 years ago
  • Comments:16 (6 by maintainers)

github_iconTop GitHub Comments

1reaction
jljsiocommented, Jun 3, 2018

@szhan Yeah. It’s on my radar to assist in implementing CPSO once the backend is improved. I’m not sure when exactly we will get to CPSO, but I would like to have some CPSO stuff working by the 2018-2019 academic year.

1reaction
ljvmiranda921commented, Oct 5, 2017

Hi @SioKCronin ! Thanks for your help! Unfortunately, I haven’t started writing code for the base class here. I hit a bump after writing the Discrete PSO base class. I have some few rough ideas, hopefully I can open up a PR by next week and you can see what I came up with. I believe it will just be a Base class full of NotImplementedErrors, but you can check it and see if the “skeleton” is good for other implementations.

Read more comments on GitHub >

github_iconTop Results From Across the Web

MULTI-OBJECTIVE PARTICLE SWARM OPTIMIZATION - CORE
This proposed method was val- idated through comparisons with existing state of the art multiobjective algorithms through the use of established benchmarks and ......
Read more >
Multi-objective particle swarm optimization with random ...
Yen and Leong [44] proposed an MOPSO algorithm with dynamic multiple swarms. In the swarm growing strategy, they use uniform mutation operator ...
Read more >
An Overview of Variants and Advancements of PSO Algorithm
To solve the multi-objective optimization problems, Seok et al. [31] introduced a modified variant of the PSO algorithm, namely the homogeneous ...
Read more >
Multi-Objective Particle Swarm Optimization (MOPSO ...
This paper reviews all the applications of MOPSO in miscellaneous areas followed by the study on MOPSO variants in our next publication.
Read more >
Multi-objective particle swarm optimization applied to water ...
In this paper, a multi-objective variant of the particle swarm optimization (PSO) algorithm is applied to water distribution system optimization.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found