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

paradiseo-help at lists.gforge.inria.fr paradiseo-help at lists.gforge.inria.fr
Mar 29 Avr 10:43:51 CEST 2008


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
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/paradiseo-help




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