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

Manuel Chica Serrano manuel.chica at softcomputing.es
Mar 29 Avr 11:04:57 CEST 2008


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>
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
> > 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/20080429/5d00a07b/attachment.html>


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