Project-Platypus / Platypus

A Free and Open Source Python Library for Multiobjective Optimization
GNU General Public License v3.0
553 stars 152 forks source link

Open discussions page for questions #220

Closed EwoutH closed 6 months ago

EwoutH commented 6 months ago

Would it be possible to enable the GitHub Discussions page for this repository? This way there is a central place for questions from users, without them having to open an issue.

See https://docs.github.com/en/discussions/quickstart

FrancoisGLEYZON commented 6 months ago

It would be very nice, thanks you @EwoutH !

Maybe it is then currently not the best location to ask it, but there is a small question (as I did not find any information in the documents or exemples) :

Is there a possibility, using platypus optimisation tool, to save or archive the non dominated points at each generation ? The goal is to be able to track the evolution of the Pareto front along the optimisation in order to have a visual representation of the convergence (or not) of the results.

I really think that it has to do somthing with the "Archive" but given my tries, I was not able to find a way to use it succefully. I will continue to look for it but I would appreciate any tips or advise ;) Thanks !

2024-01-17 09_40_25-Inbox - Francois Gleyzon@de ebmpapst com

PS : Or from my most recent understanding it as something to do more with "callback") like for example

algorithm.run(300, callback=function)

But then how to define this function ? I have written such lines for the moments, which lead me to only some frame of the Pareto Front and not the all evolution (which I suppos is dictated by this nfe value in some way)

def callback_function(algorithm):
      solutions_list.append(deepcopy(algorithm.result))
      nfe.append(algorithm.nfe)
dhadka commented 6 months ago

@EwoutH Thanks for the suggestion! Discussions are enabled.

@FrancoisGLEYZON Callback is the right approach. See the following for an example: https://github.com/Project-Platypus/Platypus/blob/2c78f234f60cb3020512d55733eeaeed8cf289a2/examples/tsp.py#L36