Mathematical Problems in Engineering
Volume 2015 (2015), Article ID 612604, 10 pages
http://dx.doi.org/10.1155/2015/612604

Research Article

A Bee Colony Optimization Approach for Mixed Blocking Constraints Flow Shop Scheduling Problems

Mostafa Khorramizadeh¹ and Vahid Riahi²

¹Department of Mathematical Sciences, Shiraz University of Technology, Shiraz 71555-313, Iran
²Department of Industrial Engineering, Shiraz University of Technology, Shiraz 71555-313, Iran

Received 11 June 2015; Revised 21 September 2015; Accepted 20 October 2015

Academic Editor: Marco Mussetta

Copyright © 2015 Mostafa Khorramizadeh and Vahid Riahi. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Abstract.

The flow shop scheduling problems with mixed blocking constraints with minimization of makespan are investigated. The Taguchi orthogonal arrays and path relinking along with some efficient local search methods are used to develop a metaheuristic algorithm based on bee colony optimization. In order to compare the performance of the proposed algorithm, two well-known test problems are considered. Computational results show that the presented algorithm has comparative performance with well-known algorithms of the literature, especially for the large sized problems.

1. Introduction

Flow shop scheduling problem has been extensively studied for over 50 years because of its significance in both theory and industrial applications [1]. As an important branch of flow shop scheduling problems, the blocking flow shop scheduling has attracted much attention in recent years. In the blocking flow shop, because of the lack of intermediate buffer storage between consecutive machines, a job has to stay in the current machine until the next machine is available for processing, even if it has completed processing in this machine [2]. This increases the waiting time and thus influences the efficiency of production. In the classical flow shop problem, the buffer space capacity between machines is considered unlimited. Some flow shop problems are concerned with the blocking constraints such as RSb, RCb, and (these blocking constraints will be described in Section 2). For problems with classical blocking constraint (RSb), Wang et al. [3, 4] developed a hybrid genetic algorithm for flow shop scheduling with limited buffers and a hybrid harmony search algorithm and Ribas et al. [5] proposed an iterated greedy algorithm. RCb constraint was introduced for the first time by Dauzere-Peres [6]. Regarding RCb constraint, an integer linear programming model, lower bounds, and a metaheuristic are presented in [7]. These problems have also been solved in [8] by a metaheuristic algorithm. A new blocking constraint called has been proposed by Trabelsi et al. [9] which is an RCb constraint simultaneously subjected to different types of blocking constraints on successive machines in a process. In [10], authors proposed some heuristic for the flow shop problem with RSb, RCb, and constraints and solved it with genetic algorithm. In [11], the complexity of a production system where the RSb and RCb constraints are mixed is studied.

In this paper, we propose a constructive heuristic for minimizing the makespan in flow shop scheduling problems with mixed blocking constraints. We propose a new heuristic method for the problem, which is based on the ideas of the bee colony optimization. The presented algorithm is developed by using the ideas of the Taguchi orthogonal arrays and the path relinking method. Moreover, some heuristic local search methods and perturbation procedures are also designed to improve the efficiency of the resulting algorithm. To compare the presented algorithm with some efficient algorithms of the literature, two sets of well-known test problems are used. The numerical results show that the presented algorithm is comparative with well-known algorithms of the literature.

This paper is structured as follows: the mixed blocking flow shop problem is described in Section 2. Section 3 is concerned with the description of the presented algorithm of this paper. The numerical results are given in Section 4. Finally, the paper is concluded in Section 5.

2. Problem Description

To describe the problem, we followed the same approach as [10]. Flow shop scheduling problems are a class of scheduling problems with a workshop or group shop in which the flow control will enable an appropriate sequencing for each job and for processing on a set of machines or with other resources in compliance with given processing orders. Particularly, the maintaining of a continuous flow of processing tasks is desired with a minimum of idle time and a minimum of waiting time. Flow shop scheduling is a special case of job shop scheduling where there is strict order of all operations to be performed on all jobs. Flow shop scheduling may apply as well to production facilities as to computing designs. The deterministic flow shop scheduling problem consists of a finite set of jobs to be processed on a finite set of machines. Each job must be processed on every machine in its routing consisting of operations . Operation needs an execution time on machine , performed in order. For , only one job can be executed on machine , at any time. Here, preemptive operations are not authorized. Objective function is to reduce the time when all operations are completed, that is, makespan. Several different cases of flow shop can be considered such as the classical flow shop problem without any blocking constraint, the flow shop problem with only one blocking constraint between all machines, and the flow shop problems in which different blocking constraints are mixed. One constraint met in industrial problems is that a job blocks a machine until this job starts on next machine in routing. This classical blocking constraint is denoted by RSb (Release when Starting Blocking). Another constraint is that a machine will be immediately available to treat its next operation after its job on the following machine in process is finished without regard to whether or not it leaves the machine. This blocking constraint is denoted by (Release when Completing ). In a large production line, different types of blocking constraints can be encountered which depend on intermediate storage between machines, characteristics of machines, and technical constraints. To characterize a flow shop problem where different blocking constraints are mixed, a vector is introduced that contains blocking constraints between machines. Element is blocking constraint between machines and . This vector has elements (as many elements as the number of transitions between machines). See [10] for details and a mathematical programming formulation of the problem. For the flow shop scheduling problem, we use a permutation of jobs as a solution representation. For example, suppose there are six jobs and four machines in a flow shop scheduling problem. A permutation is a permutation of six jobs and this solution represents a scheduling in which the sequence of jobs on each machine is , , , , , .

3. Bee Colony Algorithm

To describe the bee colony algorithm, we use the same approach as [12]. The bee colony algorithm is a stochastic P-metaheuristic that belongs to the class of swarm intelligence algorithms. BC is the one, which has been most widely studied and applied to solve the real-world problems. The basic artificial bee colony algorithm [12] classifies bees into three categories: employed bees, onlooker bees, and scout bees that both the onlookers and the scouts are also called unemployed bees. Employed bees are having no knowledge about food sources and looking for a food source to exploit. Onlooker bees are waiting for the waggle dances exerted by the other bees to establish food sources and scout bees carry out a random search in the environment surrounding the nest for new food sources. In the BC algorithm, each solution to the problem under consideration represented by an -dimensional real-valued vector is called a food source and the nectar amount of the food resource is evaluated by the fitness value. The following steps show the template of the bee algorithm inspired by the food foraging behavior in a bee colony:

(1)Initialization: compute an initial population.(2)Employed bee stage: find food sources by exploring the environment randomly.(3)Onlooker bee stage: select the food sources after sharing the information with employed bees.(4)Scout bee stage: select one of the solutions; then, replace it with a new randomly generated solution.(5)Remember the best food source found so far.(6)If a termination criterion has not been satisfied, go to step (2); otherwise, stop the procedure and report the best food source found so far.

Due to the fact that the basic BC algorithm was originally designed for continuous function optimization, for making it applicable for solving the mixed blocking flow shop problems with makespan criterion, a new variant of the BC algorithm is presented in this section.

3.1. Initialization

In the BC algorithm, initial population is often generated randomly. To guarantee an initial solution with certain quality and diversity, we generate one solution by using the NEH heuristic of Nawaz et al. [13]. Then, to maintain the diversity of the initial population, the other solutions are randomly generated in the entire search space. In Section 4, we show the impact of selecting NEH algorithm and some random solutions instead of selecting just random solution. The framework of the NEH heuristic is presented as follows:

(1)Compute the total processing time on all machines for each job. Then, obtain a sequence by sorting jobs according to their nonincreasing total processing time.(2)The first two jobs of are taken, and the two possible subsequences of these two jobs are evaluated, and then select the better one as the current sequence . Set .(3)Set . Take the th job of and insert it into () possible positions of the current sequence to obtain subsequences. Select the subsequence with the minimum makespan as the current sequence for the next generation. Repeat this step until all jobs are sequenced and the final sequence is found.

3.2. Employed Bee Phase

According to the basic BC algorithm, the employed bees find new solutions in the neighborhood of their current positions. Let be the population. For each member , at first, we apply a perturbation method to and generate a new solution . Then, the path relinking procedure is executed on and and produces a set of candidate solutions. Finally, a local search (which will be described later) is applied to the best candidate solution with a small probability and the current solution is replaced by the best candidate solution. The pseudocode of employed bee phase procedure is given as follows:

(1)Let be the current population and set .(2)Apply the perturbation method to to obtain a new solution .(3)Let be the set of candidate solutions obtained by executing the path relinking method to and .(4)Use the local search method to improve the best candidate solution with probability .(5)Replace with the best candidate solution.(6)Let . If , then, stop. Otherwise, go to step (2).

To complete the discussion, we need to describe the procedures for perturbation, path relinking, and local search. The perturbation procedure is based on the insertion operator. In the insertion operator jobs and are selected, the job at position is inserted into position , and all jobs between positions and are shifted accordingly [14]. In the perturbation method, at first, a random position is selected. Then, for all , the operator is applied to the current solution and the best obtained solution is chosen as the perturbed solution. The path relinking is applied in order to explore the search space between and . Path relinking is based on the interchange operator. Consider two distinct positions and . The operator exchanges the positions of the job at position and the job at position . In what follows, the path relinking procedure is explained by using an example. Let and . At first, job which is in position of is chosen. Since job is in position in , we apply the operator on and generate . In the next step, job which is in position of is selected. Since job is in position of , we apply on to obtain . Similarly, the next generated solution is , obtained by executing on . The set of candidate solutions obtained by using the path relinking method is . As mentioned earlier, the local search method is applied on the best candidate solution with probability . The local search method is also based on the exchange operator. In the local search method, at first, a position is randomly selected. Then, for all , the operator is applied to the current solution. The result is the best obtained solution. The local search method is repeated until no improvement is observed in a certain number of times (MaxCounter).

3.3. Onlooker Bee Phase

In the onlooker bee phase, we try to improve the quality of the members of the populations. For this purpose, we repeat the following procedure a certain number of times (MaxIter). At first, a member of the population is randomly chosen. Then, the perturbation method (as described in Section 3) is applied to the selected member. Finally, an improvement method (to be described later) is applied to the perturbed solution and if the resulting solution is better than the selected member, then the selected member is replaced with the resulting solution. The pseudocode of the onlooker bee phase is given as follows:

(1)Set .(2)Let be a random member of the population.(3)Let be the solution obtained by running the perturbation method to .(4)Apply the improvement method to to generate a new solution .(5)If is better than , then set .(6)Let . If , then, stop. Otherwise, go to step (2).

Two local search methods LS1 and LS2 are used in the improvement method. LS1 is exactly the local search method described in Section 3 and is based on the exchange operator. LS2 is obtained by using the insertion operator instead of the exchange operator in LS1. In LS2, a job is removed from a permutation and inserted into other positions; then, the permutation with the best out of the insertions is retained for the next iteration. In the improvement method, at first, LS1 is applied on the given solution and a new solution is generated. If is better than , we set . Then, LS2 is applied on and another solution is produced. Similarly, if is better than , we set . If the current solution is not improved by using of LS1 and LS2, then the perturbation method (described in Section 3) is applied on . This process is repeated until no improvement is observed in a certain number (MaxCnt) of iterations. The pseudocode of this improvement method is given as follows:

(1)Set and let be the current solution.(2)Let be the solution obtained after an application of LS1 to . If is better than , then .(3)Let be the solution obtained after an application of LS2 to . If is better than , then .(4)If is not improved after the application of LS1 and LS2, then apply the perturbation method to and replac with the perturbed solution.(5)Let . If , then, stop. Otherwise, go to step (2).

3.4. Scout Bee Phase

In this phase, the algorithm tries to generate new solutions by executing the following procedure a certain number of times (MaxLoop). At first, two distinct solutions of the population and are randomly selected. Then, the better one is determined. Without less of generality, let be the better one. In the next step, a combination method is applied to the best solution found so far and to generate a new solution. Finally, is replaced with the new generated solution. The pseudocode of the scout bees phase procedure is given as follows:

(1)Set .(2)Let and be two members of the population chosen randomly.(3)If is better than , then let . Otherwise, .(4)Let be the solution obtained after an application of the combination method to and ( is the best solution so far).(5)If , then ; otherwise, let .(6)Let . If , then, stop. Otherwise, go to step (2).

In the following, we describe the combination method. The ideas of the combination method are usually taken from crossover operators of evolutionary algorithms. However, in this paper, the combination method is based on the Taguchi orthogonal arrays. For this reason, it is required to briefly describe the Taguchi orthogonal arrays. To describe the Taguchi orthogonal arrays, we follow the same approach as [15]. Taguchi orthogonal arrays are concerned with factors, where each factor has levels. The purpose is to determine the best setting of each factor’s level. Clearly, examining all possible combinations often needs a lot of computational effort and is inefficient. Therefore, a small but representative sample of whole combinations is considered for this purpose. Let be the number of elements of this sample. This sample can be determined by an array with rows and columns and is denoted by . All members of the sample must satisfy three conditions. Every level must make the same number of times in any column occur. For every factors in any columns, every combination of levels must make the same number of times occur. The members of the factor must be uniformly distributed over the whole space of all possible combinations. In this paper, the parameter is always equal to 2 and can be omitted from this notation. In other words, the more simple notation can be used instead of . To use in the combination method, we need to explain how the best combination of each factor’s level is determined. Let , where is the objective function value of the th member of the sample; if the th level of the factor in is , then and otherwise . The th level of the factor is the best level of this factor, if .

In the following, an example is presented to explain how Taguchi orthogonal arrays are used to combine some members of the population. Consider the orthogonal array . Note that , , and . In the combination method, 5 solutions are generated and the best one is returned as the result of the combination method. From these 5 solutions, 4 solutions are generated by using the rows of and a solution is generated by using the best level of each factor. At first, we explain how solutions are generated by using the rows of . Assume that we want to combine two solutions and by using the third row of . In the first step, cut points and are randomly chosen and and are cut into pieces. These pieces are characterized by grey and white colors. Since the first component of the third row of is 1, the first piece of the combined solution is taken from the first piece of . Therefore, the first piece of the combined solution is . The second piece of the combined solution is which is taken from , because the second member of the third row of is . But here, 6 is repeated in the first piece of the combined solution as well. Therefore, only 2 and 5 appeared in the combined solution and the entry corresponding to is left blank. Similarly, as the third member of the third row of is 1, the third piece of the combined solution is taken from and the entry corresponding to the repeated number is left blank. The outcome of this procedure is . Note that the missing components of the combined solution are 1 and 3. Now, we consider the first member . The first blank position belongs to 1, because in at first 1 appeared. Finally, the second blank position is devoted to 3 and the resulting solution is . This procedure is depicted in Figure 1. Now, we explain how the best level of each factor is used to construct a solution. As we noted before, to compute the best level of each factor, we have to compute for and . Consider Figure 2. is constructed by using the first column of . Since level 0 appeared in the first and second row of the first column of , we have . Similarly, is also computed by using the first column of . Since level 1 appeared in the third and fourth row of the first column of , we have . We have . Therefore, the best level of the first factor is 1. By following the same procedure, the best levels of the second and third factors are 1 and 0, respectively. Now, since the best level of the first factor is 0, the first piece of the new solution is taken from . Similarly, the second and third factors of are taken from and , respectively. Finally, from , the best one is and is returned as the output of the combination method.

Figure 1: Solution generation by using the third row of .

Figure 2: Combination method.

In general case, suppose that we want to use the orthogonal array to combine members of the population and generate some new solutions. At first, cut points are randomly chosen and are cut into pieces. Then, for , the th row of the orthogonal array corresponding to is considered and a new solution is generated as follows. If the level of the th factor in the th row of the orthogonal matrix is , then the th part of is taken from the th part of . Here, missing components of are inserted as described before. In the next step, the fitness value of each is computed. Then, the best level of each factor is determined, as described before, and a new solution is also generated as follows. If the best level of the th factor is , then the th part of is taken from the th part of and missing components of are inserted as described before. Finally, from , the best one is chosen as the output of the combination method. The pseudocode of the described combination method is given as follows:

(1)Select members of the population, randomly.(2)Randomly, choose cut points and cut into pieces.(3)Use the th row of to generate a new member , for .(4)Compute the fitness value of each new member , for .(5)Compute the value of of factor with level , for , .(6)Use the best levels of all factors to generate a new member and calculate the fitness value of .(7)From , choose the best one as the output of the combination method.

4. Numerical Results

In this section, we examine the practical efficiency of the BC algorithm. The implementation was performed by using the C programming language on a system with a dual core 3.6 GHz CPU and 2 GB memory. All of the parameters in this study were determined experimentally. The parameters of BC algorithm were set as follows: , . Two sets of test problems were used to examine the efficiency of the presented algorithm. The first set of test problems is presented in Trabelsi et al. [10], and the second set is given by Taillard [16]. The numerical results of the test problems of Trabelsi are recorded in Tables 2, 3, and 4 and the numerical results of the test problems of Taillard are given in Tables 5(a), 5(b), and 5(c).

Table 1 is concerned with the properties of the 5680 different benchmark problems presented by Trabelsi et al. [10]. The first column and row of this table are concerned with the number of jobs and machines, respectively. The number in the th row and th column denotes the number of test problems with machines and jobs, where denotes the th number of the first column and is the th number of the first row. For example, the number of test problems with jobs and machines is 100.

Table 1: Characteristics of the set of test problems presented by Trabelsi.

Size

100
100
100
100
100
100
100
100

100
100
100
100
100
100
100
100

100
100
100
100
100
100
100
100

100
100
100
100
100
100
100
100

100
100
100
100
100
100
100
100

100
100
100
100
100
100
100
100

100
100
100
100
20
20
20
20

100
100
100
20
20
20
20
20

Table 2: Comparison of BC and GA with respect to computing time.

Alg.

GA
5
0.00
0.00
0.00
0.00
0.00
0.00
1.00
2.06

BC
5
0.00
0.00
0.00
0.00
0.00
0.01
0.04
0.06

GA
6
0.00
0.00
0.00
0.00
0.00
0.02
1.03
3.01

BC
6
0.00
0.00
0.00
0.00
0.01
0.03
0.06
0.09

GA
7
0.00
0.00
0.00
0.02
0.01
0.01
0.00
0.00

BC
7
0.01
0.01
0.01
0.03
0.03
0.06
0.09
0.17

GA
8
0.00
0.01
0.05
0.25
0.40
0.59
1.97
5.06

BC
8
0.01
0.01
0.03
0.03
0.04
0.06
0.12
0.23

GA
9
0.05
0.08
0.14
0.51
0.85
0.00
3.61
7.15

BC
9
0.03
0.03
0.04
0.04
0.06
0.07
0.15
0.32

GA
10
0.13
0.05
0.13
0.44
0.76
1.10
3.23
6.10

BC
10
0.03
0.03
0.03
0.04
0.07
0.09
0.23
0.45

GA
11
0.48
0.23
0.69
0.82
2.15
2.95
6.5
9.95

BC
11
0.04
0.04
0.04
0.06
0.07
0.14
0.26
0.59

GA
12
0.56
0.39
0.61
1.00
2.35
2.65
5.30
11.15

BC
12
0.04
0.04
0.06
0.06
0.11
0.14
0.32
0.76

Table 3: Comparison of BC and GA with respesct to quality of solutions.

Alg.

GA
5
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00

BC
5
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00

GA
6
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00

BC
6
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00

GA
7
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00

BC
7
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00

GA
8
0.00
0.00
0.00
0.00
0.00
0.01
0.00
0.00

BC
8
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.01

GA
9
0.00
0.00
0.00
0.02
0.04
0.01
0.02
0.01

BC
9
0.00
0.00
0.00
0.02
0.03
0.02
0.03
0.00

GA
10
0.04
0.02
0.06
0.05
0.10
0.04
0.05
0.05

BC
10
0.02
0.02
0.06
0.04
0.08
0.04
0.04
0.02

GA
11
0.02
0.04
0.09
0.10
0.20
0.29
0.12
0.04

BC
11
0.04
0.02
0.05
0.11
0.15
0.10
0.05
0.05

GA
12
0.06
0.06
0.17
0.25
0.34
0.27
0.23
0.13

BC
12
0.04
0.05
0.11
0.18
0.18
0.28
0.17
0.11

Table 4: Success rates of BC in finding the optimal solution.

NoI
NS

NoI
NS

NoI
NS

100
All

100
All

100
78

100
All

100
All

100
86

100
All

100
All

100
80

100
All

100
All

100
85

100
All

100
All

100
86

100
All

100
All

100
91

100
All

100
All

100
78

100
All

100
All

100
71

100
All

100
99

20
10

100
All

100
99

20
14

100
All

100
All

20
14

100
All

100
All

20
12

100
All

100
All

100
85

100
All

100
95

100
85

100
All

100
94

100
71

100
All

100
93

20
9

100
All

100
90

20
13

100
All

100
96

20
8

100
All

100
92

20
8

100
All

100
94

20
8

100
All

100
89

100
All

100
89

Table 5: The results of the BC on Taillards benchmark problems.

(a)

Instance

Min
AvgValue
Max
SD
AvgTime

ta001

2265
2268.2
2273
3.92
0.094

ta002

2180
2185.6
2187
3.17
0.109

ta003

2095
2095
2095
0.00
0.093

ta004

2417
2420.7
2438
5.63
0.112

ta005

2097
2106.6
2108
4.26
0.150

ta006

2265
2265
2265
0.00
0.120

ta007

2198
2198
2198
0.00
0.125

ta008

2261
2269.4
2288
13.59
0.098

ta009

2253
2257.52
2270
9.65
0.108

ta010

2042
2065.04
2089
8.13
0.102

ta011

2596
2609.3
2619
10.95
0.18

ta012

2685
2737.72
2805
39.62
0.19

ta013

2456
2486.44
2576
28.64
0.21

ta014

2186
2237.88
2286
42.63
0.22

ta015

2416
2464.88
2509
24.39
0.17

ta016

2289
2324.52
2365
27.64
0.18

ta017

2391
2407.92
2431
19.62
0.20

ta018

2541
2565.6
2605
19.86
0.23

ta019

2571
2604.72
2658
26.99
0.22

ta020

2684
2704.84
2736
16.45
0.19

ta021

3217
3248.6
3269
19.01
0.39

ta022

3010
3051.24
3092
39.59
0.41

ta023

3278
3331.00
3390
38.27
0.43

ta024

3164
3200.76
3234
24.16
0.42

ta025

3288
3338.40
3488
76.42
0.38

ta026

3155
3196.16
3238
30.66
0.39

ta027

3208
3259.48
3296
34.63
0.40

ta028

3127
3185.04
3236
44.78
0.44

ta029

3171
3235.52
3309
41.29
0.38

ta030

3140
3194.6
3256
29.88
0.46

ta031

5197
5210.10
5231
10.80
0.70

ta032

5430
5446.70
5479
13.49
0.72

ta033

5037
5046.00
5060
7.67
0.81

ta034

5368
5393.16
5418
7.28
0.79

ta035

5481
5391.40
5405
12.58
0.86

ta036

5430
5448.20
5473
14.54
0.76

ta037

5123
5146.90
5169
14.00
0.78

ta038

5214
5243.1
5260
11.86
0.73

ta039

5210
5212.40
5218
2.54
0.70

ta040

5351
5366.00
5379
9.47
0.75

ta041

5796
5826.30
5878
23.09
1.43

ta042

5445
5488.40
5523
23.40
1.67

(b)

Instance

Min
AvgValue
Max
SD
AvgTime

ta043

5500
5532.30
5584
24.16
1.51

ta044

5785
5811.60
5834
16.04
1.42

ta045

5790
5816.40
5859
22.89
1.39

ta046

5662
5694.00
5739
25.47
1.48

ta047

5802
5836.50
5868
18.55
1.43

ta048

5668
5699.30
5730
17.89
1.53

ta049

5610
5646.40
5683
21.48
1.48

ta050

5707
5780.60
5825
29.76
1.59

ta051

6820
6873.40
6935
31.94
3.12

ta052

6550
6592.50
6644
25.28
2.95

ta053

6389
6432.90
6465
27.82
3.18

ta054

6504
6558.52
6649
46.62
3.17

ta055

6447
6475.30
6505
16.04
3.10

ta056

6442
6488.20
6530
26.30
3.09

ta057

6507
6544.8
6572
17.70
3.14

ta058

6502
6572.16
6676
29.87
2.95

ta059

6512
6562.10
6631
30.74
2.98

ta060

6675
6728.40
6746
21.32
3.03

ta061

10601
10640.20
10678
22.54
5.71

ta062

10462
10477.9
10505
16.57
3.75

ta063

10216
10233.7
10259
23.56
4.46

ta064

9949
9996.00
10018
37.49
4.68

ta065

10339
10374.5
10432
33.69
5.06

ta066

10039
10079.6
10120
28.46
4.70

ta067

10396
10453.5
10491
31.26
4.75

ta068

10011
10038.50
10072
19.64
4.53

ta069

10651
10681.1
10702
14.96
4.50

ta070

10556
10572.6
10605
22.90
4.68

ta071

11283
11374.1
11446
41.14
9.45

ta072

10779
10846.2
10888
38.55
8.79

ta073

11147
11211.3
11248
27.46
8.87

ta074

11468
11492.80
11534
19.72
7.78

ta075

10937
10994.40
11036
25.33
7.98

ta076

10486
10540.00
10613
36.26
8.89

ta077

10927
10977.9
11019
42.86
7.81

ta078

10938
11015.1
11080
46.44
8.06

ta079

11239
11279.40
11347
35.45
8.76

ta080

11262
11329.90
11386
39.27
8.57

ta081

12180
12237.50
12344
46.28
15.18

ta082

12114
12177.30
12246
39.95
16.31

ta083

12145
12232.70
12299
47.09
14.98

ta084

12158
12211.00
12261
34.14
15.4

(c)

Instance

Min
AvgValue
Max
SD
AvgTime

ta085

12085
12196.80
12264
48.26
15.56

ta086

12244
12300.00
12369
36.41
15.16

ta087

12339
12376.10
12409
19.12
15.43

ta088

12502
12565.50
12652
38.49
15.29

ta089

12295
12352.10
12433
33.47
15.98

ta090

12423
12482.00
12525
37.19
15.04

ta091

21953
22056.70
22136
54.33
46.65

ta092

21570
21607.40
21707
45.16
46.70

ta093

21918
22012.20
22147
73.07
43.73

ta094

21626
21705.5
21768
42.83
41.07

ta095

21683
21822.40
21929
75.52
45.54

ta096

21128
21239.50
21319
60.27
45.62

ta097

21851
21954
22052
58.02
43.28

ta098

21697
21867.40
21978
78.91
46.28

ta099

21512
21555.90
21595
27.84
44.18

ta100

21565
21658.40
21730
45.61
46.96

ta101

23150
23240.80
23299
40.36
102.98

ta102

23479
23574.30
23674
62.57
103.9

ta103

23541
23720.60
23795
76.31
87.84

ta104

23629
23705.00
23793
57.44
93.07

ta105

23276
23351.70
23433
52.30
92.68

ta106

23492
23630.10
23692
57.17
90.36

ta107

23715
23812.10
23875
49.46
90.14

ta108

23575
23686.60
23797
56.42
85.95

ta109

23522
23621.50
23707
52.84
91.00

ta110

23547
23614.70
23685
49.68
93.74

In Table 2, the computing time of the BC is compared with that of the genetic algorithm (GA) of Trabelsi et al. [10] which is an efficient algorithm of the literature (perhaps the best one). In this table, the names of the algorithms are given in the first column. The numbers of jobs and machines are given in the second column and first row, respectively. For each problem instance BC was run 25 times and the average of the computing times is recorded in the column below AvgT. The numerical results of this table show that for large instances the computing time of BC is less than that of GA. From Figure 3, we can see that, with increasing the number of jobs, the difference of computing time of presented algorithm has been raised with GA that shows our algorithm is significantly faster than GA.

Figure 3: Comparison of BC and GA with respect to computing time.

In Table 3, the quality of solutions obtained by BC is compared with those of GA. Here, the error percentages are obtained by using the formula and are recorded below the column %err. It can be observed that the overall mean error value yielded by the BC is equal to 0.0328 which is smaller than 0.0458 generated by the GA. As the problem size increases, the superiority of the BC over GA increases. For the biggest problem analyzed (), the average error of the GA was nearly 0.189, while it was 0.14 for the presented BC. Based on Figure 4, we can observe that our algorithm reaches better solution in large problems which indicates the superiority of presented algorithm for mixed blocking flow shop than GA. Therefore, we conclude that the BC is competitive with GA, with respect to the computing time and the quality of the computed solution.

Figure 4: Comparison of BC and GA with respect to quality of solutions.

In Table 4, the rates of success of the presented algorithm, in finding the optimal solution of the test problems of Trabelsi, are given. In this table, is the number of jobs, is the number of machines, NoI is the number of problem instances (given in Table 1), and NS is the number of times in which BC computes the optimal solution. The numerical results of Table 4 verify that, from 64 cases, in 33 cases, BC computes the optimal solution of all problem instances. In 31 cases, the BC could not find the optimal solution of all of test problems. However, from these 31 cases, in 10 cases, the BC finds the optimal solution of more than (or equal to) 90 percent of test problems. Moreover, in 8 cases, the BC finds the optimal solution of 80 to 90 percent of the test problems. Only in 8 cases, the optimal solution of 70 to 80 percent of test problems is computed. Indeed, from 5680 test problems, only the optimal solution of 346 problems could not be found by using BC. These results show the efficiency of the presented algorithm in finding the optimal solution of the test problems.

For the first time, the BC was tested in the well-known test bed of Taillard [16]. Due to the fact that the largest number of jobs in Trabelsi’s benchmark problems is 12, in order to prove the efficiency of our algorithm according to competing approaches of this problem, we conducted still another experiment to test the performance of the BC on the 110 problems presented by Taillard that are larger than Trabelsi’s benchmark. In Table 4, the first column is concerned with the problem name. In the second column, the size of the test problems is recorded. Here, the number of jobs is denoted by and the number of machines is denoted by . Moreover, the column under Min (Max) is for the objective value of the best (worst) and the standard deviation (SD) of solution found by the presented algorithm. So, all results were obtained after 10 runs for each instance and are given in Table 2. The experimental results reveal that BC has the capability to solve large scale problems and it is effective and has reliable performance.

In addition, in order to prove the efficiency of applying NEH heuristic algorithm as one of the solutions instead of using just random ones as initial solutions, we compare the results of algorithms in these two cases that can be seen in Table 6. In that table, BC-NEH donates BC algorithm when NEH was used as one of the initial solutions, while BC-Random means BC algorithm with only random solutions as initialization phase. Comparison results indicate BC-NEH is 0.281 percent better than BC-Random that shows the efficiency of applying NEH as a solution and increases its effectiveness especially in large instances. It is also worth pointing out that, owing to , to maintain the diversity of solutions and decrease the computing time, we just use a heuristic solution instead of applying different heuristic solutions [17] in initialization step.

Table 6: Comparison of BC-NEH and BC-Random.

Instance
BC-Random
BC-NEH
AIR (%)

2215.206
2213.106
0.095

2516.782
2514.382
0.095

3229.32
3224.08
0.162

5298.458
5290.396
0.152

5721.72
5713.18
0.149

6583.931
6582.828
0.017

10389.03
10354.76
0.330

11201.36
11106.11
0.850

12339.51
12313.1
0.214

21827.46
21747.94
0.364

23792.03
23635.18
0.659

Average
NA
NA
0.281

5. Conclusion

In the current research, a mixed blocking flow shop scheduling problem for minimizing the makespan was discussed. This problem is known to be strongly NP-hard. Here, an efficient bee colony algorithm was proposed to solve this problem. The novelty of the presented method was mainly relevant to the way we applied the ideas of Taguchi orthogonal arrays, path relinking, and some local search methods within the bee colony algorithm, to obtain an efficient algorithm for mixed blocking constraints flow shop scheduling problems. Comparison of the proposed algorithm with an efficient algorithm of the literature demonstrates the efficiency of the proposed BC algorithm. For the first time, the presented algorithm was also tested on well-known test bed of Taillard.

Conflict of Interests

The authors declare that there is no conflict of interests regarding the publication of this paper.

References

J. N. D. Gupta and E. F. Stafford, “Flowshop scheduling research after five decades,” European Journal of Operational Research, vol. 169, no. 3, pp. 699–711, 2006.

L. Wang, Q.-K. Pan, P. N. Suganthan, W.-H. Wang, and Y.-M. Wang, “A novel hybrid discrete differential evolution algorithm for blocking flow shop scheduling problems,” Computers & Operations Research, vol. 37, no. 3, pp. 509–520, 2010.

L. Wang, L. Zhang, and D.-Z. Zheng, “An effective hybrid genetic algorithm for flow shop scheduling with limited buffers,” Computers & Operations Research, vol. 33, no. 10, pp. 2960–2971, 2006.

L. Wang, Q.-K. Pan, and M. F. Tasgetiren, “A hybrid harmony search algorithm for the blocking permutation flow shop scheduling problem,” Computers and Industrial Engineering, vol. 61, no. 1, pp. 76–83, 2011.

I. Ribas, R. Companys, and X. Tort-Martorell, “An iterated greedy algorithm for the flowshop scheduling problem with blocking,” Omega, vol. 39, no. 3, pp. 293–301, 2011.

S. Dauzere-Peres, C. Pavageau, and N. Sauer, “Modelisation et resolution par PLNE dun probleme reel dordonnancement avec contraintes de blocage,” in 3eme Congres ROADEF, Nantes, France, January 2000.

S. Martinez, Ordonnancement de systems de production avec contraintes de blocage [Ph.D. thesis], University of Nantes, Nantes, France, 2005.

G. I. Zobolas, C. D. Tarantilis, and G. Ioannou, “Minimizing makespan in permutation flow shop scheduling problems using a hybrid metaheuristic algorithm,” Computers and Operations Research, vol. 36, no. 4, pp. 1249–1267, 2009.

W. Trabelsi, C. Sauvey, and N. Saur, “Heuristic methods for problems with blocking constraints solving jobshop scheduling,” in Proceedings of the 8th International Conference on Modeling and Simulation (MOSIM '10), Hammamet, Tunisia, May 2010.

W. Trabelsi, C. Sauvey, and N. Sauer, “Heuristics and metaheuristics for mixed blocking constraints flowshop scheduling problems,” Computers and Operations Research, vol. 39, no. 11, pp. 2520–2527, 2012.

S. Martinez, S. Dauzère-Pérès, C. Guéret, Y. Mati, and N. Sauer, “Complexity of flowshop scheduling problems with a new blocking constraint,” European Journal of Operational Research, vol. 169, no. 3, pp. 855–864, 2006.

D. Karaboga and B. Basturk, “A powerful and efficient algorithm for numerical function optimization: artificial bee colony (ABC) algorithm,” Journal of Global Optimization, vol. 39, no. 3, pp. 459–471, 2007.

M. Nawaz, E. E. Enscore Jr., and I. Ham, “A heuristic algorithm for the m-machine, n-job flow-shop sequencing problem,” Omega, vol. 11, no. 1, pp. 91–95, 1983.

B. Jarboui, M. Eddaly, and P. Siarry, “An estimation of distribution algorithm for minimizing the total flowtime in permutation flowshop scheduling problems,” Computers & Operations Research, vol. 36, no. 9, pp. 2638–2646, 2009.

J.-T. Tsai, T.-K. Liu, and J.-H. Chou, “Hybrid Taguchi-genetic algorithm for global numerical optimization,” IEEE Transactions on Evolutionary Computation, vol. 8, no. 4, pp. 365–377, 2004.

E. Taillard, “Benchmarks for basic scheduling problems,” European Journal of Operational Research, vol. 64, no. 2, pp. 278–285, 1993.

Y.-Y. Han, Q.-K. Pan, J.-Q. Li, and H.-Y. Sang, “An improved artificial bee colony algorithm for the blocking flowshop scheduling problem,” International Journal of Advanced Manufacturing Technology, vol. 60, no. 9–12, pp. 1149–1159, 2012.