[Paradiseo-help] an error using NSGA-II and eoGEnContinue class

paradiseo-help paradiseo-help at lists.gforge.inria.fr
Mar 29 Avr 11:55:05 CEST 2008


Manuel Chica Serrano a écrit :
> Dear colleague,
>
> thanks so much for your quick answer.
> I tried to fix the problem with the code you provide me
>
>   eoTimeContinue < MyAppli > term(MAX_TIME);
>   eoSGAGenOp < MyAppli > op (xover, P_CROSS, mutation, P_MUT);
>   moeoNSGAII < MyAppli > nsgaII (term, eval, op);
>
> but the same error messages appear:
>
> --/paradiseo-moeo/src/algo/moeoNSGAII.h: In constructor 
> `moeoNSGAII<MOEOT>::moeoNSGAII(eoContinue<EOT>&, eoEvalFunc<EOT>&, 
> eoGenOp<EOT>&) [with MOEOT = Tsalbp]':
> --/main.cpp:122:   instantiated from here
> --/paradiseo-moeo/src/algo/moeoNSGAII.h:90: error: no matching 
> function for call to `eoGenContinue<Tsalbp>::eoGenContinue()'
> --/paradiseo-eo/src/eoGenContinue.h:35: note: candidates are: 
> eoGenContinue<Tsalbp>::eoGenContinue(const eoGenContinue<Tsalbp>&)
> --/paradiseo-eo/src/eoGenContinue.h:47: note:    
> eoGenContinue<EOT>::eoGenContinue(long unsigned int, long unsigned 
> int&) [with EOT = Tsalbp]
> --/paradiseo-eo/src/eoGenContinue.h:40: note:    
> eoGenContinue<EOT>::eoGenContinue(long unsigned int) [with EOT = Tsalbp]
>
> --/main.cpp:122:   instantiated from here
> --/paradiseo-moeo/src/algo/moeoNSGAII.h:90: error: no matching 
> function for call to `eoSGAGenOp<Tsalbp>::eoSGAGenOp()'
> --/paradiseo-eo/src/eoSGAGenOp.h:45: note: candidates are: 
> eoSGAGenOp<Tsalbp>::eoSGAGenOp(const eoSGAGenOp<Tsalbp>&)
> --/paradiseo-eo/src/eoSGAGenOp.h:54: note:      
> eoSGAGenOp<EOT>::eoSGAGenOp(eoQuadOp<EOT>&, double, eoMonOp<EOT>&, 
> double) [with EOT = Tsalbp]
>
> Is there any problem with the NSGA-II constructor when it doesn't use 
> a stopping criteria guided by the generations?
>
> Thanks!
> Best regards
>
>
> On Tue, Apr 29, 2008 at 10:43 AM, 
> <paradiseo-help at lists.gforge.inria.fr 
> <mailto:paradiseo-help at lists.gforge.inria.fr>> wrote:
>
>     Dear user,
>
>     All you shoud do is :
>
>       eoTimeContinue < MyAppli > term(MAX_TIME);
>       eoSGAGenOp < MyAppli > op (xover, P_CROSS, mutation, P_MUT);
>       moeoNSGAII < MyAppli > nsgaII (term, eval, op);
>
>     Regards,
>     ParadisEO team
>
>
>     Manuel Chica Serrano a écrit :
>
>         Hi all,
>
>         I am using Paradiseo 1.0 to develop an NSGA-II algorithm with
>         an order coding. I can compile and run the program by
>         considering the maximum number of generations
>         as the stopping criteria. This is my NSGA-II declaration:
>
>         moeoNSGAII <Tsalbp> nsgaII (MAX_GEN, eval, *cross, P_CROSS,
>         *mut, P_MUT);    // Tsalbp is my representation classname
>
>         However, I want to use a time limit to stop the algorithm
>         execution. As it is written in the documentation, I use an
>         eoContinue class to
>         specify the stopping criteria:
>
>         eoContinue<Tsalbp>& term = do_make_continue_tsalbp(MAX_TIME,
>         MAX_GEN);
>
>         and a eoGenOp to ensamble all the genetic operators:
>
>         eoGenOp<Tsalbp>& op = do_make_op(precedencias, P_CROSS, P_MUT);
>
>         But I am not able to compile the code. The following error
>         messages appear:
>
>         --/workspace/tsalbp_moea/main.cpp:120:   instantiated from here
>         --/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoNSGAII.h:90:
>         error: no matching function for call to
>         `eoGenContinue<Tsalbp>::eoGenContinue()'
>         --/paradiseo-ix86-1.0-beta/paradiseo-eo/src/eoGenContinue.h:35:
>         note: candidates are:
>         eoGenContinue<Tsalbp>::eoGenContinue(const eoGenContinue<Tsalbp>&)
>         --/paradiseo-ix86-1.0-beta/paradiseo-eo/src/eoGenContinue.h:47:
>         note:                 eoGenContinue<EOT>::eoGenContinue(long
>         unsigned int, long unsigned int&) [with EOT = Tsalbp]
>         --/paradiseo-ix86-1.0-beta/paradiseo-eo/src/eoGenContinue.h:40:
>         note:                 eoGenContinue<EOT>::eoGenContinue(long
>         unsigned int) [with EOT = Tsalbp]
>
>         --/workspace/tsalbp_moea/main.cpp:120:   instantiated from here
>         --/paradiseo-ix86-1.0-beta/paradiseo-moeo/src/algo/moeoNSGAII.h:90:
>         error: no matching function for call to
>         `eoSGAGenOp<Tsalbp>::eoSGAGenOp()'
>         --/paradiseo-ix86-1.0-beta/paradiseo-eo/src/eoSGAGenOp.h:45:
>         note: candidates are: eoSGAGenOp<Tsalbp>::eoSGAGenOp(const
>         eoSGAGenOp<Tsalbp>&)
>         --/paradiseo-ix86-1.0-beta/paradiseo-eo/src/eoSGAGenOp.h:54:
>         note:                
>         eoSGAGenOp<EOT>::eoSGAGenOp(eoQuadOp<EOT>&, double,
>         eoMonOp<EOT>&, double) [with EOT = Tsalbp]
>
>         Perhaps there is a problem with the NSGAII class and the link
>         between the constructor and the different configuration
>         classes (eoGenContinue and eoGenOp).
>         Could anybody give me a hand with this problem??
>
>         Thanks in advance,
>
>         Best regards.
>
>
>         ------------------------------------------------------------------------
>
>         _______________________________________________
>         Paradiseo-help mailing list
>         Paradiseo-help at lists.gforge.inria.fr
>         <mailto:Paradiseo-help at lists.gforge.inria.fr>
>         http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/paradiseo-help
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Paradiseo-help mailing list
> Paradiseo-help at lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/paradiseo-help
>   
Dear Sir,

A bug was found in ParadisEO-1.0 about moeoNSGAII constructors (refer to 
https://gforge.inria.fr/tracker/index.php?func=detail&aid=3704&group_id=145&atid=663). 
But it has been corrected for ParadisEO-1.1 so you just have to update 
your version.

Let us know if your problem is solved,

Regards,
ParadisEO team

https://gforge.inria.fr/tracker/index.php?func=detail&aid=3704&group_id=145&atid=663




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