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

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

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 root 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 (FlowShopEA.cpp) is located in the moeo/tutorial/Lesson2/ 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 moeo/build/tutorial/Lesson2/ directory.

Test

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

For unix-like platforms in a console mode, this can be done as follows:

> cd $PARADISEO$/paradiseo-moeo/build/
> make
> make install
> cd tutorial/Lesson2/
> ./FlowShopEA @FlowShopEA.param

where $PARADISEO$ is the path where Paradiseo has been installed.

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.