Paradiseo-MOEO Lesson 3 : A bi-objective flow-shop scheduling problem

Introduction  /  Problem Definition  /  Individual Representation  /  Evaluation functions   /  Variation operators   /  The representation-independent things   /  Compilation and execution   /  Conclusion  

Introduction

First, be sure that the ParadisEO-MOEO module has been compiled correctly and that the documentation has been generated (see the README file in the ParadisEO-MOEO directory to know how to compile the package and to generate the documentation).

We describe here a complete methodology to design and implement an evolutionary algorithm for a bi-objective flow-shop scheduling problem using ParadisEO-MOEO. All the source and program files required for this lesson are provided in the ParadisEO-MOEO package. The main file (FlowShopEA2.cpp) is located in the moeo/tutorial/Lesson3/ directory. The component files as well as the benchs directory (containing test instances for the bi-objective flow-shop scheduling problem) are all located in the moeo/tutorial/examples/flowshop/ directory. The program files are located in the build/moeo/tutorial/Lesson3/ directory.

Contrary to the lesson 2, this lesson has been conceived so that the modification of the algorithm components can be done in a more user-friendly way thanks to the parameter file. The main differences appear in the representation-independent things section.

Test

A multi-objective evolutionary algorithm is already designed for this problem. To run it, you first need to build the FlowShopEA2 and the install targets. Then, you will be able to launch the obtained executable file using the FlowShopEA2.param parameter file.

Refer to INSTALL file or installation guide for further information about how to (re)build tutorial and lessons.

Here is an example of what you should get:

Initial Population
100
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
11784   2810            20      17 6 8 0 2 3 19 13 5 12 18 7 14 9 1 4 11 16 15 10
11926   2747            20      17 6 2 7 10 18 4 19 15 14 16 9 11 5 0 13 3 8 1 12
12128   2873            20      17 5 9 1 10 18 3 4 13 7 8 2 19 0 15 12 16 11 14 6
10497   2680            20      16 9 15 13 17 8 1 12 4 7 18 14 11 6 19 3 2 10 5 0
11381   2709            20      16 6 12 11 14 4 18 13 8 15 5 19 7 0 10 2 17 1 9 3
9867    2589            20      12 15 13 0 11 17 19 14 4 3 8 9 6 18 2 16 10 5 1 7
10809   2765            20      12 15 2 17 4 7 16 1 14 18 9 6 5 0 3 10 19 13 8 11
12867   2729            20      11 6 0 2 7 10 1 17 13 8 16 12 3 14 15 4 9 18 19 5
.
.
.

STOP in eoGenContinue: Reached maximum number of generations [100/100]
Final Population
100
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
7191    2482            20      2 15 13 6 8 5 12 0 17 14 19 3 16 9 4 18 10 1 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
7329    2480            20      2 15 13 6 8 5 12 0 17 14 19 3 16 1 9 4 18 10 11 7
7329    2480            20      2 15 13 6 8 5 12 0 17 14 19 3 16 1 9 4 18 10 11 7
7090    2517            20      2 15 13 6 8 5 12 0 4 17 14 19 3 16 9 18 10 1 11 7
7090    2517            20      2 15 13 6 8 5 12 0 4 17 14 19 3 16 9 18 10 1 11 7
7150    2535            20      2 15 13 6 8 5 12 0 4 14 19 3 16 17 9 18 10 1 11 7
7045    2538            20      2 15 13 6 8 5 12 0 4 14 19 3 16 9 17 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
7090    2517            20      2 15 13 6 8 5 12 0 4 17 14 19 3 16 9 18 10 1 11 7
7045    2538            20      2 15 13 6 8 5 12 0 4 14 19 3 16 9 17 18 10 1 11 7
8129    2445            20      2 15 8 18 6 12 0 17 14 19 3 16 9 4 5 10 11 1 13 7 

You have launched an evolutionary algorithm for a bi-objective flow-shop scheduling problem. We will see later what this output means in details.