Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire...

68
Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille http:// paradiseo.gforge.inria.fr

Transcript of Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire...

Page 1: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Software framework for metaheuristics

Parallel Cooperative

Optimization Research

Group

Laboratoire d’InformatiqueFondamentale de Lille

http://paradiseo.gforge.inria.fr

Page 2: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Outline

• framework.

• ParadisEO-EO (population-based metaheuristics).

• ParadisEO-MO (solution-based metaheuristics).

• EO & MO hybridized metaheuristics.

• Conclusions and perspectives

Page 3: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Framework and tutorial application

Framework dedicated to metaheuristics

Tutorial application The Traveling Salesman Problem

(TSP)

Parallel and Distributed Evolving Objects

Page 4: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

ParadisEO (1/2) A templates-based, ANSI-C++ compliant

Metaheuristic Computation Framework.

GForge Project by INRIA Dolphin Team.

Paradigm Free (genetic algorithms, genetic programming, particle swarm optimization, local searches …).

Hybrid, distributed and cooperative models.http://paradiseo.gforge.inria.fr

Page 5: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Flexible / a considered problem.

Generic components (variation operators, selection, replacement, termination, particle behaviors …).

Many services (visualization, managing command-line parameters, saving/restarting, …).

ParadisEO (2/2)

http://paradiseo.gforge.inria.fr

Page 6: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Evolutionary computation, Swarm intelligence :

population-based metaheuristics

Tabu Search, Simulated Annealing, Hill Climbing: single solution based metaheuristics

Multi-objective metaheuristics

Parallel and distributed metaheuristics

ParadisEO: Module-based architecture

Page 7: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Evolutionary computation, Swarm intelligence: population-based metaheuristics

Tabu Search, Simulated Annealing, Hill Climbing: single solution based metaheuristics

Multi-objective metaheuristics

Parallel and distributed metaheuristics

ParadisEO: Module-based architecture

Page 8: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

ParadisEO-EO (Evolving Object)

Page 9: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Available approaches

• Genetic algorithm (GA).• Genetic programming (GP).• Evolution strategies (ES).• Evolutionary algorithm (EA).• Evolutionary programming (EG).• Particle Swarm Optimization (PSO).• Estimation of Distribution Algorithm

(EDA).

Page 10: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Design concepts

• Each metaheuristic has:– generic parts not dedicated to one problem.

– dedicated parts linked to the problem to solve.

• The user:– can directly use the available generic boxes,– has only to code the information dedicated to his

problem.

Page 11: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Needed task: designing a representation Maybe several ways to do this. The

representation must be relevant regards the tackled problem.

The user needs to have: basic representations available. the possibility to use his specific

representation.

Page 12: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Existent basic representations

Tree-based representations(Genetic Programming)

Real-valued representations(Evolutionist Strategies)

String-basedrepresentations

Binarystrings

Realstrings

Page 13: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Scheme of one available algorithm:

the evolutionary algorithm

Page 14: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

The Traveling Salesman Problem (TSP)

“Given a collection of N cities and the distance between each pair of them, the TSP aims at finding the shortest route visiting all of the cities”.

Symmetric TSP: candidate solutions. Example:

2

)!1( N

v0

v4v2

v1

8

10

6

9 4

4

6

3

6

5Length: 26 v3

Page 15: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Representation and evaluation

We aim at minimizing the total length of the path:

v5

v3

v4v2

v1

8

10

6

9 4

4

6

3

6

5

Ni Nii VVdist1 mod)1( ),(

1 42 3 5

1 2 3 4 5

1 0 6 9 10 8

2 6 0 4 6 4

3 9 4 0 5 6

4 10 6 5 0 3

5 8 4 6 3 0

Page 16: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Application to the TSP

Path encoding: Every node is assigned a number (e.g. from 0

up to n - 1) and solutions are represented by the ordered sequence of visited nodes.

Page 17: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Scheme of one available algorithm:

the evolutionary algorithm

Page 18: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Scheme of one available algorithm:

the evolutionary algorithm

Page 19: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Scheme of one available algorithm:

the evolutionary algorithm

Page 20: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Scheme of one available algorithm:

the evolutionary algorithm

Page 21: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Scheme of one available algorithm:

the evolutionary algorithm

Page 22: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Scheme of one available algorithm:

the evolutionary algorithm

Page 23: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Scheme of one available algorithm:

the evolutionary algorithm

Page 24: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Scheme of one available algorithm:

the evolutionary algorithm

Page 25: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Scheme of one available algorithm:

the evolutionary algorithm

Page 26: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Implementation of an EA (1/9)

RouteInit route_init; RouteEval full_route_eval;

eoPop <Route> pop (POP_SIZE, route_init);

eoGenContinue <Route> continue (NUM_GEN);

OrderXover crossover;

CitySwap mutation;

eoStochTournamentSelect <Route> select_one;eoSelectNumber <Route> select (select_one, POP_SIZE);

eoSGATransform <Route> transform (cross, CROSS_RATE, mutation, MUT_RATE);

eoPlusReplacement <Route> replace;

eoEasyEA <Route> ea (continue, full_route_eval, select, transform, replace); ea (pop);

Page 27: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Implementation of an EA (2/9)

RouteInit route_init; RouteEval full_route_eval;

eoPop <Route> pop (POP_SIZE, route_init);

eoGenContinue <Route> continue (NUM_GEN);

OrderXover crossover;

CitySwap mutation;

eoStochTournamentSelect <Route> select_one;eoSelectNumber <Route> select (select_one, POP_SIZE);

eoSGATransform <Route> transform (cross, CROSS_RATE, mutation, MUT_RATE);

eoPlusReplacement <Route> replace;

eoEasyEA <Route> ea (continue, full_route_eval, select, transform, replace); ea (pop);

Page 28: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Implementation of an EA (3/9)

RouteInit route_init; RouteEval full_route_eval;

eoPop <Route> pop (POP_SIZE, route_init);

eoGenContinue <Route> continue (NUM_GEN);

OrderXover crossover;

CitySwap mutation;

eoStochTournamentSelect <Route> select_one;eoSelectNumber <Route> select (select_one, POP_SIZE);

eoSGATransform <Route> transform (cross, CROSS_RATE, mutation, MUT_RATE);

eoPlusReplacement <Route> replace;

eoEasyEA <Route> ea (continue, full_route_eval, select, transform, replace); ea (pop);

Page 29: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Implementation of an EA (4/9)

RouteInit route_init; RouteEval full_route_eval;

eoPop <Route> pop (POP_SIZE, route_init);

eoGenContinue <Route> continue (NUM_GEN);

OrderXover crossover;

CitySwap mutation;

eoStochTournamentSelect <Route> select_one;eoSelectNumber <Route> select (select_one, POP_SIZE);

eoSGATransform <Route> transform (cross, CROSS_RATE, mutation, MUT_RATE);

eoPlusReplacement <Route> replace;

eoEasyEA <Route> ea (continue, full_route_eval, select, transform, replace); ea (pop);

Page 30: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Implementation of an EA (5/9)

RouteInit route_init; RouteEval full_route_eval;

eoPop <Route> pop (POP_SIZE, route_init);

eoGenContinue <Route> continue (NUM_GEN);

OrderXover crossover;

CitySwap mutation;

eoStochTournamentSelect <Route> select_one;eoSelectNumber <Route> select (select_one, POP_SIZE);

eoSGATransform <Route> transform (cross, CROSS_RATE, mutation, MUT_RATE);

eoPlusReplacement <Route> replace;

eoEasyEA <Route> ea (continue, full_route_eval, select, transform, replace); ea (pop);

Page 31: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Implementation of an EA (6/9)

RouteInit route_init; RouteEval full_route_eval;

eoPop <Route> pop (POP_SIZE, route_init);

eoGenContinue <Route> continue (NUM_GEN);

OrderXover crossover;

CitySwap mutation;

eoStochTournamentSelect <Route> select_one;eoSelectNumber <Route> select (select_one, POP_SIZE);

eoSGATransform <Route> transform (cross, CROSS_RATE, mutation, MUT_RATE);

eoPlusReplacement <Route> replace;

eoEasyEA <Route> ea (continue, full_route_eval, select, transform, replace); ea (pop);

Page 32: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Implementation of an EA (7/9)

RouteInit route_init; RouteEval full_route_eval;

eoPop <Route> pop (POP_SIZE, route_init);

eoGenContinue <Route> continue (NUM_GEN);

OrderXover crossover;

CitySwap mutation;

eoStochTournamentSelect <Route> select_one;eoSelectNumber <Route> select (select_one, POP_SIZE);

eoSGATransform <Route> transform (cross, CROSS_RATE, mutation, MUT_RATE);

eoPlusReplacement <Route> replace;

eoEasyEA <Route> ea (continue, full_route_eval, select, transform, replace); ea (pop);

Page 33: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Implementation of an EA (8/9)

RouteInit route_init; RouteEval full_route_eval;

eoPop <Route> pop (POP_SIZE, route_init);

eoGenContinue <Route> continue (NUM_GEN);

OrderXover crossover;

CitySwap mutation;

eoStochTournamentSelect <Route> select_one;eoSelectNumber <Route> select (select_one, POP_SIZE);

eoSGATransform <Route> transform (cross, CROSS_RATE, mutation, MUT_RATE);

eoPlusReplacement <Route> replace;

eoEasyEA <Route> ea (continue, full_route_eval, select, transform, replace); ea (pop);

Page 34: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Implementation of an EA (9/9)

RouteInit route_init; RouteEval full_route_eval;

eoPop <Route> pop (POP_SIZE, route_init);

eoGenContinue <Route> continue (NUM_GEN);

OrderXover crossover;

CitySwap mutation;

eoStochTournamentSelect <Route> select_one;eoSelectNumber <Route> select (select_one, POP_SIZE);

eoSGATransform <Route> transform (cross, CROSS_RATE, mutation, MUT_RATE);

eoPlusReplacement <Route> replace;

eoEasyEA <Route> ea (continue, full_route_eval, select, transform, replace); ea (pop);

Page 35: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Other features

• Checkpointing system.

• Configuration file creation and management.

• Visualization tools (link with gnuplot).

• Automatic design tool.

• …

Page 36: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

ParadisEO-MO (Moving Object)

Page 37: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Design concepts

• Single solution metaheurisitcs

neighbourhood exploration.

• How can another solution be generated ?

disturbing the current solution

make a movement.

• Base of ParadisEO-MO = moMove.

Page 38: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Available algorithms

Hill ClimbingTabu Search

Simulated Annealing

Page 39: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Design a move for the TSP

• Reminding the chosen coding.

Ordered sequence of visited vertices.

2

2 31 5 4

3

14

1 45 3 2 4 13 5 2

5

• Some relevant moves:– Two-opt, City-swap, LK, etc…

Page 40: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Two-Opt

• Two points within the string are selected and the segment between them is inverted. This operator put in two new edges in the tour.

2 31 5 4

2 35 1 4 23

5

14

23

5

14

Delta = - d(2,1) – d (5,3) + d(2, 5) + d(1, 3)

Page 41: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Hill Climbing

Page 42: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

How can a Hill Climbing be built ?• Designing a move operator, its features.• Designing/implementing the operator to build

the first move (and implicitly the first neighboring candidate).

• Designing/implementing the operator to update a given move to its successor.

• Designing/implementing the incremental evaluation function.

• Choosing the neighbour selection strategy.• No continuation criterion (stopping as a local

optimum is reached).

Page 43: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Hill Climbing class

To build the first move

To build the next move

To compute the fitness delta

Full evaluationfunction

Move selectionstrategies

Page 44: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Two-Opt features (1/2)

• TwoOpt a two-opt move is a couple of positions in the sequence of visited nodes.

• TwoOptInit it initializes both

positions to zero !

Page 45: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Two-Opt features (2/2)• TwoOptNext it increments the second

position if possible. Else, it increments the first position, and reinitializes the second position.

• TwoOptIncrEval It computes the new length from the costs of the added/removed edges.

Page 46: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Neighbour selection strategy

• Deterministic/full: choosing the best neighbor (i.e. that improves the most the cost function).

• Deterministic/partial: choosing the first processed neighbour that is better than the current solution.

• Stochastic/full: processing the whole neighborhood and applying a random better one.

Page 47: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Implementation of a Hill ClimbingRoute route; /* One solution */RouteInit route_init; /* Its builds random routes */route_init (route); /* Building a random starting solution */

RouteEval full_route_eval; /* Full route evaluator */

TwoOptInit two_opt_init; /* Initializing the first couple of edges to swap */TwoOptNext two_opt_next; /* Updating a movement */TwoOptIncrEval two_opt_incr_eval; /* Efficiently evaluating a given neighbor */

moBestImprSelect <TwoOpt> two_opt_move_select; /* Movement selection strategy (elitist) */

/* Building the Hill Climbing from those components */moHC <TwoOpt> hill_climbing (two_opt_init, two_opt_next, two_opt_incr_eval, two_opt_move_select, full_route_eval);

/* It applies the HC to the solution */ hill_climbing (route);

Page 48: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Simulated Annealing

Page 49: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

How can a Simulated Annealing be built ?

• Designing a move operator, its features.

• Designing/implementing the operator to build a random candidate move.

• Designing/implementing the incremental evaluation function.

• Choosing the cooling schedule strategy.

Independent of the tackled problem

Could be reused from Hill Climbing

Page 50: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Simulated Annealing class

To computethe fitness deltaCooling schedule

strategy

Randommove

generator

Full evaluationfunction

Page 51: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

The Two-Opt random move generator• It randomly determines a couple of

random positions !

class TwoOptRand : public moMoveRand<TwoOpt> { public : void operator () (TwoOpt & __move, const Route & __route) ;} ;

To be implemented

Page 52: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Cooling Schedule• Two (basic) strategies are already

implemented: linear and exponential:– Linear temp = temp – x.– Exponential temp = temp * x.

Page 53: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Route route; /* One solution */RouteInit route_init; /* Its builds random routes */route_init (route); /* Building a random starting solution */

RouteEval full_route_eval; /* Full route evaluator */

TwoOptRand two_opt_rand; /* It builds random candidate movements */TwoOptIncrEval two_opt_incr_eval; /* Efficiently evaluating a given neighbor */

moExponentialCoolingSchedule cool_scheme (0.99, 1); /*Cooling schedule and associated parameters */

/* Building the Simulated Annealing from those components */moSA <TwoOpt> simulated_annealing (two_opt_init, two_opt_incr_eval, 100, 100, cool_scheme, full_route_eval);

/* It applies the SA to the solution */ simulated_annealing (route);

Implementation of Simulated Annealing

Factor and threshold

Initial temperature and number of iterations at any step

Page 54: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Tabu Search

Page 55: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

How can Tabu Search be built ?• Design a move operator, its features.• Design/implement the operator to build the first

move (and implicitly the first neighboring candidate).• Design/implement the operator to update a given

move to its successor.• Design/implement the incremental evaluation

function.

• Design/implement the Tabu List.• Choosing the aspiration criterion.• Choosing the continuation criterion.

Could be reused from Hill Climbing

Independentof the tackled

problem

Page 56: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Tabu Search class

To buildthe firstmove

To build the next move

To computethe fitness delta

Full evaluationfunction

Tabu List

Aspiration criterion

Continuation criterion

Page 57: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Tabu List

• Predefined structures:– List of tabu solutions or tabu moves storing

the tenure (short term memory).

Page 58: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Choosing an aspiration criterion

• (Basic) implemented strategies:– No aspiration criterion,– A tabu move builds a new solution that updates

the best solution found during the search.

Page 59: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Choosing a stopping criterion

• Use strategies equivalent to those in ParadisEO-EO EA:– An optimum is reached,– A given total number of

iterations,– A given number of gen.

without improvement,– …

Page 60: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Implementing a Tabu SearchRoute route; /* One solution */RouteInit route_init; /* Its builds random routes */route_init (route); /* Building a random starting solution */RouteEval full_route_eval; /* Full route evaluator */

TwoOptInit two_opt_init; /* Initializing the first couple of edges to swap */TwoOptNext two_opt_next; /* Updating a movement */TwoOptIncrEval two_opt_incr_eval; /* Efficiently evaluating a given neighbor */

moNoAspirCrit <TwoOpt> two_opt_aspir_crit; /* Aspiration criterion */moSimpleMoveTabuList <TwoOpt> two_opt_tabu_list; /* Tabu List */

moGenContinue <TwoOpt> continue (10000); /* A fixed number of iter. *//* Building the Tabu Search from those components */moTS <TwoOpt> tabu_search (two_opt_init, two_opt_next, two_opt_incr_eval, two_opt_aspir_crit, two_opt_tabu_list, continue, full_route_eval);

/* It applies the TS to the solution */ tabu_search (route);

Page 61: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

EO & MO Hybridizing

• Hybridizing allows to combine:

– The exploration power of population-based metaheuristics.

– The intensification power of single solution-based metaheurisitcs.

Page 62: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Scheme of an EA in ParadisEO-EO

Page 63: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

ParadisEO-EO/ParadisEO-MO link

Page 64: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Implementation of an EA

RouteInit route_init; /* Its builds random routes */ RouteEval full_route_eval; /* Full route evaluator */

eoPop <Route> pop (POP_SIZE, route_init); /* Population */eoGenContinue <Route> continue (NUM_GEN); /* A fixed number of iterations */

OrderXover crossover; /* Recombination */CitySwap mutation; /* Mutation */

eoStochTournamentSelect <Route> select_one; /* Stoch. Tournament selection */eoSelectNumber <Route> select (select_one, POP_SIZE);

/* Standard SGA Transformation */eoSGATransform <Route> transform (cross, CROSS_RATE, mutation, MUT_RATE);

eoPlusReplacement <Route> replace; /* replacement */

eoEasyEA <Route> ea (continue, full_route_eval, select, transform, replace); ea (pop); /* Application on the given population */

Page 65: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Implementation of an EA hybridized with a hill climbing

RouteInit route_init; /* Its builds random routes */ RouteEval full_route_eval; /* Full route evaluator */

eoPop <Route> pop (POP_SIZE, route_init); /* Population */eoGenContinue <Route> continue (NUM_GEN); /* A fixed number of iterations */

OrderXover crossover; /* Recombination */moHC <TwoOpt> mutation (two_opt_init, two_opt_next, two_opt_incr_eval, two_opt_move_select,

full_route_eval);

eoStochTournamentSelect <Route> select_one; /* Stoch. Tournament selection */eoSelectNumber <Route> select (select_one, POP_SIZE);/* Standard SGA Transformation */eoSGATransform <Route> transform (cross, CROSS_RATE, mutation, MUT_RATE);

eoPlusReplacement <Route> replace; /* replacement */

eoEA <Route> ea (continue, full_route_eval, select, transform, replace); ea (pop); /* Application on the given population */

Page 66: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Conclusions and Perspectives (1/2)• ParadisEO-EO/MO is a powerful platform to

design high quality optimization methods.

• It can be used by beginners and experts.

• It can be easily extended to suit to the user needs.

• It can be used on Unix and Windows systems

Page 67: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Conclusions and Perspectives (2/2)• Improving the platform:

– adding generic algorithm:• Variable Neighbourhood Search (VNS),• Iterative Local Search (ILS),• Guided Local Search (GLS),• …

– Adding generic boxes:• Other cooling schedule, stopping criteria, …

• Proposing complete methods for classical problems.

Page 68: Software framework for metaheuristics Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille .

Any questions ?Thank you for your attention

• Multi-objective metaheuristics ??? ParadisEO-MOEO.

• Parallel and distributed metaheuristics ??? ParadisEO-PEO.

• ParadisEO web site:http://paradiseo.gforge.inria.fr

• OPAC team web site:http://www.lifl.fr/OPAC