![Page 1: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/1.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/2.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/3.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/4.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/5.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/6.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/7.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/8.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/9.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/10.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/11.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/12.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/13.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/14.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/15.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/16.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/17.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/18.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/19.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/20.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/21.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/22.jpg)
22
22
Replacement: Core Classes
environmental
generational
elitist
make_algo_moeo.h
![Page 23: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/23.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/24.jpg)
24
24
Statistical Tools
make_checkpoint_moeo.h
![Page 25: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/25.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/26.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/27.jpg)
27
How to compare these two fronts?
![Page 28: ParadisEO-MOEO for a Bi-objective Flow-Shop Scheduling Problem](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/28.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/29.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062315/56814fe8550346895dbdb492/html5/thumbnails/30.jpg)
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