Multi-objective optimization with PyGAD - maximin algorithm

118 Views Asked by At

I have a multi-objective optimization problem for which I would like to use the PyGAD library. I would like to use the maximin algorithm for multi-objective optimization, but in order to do so I need access to the fitness values of each other design in the population, since the maximin algorithm takes into account the relative fitness of a given design against all other designs in the population.

I understand PyGAD has some capabilities for batch computation of fitness values to speed up calculations, but I don't know PyGAD well enough to see a clear way to accomplish this maximin fitness computation. Could someone point me in the right direction on this? One potential way might be to use the on_fitness() callback, but I'm not sure how to access the fitness values of the current generation at that point.

I have read through the PyGAD documentation at https://pygad.readthedocs.io/en/latest/index.html and especially looked at the section Life Cycle of PyGAD. So far nothing is making sense and I don't see a clear way to access the fitness values of the population. It looks like it's an attribute somewhere.

I have looked at the question "is there a way to perform multi-objective analysis with pygad module?" and see that while the response was no, the answer was given almost two years ago as of this writing and the current version of PyGAD might have a path forward.

1

There are 1 best solutions below

0
On

Multi-objective optimization is not yet supported by PyGAD.

[Edit 27 Sept. 2023] Multi-objective optimization is supported in PyGAD 3.2.0 and above. This is an example: https://github.com/ahmedfgad/GeneticAlgorithmPython/blob/master/examples/example_multi_objective.py