Tutorial on ParadisEO: Parallel Models for the TSP
description
Transcript of Tutorial on ParadisEO: Parallel Models for the TSP
![Page 1: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/1.jpg)
Tutorial on ParadisEO: Parallel Models for the TSP
![Page 2: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/2.jpg)
Contributions
EO (A framework of Evolutionary Algorithms)
Solution-basedmetaheuristics
Hill Climbing
Simulated Annealing
Tabu search
Cooperation(Algorithms exchange solutions)Ex. Island cooperation
ParadisEO (Parallel and distributedmetaheuristics)
Parallelism(Partitioning solutions at several steps)
Techniquesrelated to
multi-objectiveoptimization
http://www.lifl.fr/~cahon/paradisEO/ls/
http://www.lifl.fr/~cahon/paradisEO/
![Page 3: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/3.jpg)
A case study : the «Traveling Salesman Problem»
From a full graph of vertices find the shortest hamiltonian cycle.
NP-hard EO
Designing a G.A. ParadisEO
Illustrating some forms of parallelism
![Page 4: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/4.jpg)
TSP Case-study – Components
> cd $HOME/tsp/src/> ls –al
~/tsp/src/
main.cpp – main workbench file – GAs, LS etc. route.h – chromosome definitionroute_init.h – random chr. initialization operator
part_route_eval.h – partial fitness eval. Operatormerge_route_eval.h – fitness evaluation
aggregation op.route_eval.h – full fitness evaluation operator
order_xover.h – OrderXover crossover operatoredge_xover.h – EdgeXover crossover operatorcity_swap.h – CitySwap mutation operator
{two_opt_init, two_opt_next, two_opt_incr_eval}.h
DEFINITION
EVALUATION
OPERATORS
![Page 5: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/5.jpg)
An unifying view of three hierarchical levels For both the population-based and
solution-based metaheuristics, The deployment of concurrent
independent/cooperative metaheuristics The parallelization of a single step of the
metaheuristic (based on distribution of the handled solutions)
The parallelization of the processing of a single solution
![Page 6: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/6.jpg)
TSP – The Initial AlgorithmeoPop <Route> ox_pop (POP_SIZE, route_init); /* Population and initializer */ eoGenContinue <Route> ox_cont (NUM_GEN);
peoSeqPopEval <Route> ox_pop_eval (full_eval);
eoStochTournamentSelect <Route> ox_select_one;eoSelectNumber <Route> ox_select (ox_select_one, POP_SIZE);
eoSGATransform <Route> ox_transform (order_cross, CROSS_RATE, city_swap_mut, MUT_RATE);
peoSeqTransform <Route> ox_seq_transform (ox_transform);
eoEPReplacement <Route> ox_replace (2);
eoCheckPoint <Route> ox_checkpoint (ox_cont); /* Checkpoint */ peoEA <Route> ox_ea (ox_checkpoint, ox_pop_eval, ox_select, ox_seq_transform, ox_replace);ox_ea (ox_pop); /* Application to the given population */
DEFINITION
continuation criterionevaluation method
selection strategy
replacement strategy
ops. transformations
![Page 7: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/7.jpg)
The parallel evaluation of the population
Partitionning
Computed values are
coming back
Full Eval.
Evaluating nodes
Replacement
Selection
Recombination,mutation
Full Eval. Full Eval.
![Page 8: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/8.jpg)
TSP – The Parallel Evaluation of the Population
eoPop <Route> ox_pop (POP_SIZE, route_init); /* Population and initializer */ eoGenContinue <Route> ox_cont (NUM_GEN);
peoParaPopEval <Route> ox_pop_eval (full_eval);
eoStochTournamentSelect <Route> ox_select_one;eoSelectNumber <Route> ox_select (ox_select_one, POP_SIZE);
eoSGATransform <Route> ox_transform (order_cross, CROSS_RATE, city_swap_mut, MUT_RATE);
peoSeqTransform <Route> ox_seq_transform (ox_transform);
eoEPReplacement <Route> ox_replace (2);
eoCheckPoint <Route> ox_checkpoint (ox_cont); /* Checkpoint */ peoEA <Route> ox_ea (ox_checkpoint, ox_pop_eval, ox_select, ox_seq_transform, ox_replace);ox_ea (ox_pop); /* Application to the given population */
![Page 9: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/9.jpg)
The parallel evaluation of a single solution
Replication
Partiallyevaluatedsolutions
Partial Eval. e1
Evaluating nodes
Replacement
SelectionRecombination,
mutation
Partial Eval. e2 Partial Eval. en
Computation
f( f1, f2, …fn )
![Page 10: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/10.jpg)
The distributed evaluation step
Route
peoParaPopEval()
Route
eoPop &
Route
peoPopEval
vector< eoEvalFunc<EOT> > eoAggEvalFunc<EOT>
different partial evaluationfunctions
aggregation of fitnessvalues
Features
- provided
![Page 11: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/11.jpg)
TSP – The Parallel Evaluation of the Fitness Function
MergeRouteEval merge_eval; std :: vector <eoEvalFunc <Route> *> part_eval;for (unsigned i = 1 ; i <= NUM_PART_EVALS ; i ++) { part_eval.push_back (new PartRouteEval ((float) (i - 1) / NUM_PART_EVALS,
(float) i / NUM_PART_EVALS));}
. . .
eoGenContinue <Route> ox_cont (NUM_GEN);
peoParaPopEval <Route> ox_pop_eval (part_eval, merge_eval);
eoStochTournamentSelect <Route> ox_select_one;eoSelectNumber <Route> ox_select (ox_select_one, POP_SIZE);
. . .
![Page 12: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/12.jpg)
The cooperative island model
Migrations
Cycle of evolutions Cycle of evolutions
Cycle of evolutions
Cycle of evolutions
Several asynchronous GAs (coarse grain)
Different sub-populations Asynchronous migration of
individuals Different stopping criteria
Convergence Frequency /
generations Miscellaneous
Heterogeneous parameters, operators, algorithms, …
![Page 13: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/13.jpg)
Manager of asynchronous migrations
Route
eoAsyncIslandMig()
Route
eoPop &
eoContinue
eoSelect
eoReplacement
eoTopology Topology (Ring, Full, …)
Integration of immigrants into the localpopulation
Selection of individuals to emigrate
Event « Immigration is required ? »
Features
- provided
![Page 14: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/14.jpg)
/* Migration occurs periodically */eoPeriodicContinue <Route> ox_mig_cont (MIG_FREQ);
eoRandomSelect <Route> ox_mig_select_one; eoSelectNumber <Route> ox_mig_select (ox_mig_select_one, MIG_SIZE);
/* Immigrants replace the worse individuals */eoPlusReplacement <Route> ox_mig_replace; peoSyncIslandMig <Route> ox_mig (MIG_FREQ, // migration frequency
ox_mig_select, // strategy of selectionox_mig_replace, // strategy of replacementtopo, // topology – ring
topologyox_pop, // source population of
emigrantsox_pop); // destination population
for imigrants
TSP – Synchronous Island Model
![Page 15: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/15.jpg)
TSP – Asynchronous Island Model
/* Migration occurs periodically */eoPeriodicContinue <Route> ox_mig_cont (MIG_FREQ);
eoRandomSelect <Route> ox_mig_select_one; eoSelectNumber <Route> ox_mig_select (ox_mig_select_one, MIG_SIZE);
/* Immigrants replace the worse individuals */eoPlusReplacement <Route> ox_mig_replace; peoAsyncIslandMig<Route> ox_mig (ox_mig_cont , // migration frequency
ox_mig_select, // strategy of selectionox_mig_replace, // strategy of
replacementtopo, // topology – ring
topologyox_pop, // source population of
emigrantsox_pop); // destination population
for imigrants
![Page 16: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/16.jpg)
Design of several levels of parallelization/hybridization
SPH Scalability
Processing of a single solution(Objective / Data partitioning)
Independent walks, Multi-start model,
Hybridization/Cooperationof metaheuristics
Parallel evaluation ofthe neighborhood/population
Heuristic Population / Neighborhood Solution
![Page 17: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/17.jpg)
An example of decomposition in tasks (High level)
Cooperativeislandmodel
Parallel evaluators
Local searches
Fork
Fork
ForkFork
Fork
ForkFork
Fork Starting
Shared_rw<eoPop <EOT>>Shared_rw<EOT>
« Active messages »
![Page 18: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/18.jpg)
An example of decomposition in tasks (Low level)
Internal functions embedded in E.As Partitioning the« data » for the steps of Selection Crossover Evaluation Replacement
Population
Shared_r<EOT> Shared_w<EOT :: Fitness>
Evaluation
Shared_rw<EOT>
Recombination
![Page 19: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/19.jpg)
MPICH2 – Environment
> mpdtracelxo9lxo10…
> mpdringtest 100 number of loops
time for 100 loops = 0.0880811… seconds
> mpiexec –n 8 hostname
An initial test – list the machines running MPDs (MPI daemons)
An initial test – sending a message in the ring of machines
An initial test – launching processes on the machines
no. of processes
process name
![Page 20: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/20.jpg)
TSP Compiling and Launching
setting the correct directory for compilation:> cd $HOME/tsp/
compiling the application> make
launching four processes – the tsp.param specifies the config. Params
(there will be one process on each of the machines assigned to you)> mpiexec –n 4 ./tsp @tsp.param
cleanning the directory (erasing the obj. and core files, etc) > make clean
![Page 21: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/21.jpg)
Real-world applications developed with ParadisEO
Data Mining in Near-Infrared Spectroscopy
Radio Network design Genomics
![Page 22: Tutorial on ParadisEO: Parallel Models for the TSP](https://reader036.fdocuments.us/reader036/viewer/2022062409/568149ab550346895db6e8e8/html5/thumbnails/22.jpg)
Conclusion ParadisEO is a white-box OO framework
Clear conceptual separation of solution methods and problems Maximum design and code reuse High flexibility (fine-grained EO objects)
ParadisEO provides a broad range of features Evolutionary algorithms, local searches and natural
hybridization mechanisms Invariant part provided
Various transparent and portable parallel/distributed models
Experimental evaluation on academic problems and industrial applications
High reuse capabilities, efficiency of the parallel/distributed models