Doc.TutoPEOLesson6 History

Hide minor edits - Show changes to markup

August 19, 2010, at 03:31 PM by -
Added lines 1-2:
June 24, 2010, at 03:15 PM by ::1 -
June 24, 2010, at 03:15 PM by ::1 -
Deleted lines 66-74:
May 28, 2010, at 04:46 PM by ::1 -
Added lines 1-75:

ParadisEO - PEO Lesson 6: Hybridization

Note: All the components are not presented in this lesson (binary, topology, asynchronous or synchronous... ). To know the completeness of components refer to API documentation of ParadisEO-EO and ParadisEO-PEO.


In this lesson, you can execute an algorithm with an hybridization (a local search after an EA). This is naïve hybridization. The user could think of more elaborated ways for hybridizing.


This is a quite easy lesson. If you have already read Lesson1? and Lesson2? then the understanding of this lesson would be straightforward.


Initialization of the local search

  MoveInit move_init;
  ProblemEval problem_eval;  
  MoveNext move_next;
  MoveIncrEval move_incr_eval;
  moBestImprSelect<Move> move_select;
  moSimpleMoveTabuList <Move> tabulist (param.tabuListSize);
  moImprBestFitAspirCrit <Move> aspiration_criterion;
  moGenSolContinue <Problem> continu (param.TSmaxIter);
  moTS <Move> tabu_search (move_init, move_next, move_incr_eval, 
			   tabulist, aspiration_criterion, continu, problem_eval );

Initialization of the EA

  eoPop <Problem> pop (param.popSize, chromInit);
  eoDetTournamentSelect<Problem> selectOne(param.tSize);
  eoSelectPerc<Problem> select(selectOne);
  ProblemXover Xover;
  ProblemSwapMutation  mutationSwap;
  eoSGATransform<Problem> transform(Xover, param.pCross, mutationSwap, param.pMut);
  eoPlusReplacement<Problem> replace;
  eoGenContinue<Problem> genCont(param.maxGen);
  eoEasyEA<Problem> gga(genCont, problem_eval, select, transform, replace);

Launching the parallel EA

  peoWrapper parallelEA( gga, pop);
  peo :: run ();
  peo :: finalize ();

Launching the parallel local search

  peo :: init (argc, argv);
  peoMultiStart <Problem> initParallelTS (tabu_search);
  peoWrapper parallelTS (initParallelTS, pop);
  peo :: run( );
  peo :: finalize( );

Launching the program

You are ready now to run this tutorial.

Other lessons

Technical introduction?
PEO Lesson 1?
PEO Lesson 2?
PEO Lesson 3?
PEO Lesson 4?
PEO Lesson 5?
PEO Lesson 6