paradiseo-moeo for a bi-objective flow-shop scheduling problem

30
1 ParadisEO-MOEO for a Bi- objective Flow-Shop Scheduling Problem May 2007 E.-G. Talbi and the ParadisEO team http://paradiseo.gforge.inria.fr [email protected]

Upload: zlata

Post on 21-Jan-2016

42 views

Category:

Documents


0 download

DESCRIPTION

ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem. May 2007. E.-G. Talbi and the ParadisEO team. http://paradiseo.gforge.inria.fr [email protected]. Framework and Tutorial Application. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

1

ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

May 2007

E.-G. Talbi and the ParadisEO team

http://[email protected]

Page 2: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

2

2

Framework and Tutorial Application

• A framework for the design of metaheuristics for multi-objective optimization (mainly evolutionary algorithms)

ParadisEO-MOEO (Multi-Objective Evolving Objects)

• Tutorial application

A bi-objective flow-shop scheduling problem

Page 3: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

3

3

Flow-shop Scheduling Problem

• N jobs to schedule on M machines

• Machines are critical resources

• 2 objectives to optimize (minimize)

• Makespan (Cmax)

• Total tardiness (T)

3

M1

M2

M3

Cmax

T

Page 4: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

4

4

Getting Started

• Go to the first ParadisEO-MOEO’s lessons directory

> cd paradiseo-moeo/tutorials/lesson1

• FlowShopEA.cpp– Main file

• *.h– Component files

• benchmarks/*– Benchmark instances

• Run the EA

> ./FlowShopEA @FlowShopEA.param

Page 5: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

5

5

What Should I Get?

Initial Population

20

12990 2802 20 19 10 9 17 1 7 15 2 5 16 6 18 13 14 8 4 0 3 12 11

10496 2732 20 19 2 11 17 14 12 18 5 7 8 1 6 3 10 9 4 0 13 15 16

Final Population

20

7184 2453 20 2 15 13 6 8 5 12 0 17 14 19 3 16 9 18 10 1 4 11 7

7191 2482 20 2 15 13 6 8 5 12 0 17 14 19 3 16 9 4 18 10 1 11 7

Final Archive

5

7137 2495 20 2 15 13 8 5 6 11 12 0 17 14 19 3 16 9 4 18 10 1 7

7184 2453 20 2 15 13 6 8 5 12 0 17 14 19 3 16 9 18 10 1 4 11 7

First objective (tardiness)Second objective (makespan)

Scheduling

Page 6: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

6

6

Benchmarks for Flow-shop

• Filename: N_M_i.txt

• N– Number of jobs

• M– Number of machines

• i– index

• www.lifl.fr/~liefooga/benchmarks/

Page 7: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

7

7

A Multi-Objective Evolutionary Algorithm

1. Representation

2. Initialization

3. Evaluation

4. Variation operators

5. Fitness assignment

6. Diversity assignment

7. Selection

8. Replacement

9. Stopping criteria

Page 8: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

8

8

A Multi-Objective Evolutionary Algorithm

1. Representation

2. Initialization

3. Evaluation

4. Variation operators

5. Fitness assignment

6. Diversity assignment

7. Selection

8. Replacement

9. Stopping criteria

Page 9: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

9

9

Representation

FlowShop.h

• In the objective space (objective vector)typedef moeoObjectiveVectorDouble<moeoObjectiveVectorTraits> FlowShopObjectiveVector;

• In the decision space

class FlowShop: public MOEO<FlowShopObjectiveVector, double, double>

Page 10: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

10

10

A Multi-Objective Evolutionary Algorithm

1. Representation

2. Initialization

3. Evaluation

4. Variation operators

5. Fitness assignment

6. Diversity assignment

7. Selection

8. Replacement

9. Stopping criteria

FlowShopInit.h

Page 11: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

11

11

A Multi-Objective Evolutionary Algorithm

1. Representation

2. Initialization

3. Evaluation

4. Variation operators

5. Fitness assignment

6. Diversity assignment

7. Selection

8. Replacement

9. Stopping criteria

Page 12: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

12

12

Evaluation Function

FlowShopEval.h

• Number of objectives / Minimized or maximized// number of objectives

unsigned nObjs = 2;

// minimizing both

std::vector<bool> bObjs(nObjs, true);

// set the variables

moeoObjectiveVectorTraits::setup(nObjs, bObjs);

Page 13: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

13

13

Evaluation Function

FlowShopEval.h

• Evaluation in the objective space// creation of an objective vector object

FlowShopObjectiveVector objVector;

// computation of objective values

objVector[0] = tardiness(_eo);

objVector[1] = makespan(_eo);

// setting of the objective vector for the solution under consideration

_eo.objectiveVector(objVector);

Page 14: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

14

14

A Multi-Objective Evolutionary Algorithm

1. Representation

2. Initialization

3. Evaluation

4. Variation operators

5. Fitness assignment

6. Diversity assignment

7. Selection

8. Replacement

9. Stopping criteria

FlowShopOp*

Page 15: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

15

15

A Multi-Objective Evolutionary Algorithm

1. Representation

2. Initialization

3. Evaluation

4. Variation operators

5. Fitness assignment

6. Diversity assignment

7. Selection

8. Replacement

9. Stopping criteria

Page 16: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

16

16

Fitness Assignment: Core Classes

used in NSGA / NSGA-II

used in IBEA

Pareto-based approachesscalar approaches

criterion-based approaches

dummy

make_algo_moeo.h

Page 17: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

17

17

A Multi-Objective Evolutionary Algorithm

1. Representation

2. Initialization

3. Evaluation

4. Variation operators

5. Fitness assignment

6. Diversity assignment

7. Selection

8. Replacement

9. Stopping criteria

Page 18: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

18

18

Diversity Assignment: Core Classes

used in NSGA-II dummy

make_algo_moeo.h

Page 19: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

19

19

A Multi-Objective Evolutionary Algorithm

1. Representation

2. Initialization

3. Evaluation

4. Variation operators

5. Fitness assignment

6. Diversity assignment

7. Selection

8. Replacement

9. Stopping criteria

Page 20: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

20

20

Selection: Core Classes

stochastic tournament

random

deterministic tournament

elitist

make_algo_moeo.h

Page 21: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

21

21

A Multi-Objective Evolutionary Algorithm

1. Representation

2. Initialization

3. Evaluation

4. Variation operators

5. Fitness assignment

6. Diversity assignment

7. Selection

8. Replacement

9. Stopping criteria

Page 22: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

22

22

Replacement: Core Classes

environmental

generational

elitist

make_algo_moeo.h

Page 23: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

23

23

A Multi-Objective Evolutionary Algorithm

1. Representation

2. Initialization

3. Evaluation

4. Variation operators

5. Fitness assignment

6. Diversity Assignment

7. Selection

8. Replacement

9. Stopping criteria make_continue_moeo.h

Page 24: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

24

24

Statistical Tools

make_checkpoint_moeo.h

Page 25: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

25

25

Testing

• Computing Pareto set approximations obtained by two different algorithms on the benchmark 020_05_01.txt (by modifying some parameters)

Page 26: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

26

26

Testing

• Edit the parameters file FlowShopEA.param (don’t forget to delete the “#”)

> gedit FlowShopEA.param

• Run it> ./FlowShopEA @FlowShopEA.param

• Save the Pareto set approximation for ALGO-1> mv N.front ALGO-1.front

• Modify what you want in the parameters file> gedit FlowShopEA.param

• Run it> ./FlowShopEA @FlowShopEA.param

• Save the Pareto set approximation for ALGO-2> mv N.front ALGO-2.front

Page 27: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

27

How to compare these two fronts?

Page 28: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

28

GUIMOO

a Graphical User Interface for Multi-objective Optimization

http://guimoo.gforge.inria.fr

Page 29: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

29

29

GUIMOO: Testing

• Create your own project for Flow-shop

• Name

• Objectives

• Add the 2 fronts obtained using ParadisEO-MOEO

• Visualize the 2 fronts in 2D

• Compute the Contribution and the S metrics

Page 30: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem

30

30

Conclusion

• Thanks to ParadisEO-MOEO, you designed your first multi-objective evolutionary algorithm for the flow-shop scheduling problem

• Thanks to GUIMOO, you analyzed the output of your algorithm for different parameters

• ParadisEO-MOEO is only another step to

• Hybridization and parallelism using ParadisEO-PEO

• http://paradiseo.gforge.inria.fr

[email protected]