[Paradiseo-help] Paradiseo-MOEO: diversity preservation

Romanas Puisa rpuisa at gmail.com
Jeu 22 Avr 13:20:07 CEST 2010


Hi,

Thanks for the response. Well, I've tried to use
'moeoCrowdingDiversityAssignment' instead of the default
'moeoFrontByFrontCrowdingDiversityAssignment' and it performed better but
not satisfactory. The reason why
'moeoFrontByFrontCrowdingDiversityAssignment' did not perform at all was
that the Pareto front had had only one nondominated invididual, because one
objective was optimised while the others were gradually switched on (i.e.:
one only, then two, three and so on) during the optimisation process later
on.

Cheers
Romas


On 22 April 2010 08:46, paradiseo-help <paradiseo-help at lists.gforge.inria.fr
> wrote:

> Dear Romas,
>
> Indeed, the diversity preservation procedure must be called at each
> generation of NSGA-II. This is done at the replacement step, please refer to
> the "replace" object of the NSGA-II class.
> With regards to the issue related to diversity for your problem, maybe you
> should try another diversity preservation scheme (look at diversity
> assignment in the API doc), and maybe try to develop a strategy for the
> specific case of your problem, in order to increase diversity in the
> decision space also.
>
> Regards,
>
>
> Romanas Puisa a écrit :
>
>> Hi there,
>>
>> I'm using Paradiseo-MOEO for  constrained multiobjective optimisation. The
>> problem I have is that my population tends to become uniform (all or almost
>> all invididual are the same) from time to time during the search, probably
>> once local optima are reached.
>> I'm running NSGAII which uses
>> 'moeoFrontByFrontCrowdingDiversityAssignment' for diversity preservation.
>> There are surely also a possibility to use other methdos like the partent
>> class 'moeoCrowdingDiversityAssignment' instead. I've tried to do this (by
>> reimplementing NSGAII) but it does not seem helpful.
>>
>> I've looked at  the  NSGAII implementation, and in particualar at the
>> method
>>
>> virtual void operator ()  <
>> http://paradiseo.gforge.inria.fr/addon/paradiseo-moeo/doc/classmoeoNSGAII.html#60ba3ed4287efe81e1ff66b22e1d2e14>(eoPop
>> < MOEOT > &_pop)
>>
>>
>> 00133     {
>> 00134         eoPop < MOEOT > offspring, empty_pop;
>> 00135         popEval <
>> http://paradiseo.gforge.inria.fr/addon/paradiseo-moeo/doc/classmoeoNSGAII.html#2926b2c13fbf66aa34ca8bb2d1268df4>
>> (empty_pop, _pop);      // a first eval of _pop
>>
>>
>> 00136         // evaluate fitness and diversity
>> 00137         fitnessAssignment <
>> http://paradiseo.gforge.inria.fr/addon/paradiseo-moeo/doc/classmoeoNSGAII.html#20fd563da176b72275be7f843c4aac7f
>> >(_pop);
>>
>> 00138         diversityAssignment <
>> http://paradiseo.gforge.inria.fr/addon/paradiseo-moeo/doc/classmoeoNSGAII.html#4abf4583668c6f145f4dbb0a24d2dae0
>> >(_pop);
>>
>>
>> 00139         do
>> 00140         {
>> 00141             // generate offspring, worths are recalculated if
>> necessary
>>
>> 00142             breed <
>> http://paradiseo.gforge.inria.fr/addon/paradiseo-moeo/doc/classmoeoNSGAII.html#17954849435e579d74bf37ed7b9063fc>
>> (_pop, offspring);
>>
>> 00143             // eval of offspring
>> 00144             popEval <
>> http://paradiseo.gforge.inria.fr/addon/paradiseo-moeo/doc/classmoeoNSGAII.html#2926b2c13fbf66aa34ca8bb2d1268df4>
>> (_pop, offspring);
>>
>>
>> 00145             // after replace, the new pop is in _pop. Worths are
>> recalculated if necessary
>> 00146             replace <
>> http://paradiseo.gforge.inria.fr/addon/paradiseo-moeo/doc/classmoeoNSGAII.html#75bc4b735c5de2a6fc93b2f2b63c7251>
>> (_pop, offspring);
>>
>> 00147         }
>> 00148         while (continuator <
>> http://paradiseo.gforge.inria.fr/addon/paradiseo-moeo/doc/classmoeoNSGAII.html#7eb1e36631eebbe3216167b1077e3a53>
>> (_pop));
>>
>>
>> 00149     }
>>
>> of class 'moeoNSGAII' and found that the diversity assigment, function
>> 'diversityAssignment', is called only once, just before the main loop.
>> Perhaps there is a gap in my understanding of NSGAII, but I'd think that the
>> diversity should be maintained all the time, hence being included in the
>> main loop just after the evaluation, function popEval(). Am I correct? Could
>> you please clarify this? I'd also appreciate if you could point out possible
>> reasons of the population diversity shrinking problem I have.
>>
>> Thankful in advance,
>> romas
>>
>>
>>  ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Paradiseo-help mailing list
>> Paradiseo-help at lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/paradiseo-help
>>
>
>
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.gforge.inria.fr/pipermail/paradiseo-help/attachments/20100422/82ef022b/attachment.html>


Plus d'informations sur la liste de diffusion Paradiseo-help