Hybrid genetic algorithm for a type-II robust mixed-model assembly line balancing problem with interval task times
DOI: 10.1007/s40436-019-00256-3
© The Author(s) 2019
Received: 11 August 2018
Accepted: 19 April 2019
Published: 1 June 2019
Abstract
The type-II mixed-model assembly line balancing problem with uncertain task times is a critical problem. This paper addresses this issue of practical significance to production efficiency. Herein, a robust optimization model for this problem is formulated to hedge against uncertainty. Moreover, the counterpart of the robust optimization model is developed by duality. A hybrid genetic algorithm (HGA) is proposed to solve this problem. In this algorithm, a heuristic method is utilized to seed the initial population. In addition, an adaptive local search procedure and a discrete Levy flight are hybridized with the genetic algorithm (GA) to enhance the performance of the algorithm. The effectiveness of the HGA is tested on a set of benchmark instances. Furthermore, the effect of uncertainty parameters on production efficiency is also investigated.
Keywords
Mixed-model assembly line Assembly line balancing Robust optimization Genetic algorithm (GA) UncertaintyList of symbols
- i, t :
-
Index of assembly tasks, \(i,t = 1,2, \cdots ,n\)
- j :
-
Index of models, \(j = 1,2, \cdots ,p\)
- k :
-
Index of workstations, \(k = 1,2, \cdots ,m\)
- n :
-
Number of tasks
- m :
-
Number of predefined workstations
- p :
-
Number of models to be assembled on the line
- C :
-
Cycle time
- w j :
-
Weight of model j in total production, \(j = 1,2, \cdots ,p\)
- \(\bar{t}_{ij}\) :
-
Nominal task time of task i for model j
- \(\hat{t}_{ij}\) :
-
Deviation task time from \(\bar{t}_{ij}\)
- \(I_{t}\) :
-
Set of immediate predecessors of task t, \(t = 1,2, \cdots ,n\)
- γ :
-
Budget for uncertainty, which means the number of uncertain tasks considered in a workstation, 0 ≤ γ ≤ n
- u ik :
-
Continuous variable
- x ik :
-
xik = 1 if task i is assigned to workstation k; otherwise, xik = 0; \(i = 1,2, \cdots ,n;\;k = 1,2, \cdots ,m\)
1 Introduction
Assembly lines are production systems containing serially located workstations. Assembly tasks are completed in these serial workstations. The first real example of an assembly line was developed by Henry Ford in 1913. The production rate saw an eightfold increase with the introduction of the assembly line production. Since then, assembly lines have been widely used around the world. The assembly line balancing problem (ALBP) is one of the important problems in the design of an assembly line. ALBP is to assign assembly tasks among the workstations to optimize production objectives. This assignment must take the precedence relationship constraint and other technical constraints into consideration. ALBP has been an active area of research since the first mathematical model of ALBP was presented by Salveson [1]. The detailed reviews of research on ALBP can be found in Refs. [2–4].
A mixed-model assembly line is capable of assembling similar models from a basic product through a single assembly line. With increasing competition and diversity in customer demands, mixed-model assembly lines have become popular in many industries, such as cars, TVs, and computers. The mixed-model assembly line balancing problem (MMALBP) is classified into two types: MMALBP-I and MMALBP-II [5]. The former is aimed at minimizing the number of workstations for a given cycle time, whereas the latter is aimed at minimizing the cycle time under a given number of workstations.
In many studies of the MMALBP, task times are assumed to be deterministic. However, in real life, assembly tasks are subject to various uncertainties, such as the skill level of the operator, task complexity, and resource availability. Both stochastic mixed-model assembly line balancing [6, 7] and fuzzy mixed-model assembly line balancing [8] have been proposed to deal with uncertain task times. In stochastic mixed-model assembly line balancing, it is assumed that task times are subject to probability distribution, generally normal distribution. In fuzzy mixed-model assembly line balancing, task times are assumed to be fuzzy numbers with given membership. However, both stochastic and fuzzy task times are often impossible in practice because of insufficient preliminary information to deduct the required probability or possibility distribution functions.
Soyster [9] first developed the robust optimization approach in which the probability distribution of uncertain parameters is unknown. However, with the worst-case scenarios that may never happen in real life, this method is very conservative. To control the degree of conservatism, Ref. [10] developed a robust optimization, in which only a subset of uncertain coefficients (only γ of them) is in the worst scenarios. This approach can be extended to discrete optimization problems and has been applied to a variety of problems. Many researchers have adopted the robust optimization approach to study the assembly line balancing problem with uncertain task times: Al-e-hashem et al. [11] considered the type-I robust mixed-model assembly line balancing problem (RMMALBP-I). Hazır and Dolgui [12] studied the type-II robust simple assembly line balancing problem (RSALBP-II) and developed a Benders decomposition algorithm. Gurevsky et al. [13] investigated the type-I robust simple assembly line balancing problem (RSALBP-I) and designed a branch and bound algorithm. Nazarian and Ko [14] considered the uncertain task and inter-task times in RSALBP-II, especially focusing on non-productive times in workstations. Moreira et al. [15] studied RSALBP-I with heterogeneous workers under uncertain task times and developed two mathematical models and a heuristic method. Hazır and Dolgui [16] studied the robust U-shaped assembly line balancing problem, which was solved by a Benders decomposition algorithm. Pereira and Álvarez-Miranda [17] investigated RSALBP-I and developed a heuristic method and an exact algorithm.
To the best of our knowledge, only Al-e-hashem et al. [11] have used the robust optimization method to study the mixed-model assembly line balancing problem with uncertain task times, in addition to formulating a mathematical model of RMMALBP-I. However, there is no related work on RMMALBP-II, which is directly related to the production rate of the mixed-model assembly line. The MMALBP-II with interval task times is studied in this paper using the robust optimization method, which is called robust MMALBP-II (RMMALBP-II). In this problem, each task time is represented by an interval dataset. To solve this problem, the robust optimization model is formulated and a hybrid genetic algorithm (HGA) is developed. The robust optimization model for this problem is nonlinear. To facilitate the use of an exact algorithm, the counterpart of the nonlinear robust optimization model is obtained by duality.
The remainder of this paper is organized as follows: the RMMALBP-II is described and the mathematical models are formulated in Sect. 2. The HGA is developed in Sect. 3. In Sect. 4, computational experiments are implemented, along with the illustration of the results. Finally, conclusions are drawn in Sect. 5.
2 Problem description and model formulation
2.1 Problem description
A mixed-model assembly line with m workstations is considered. p similar models are assembled simultaneously in an intermixed sequence. The ratio of the unit number of each model j to the overall demand is wj. The precedence relationship of each model is predefined and all relationships can be combined into only one precedence graph with n tasks. Each task has an uncertain task time. The uncertainty information about the probability distribution or fuzzy membership function is not easy to know, and each uncertain task time can only be represented by an interval \(\left[ {\bar{t}_{ij} \pm \hat{t}_{ij} } \right]\). \(\bar{t}_{ij}\) is the nominal task time for task i and model j, and \(\hat{t}_{ij}\) corresponds to the deviation task time from \(\bar{t}_{ij}\). If the interval \(\left[ {\bar{t}_{ij} \pm \hat{t}_{ij} } \right]\) equals 0, it means that model j does not need task i to be assembled. The aim is to minimize cycle time C.
- (i)
The task time of each model is uncertain and is represented by a given interval dataset.
- (ii)
Each common task for different models must be assigned to the same workstation for economy.
- (iii)
The precedence graphs for different models are predefined, and a combined precedence graph can be obtained.
- (iv)
The line is a paced line with a fixed cycle time.
- (v)
The line is serial with no feeder lines or parallel workstations.
- (vi)
There are no assignment restrictions of tasks except precedence constraints.
- (vii)
There are no buffers between workstations.
2.2 Model formulation
Objective function (1) minimizes cycle time C. Constraint (2) is known as the occurrence constraint that each task can be assigned to a workstation. Constraint (3) is the precedence constraint to guarantee the technological sequencing requirements. Constraint (4) ensures that the weighted uncertain workstation times do not exceed the cycle time C. The left-hand side of constraint (4) consists of two parts: \(\sum\nolimits_{j = 1}^{p} {w_{j} \bar{t}_{ij} }\) is the weighted nominal task time of each task i which can be assigned into a workstation and \(\sum\nolimits_{j = 1}^{p} {w_{j} \hat{t}_{ij} }\) is the weighted deviation task time for each task i. The number of uncertain tasks considered in a workstation is bounded by parameter γ. The larger γ is, the more the deviation task times should be considered. Constraint (5) determines the bound of variable \(u_{ik}\), which indicates the level of an uncertain task time deviating from the nominal time. When \(u_{ik} = 0\), it means that the task time for task i in workstation k does not deviate from the nominal time and is deterministic. When \(u_{ik} = 1\), task i in workstation k is under the worst case, and the task time is equal to \(\bar{t}_{ij} + \hat{t}_{ij}\). Constraint (6) is the nondivisibility constraint, which means that a task cannot be split among two or more workstations. Constraint (7) makes sure that C has an integer value, which is always the case in a real-world environment [5].
2.3 Counterpart of the nonlinear robust optimization model
3 Proposed hybrid genetic algorithm for RMALBP-II
Type-II simple assembly line balancing problem (SALBP-II) is known to be nondeterministic polynomial (NP)-hard [2]. It can be found that SALBP-II is a special case of RMALBP-II. Similar to SALBP-II, RMLABP-II is NP-hard. Owing to its NP-hard nature, RMALBP-II can be time-consuming to obtain an optimal solution using exact algorithms. In this section, an HGA is developed to solve this problem.
This algorithm starts with the generation of an initial feasible population, which is followed by the evaluation of each chromosome through fitness evaluation. Special genetic operators for the assembly line balancing problem (crossover and mutation) are performed. An adaptive local search procedure and a discrete Levy flight are used to improve the quality of solutions. This loop keeps running until the maximum iteration number is reached. Finally, the best cycle time of RMMALBP-II is obtained.
3.1 Encoding scheme and initial population
A combined precedence graph, G, is formed by combining the precedence graphs of each model. Based on the combined precedence graph, common tasks of each model can be assigned to the same workstation. Each chromosome, according to their precedence constraint, is designed as a sequence of tasks. The number of genes in the chromosome is equal to that of tasks n in G, and each gene is an integer representing a task.
Population initialization is a crucial step in evolutionary algorithms (EAs). Many researchers have proposed to seed EAs with good initial solutions, whenever it is possible, to obtain important improvement in the convergence of the algorithm and the quality of the solutions [19]. However, the excessive use of good solutions in the initial population can decrease the exploration capacity of the GA, thereby trapping the population in local optimums quickly [20, 21]. In this case, it is proposed to seed part of the initial population with heuristic solutions to improve the performance of the algorithm. Based on the experimental results, 20% of the initial population can be seeded by the proposed heuristic and 80% can be generated randomly. This initialization method can obtain better solutions than that of a randomly generated population, as shown in Sect. 4.1.
The heuristic method is based on Pereira and Álvarez-Miranda [17] and Sewell and Jacobson [22], and builds solutions from the forward or backward direction of G. Task j in G, which maximizes the priority rule \(\sum\nolimits_{i \in U} {\left( {w_{i} \bar{t}_{i} + aw_{i} \hat{t}_{i} + b\left| {F_{i} } \right| - c} \right)}\), can be selected. U is the set of tasks that have not yet been selected; \(w_{i} \bar{t}_{i}\) is the weighted nominal task time; \(w_{i} \hat{t}_{i}\) is the weighted deviation time; \(\left| {F_{i} } \right|\) is the number of immediate successors of task \(i\) in the forward direction search or that of immediate predecessors of task i in the backward direction search. a, b, and c are input parameters. The recommended values for a, b, and c in Ref. [22] are employed. Every random combination of a ∈ {0,0.005,0.010,0.015,0.020}, b ∈ {0,0.005,0.010,0.015,0.020}, and c ∈ {0,0.01,0.02,0.03} is used to select a task. The random method selects a task at random and assures the feasibility of the precedence relationship. The precedence matrix is used to describe the precedence relationship of tasks [23].
The procedure of the initial feasible population generation is described as follows.
-
Step 1 Build an empty vector A; read the precedence matrix P of the combined precedence graph G.
-
Step 2 Choose the random creation method or the heuristic method.
- (i)
If the random creation method is chosen, go to Step 3.
- (ii)
If the heuristic method is chosen, decide the search direction randomly. If it is a backward direction search, P = P′ and go to Step 3; otherwise, go to Step 3.
-
Step 3 If j ≤ n, store the tasks where the sum of the column of P is equal to 0 into A; if j > n, go to Step 7.
-
Step 4 Choose a task from A for a gene in a chromosome.
- (i)
If it is the random creation method, choose a task from A at random for the jth gene in a chromosome. Empty A, and go to Step 5.
- (ii)
If it is the heuristic method, generate a random combination of input parameters a, b, and c, and choose the task that maximizes the priority rule from A. The task is assigned for the jth gene in the forward direction search or for the (n−j + 1)th in the backward direction search. Empty A, and go to Step 5.
-
Step 5 Update the ith row of P by putting a big number D (e.g., 999) into tasks i and 0 into other tasks.
-
Step 6 Update j = j+ 1, and go to Step 3.
-
Step 7 End the procedure.
Precedence matrix P of G
Task | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
4 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
5 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
10 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
11 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Searching for the tasks to formulate a feasible task sequence from the backward direction
Task | Step 2: Transposed matrix of P | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
6 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
7 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
8 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
9 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
10 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
11 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
Step 3: Sum of columns | 4 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
Updating P after a task selected
Task | Step 5: Matrix P | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
6 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
7 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
8 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
9 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
10 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
11 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | D |
Final content of P after forming a feasible task sequence
Task | Matrix P | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | |
1 | D | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
2 | 0 | D | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
3 | 0 | 0 | D | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
4 | 0 | 0 | 0 | D | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
5 | 0 | 0 | 0 | 0 | D | 0 | 0 | 0 | 0 | 0 | 0 |
6 | 0 | 0 | 0 | 0 | 0 | D | 0 | 0 | 0 | 0 | 0 |
7 | 0 | 0 | 0 | 0 | 0 | 0 | D | 0 | 0 | 0 | 0 |
8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | D | 0 | 0 | 0 |
9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | D | 0 | 0 |
10 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | D | 0 |
11 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | D |
Sum of columns | D | D | D | D | D | D | D | D | D | D | D |
3.2 Evaluation procedure
-
Step 1 Read the nominal time matrix T and the deviation task time matrix V.
-
Step 2 Calculate the theoretical minimum cycle time for the initial trial cycle time \(\bar{C}\). This initial cycle time value is the lower boundary (LB), and the calculation equation is presented aswhere \(\overline{{t_{i} }} = \sum\nolimits_{j = 1}^{p} {w_{j} \bar{t}_{ij} }\) represents the weighted nominal task time for task i and \(\hat{t}_{i} = \sum\nolimits_{j = 1}^{p} {w_{j} \hat{t}_{ij} }\) represents the weighted deviation task time for task i.$${\text{LB}} = \left\{ {\begin{array}{*{20}l} {{\text{ceil}}\left( {\hbox{max} \left( {\hbox{max} \left( {\overline{{t_{i} }} } \right),{{\sum\limits_{i = 1}^{n} {\overline{{t_{i} }} } } \mathord{\left/ {\vphantom {{\sum\limits_{i = 1}^{n} {\overline{{t_{i} }} } } m}} \right. \kern-0pt} m}} \right)} \right) ,} \hfill & {\quad \gamma = 0 ,} \hfill \\ {\text{ceil}\left( {\hbox{max} \left( {\hbox{max} \left( {\overline{{t_{i} }} { + }\hat{t}_{i} } \right),\left( {\sum\limits_{i = 1}^{n} {\overline{{t_{i} }} + {{\hbox{max} \left( {\hat{t}_{i} } \right)} }} } \right)/m} \right)} \right) ,} \hfill & {\quad \gamma \ge 1,} \hfill \\ \end{array} } \right.$$(14)
-
Step 3 Assign the tasks into predetermined workstations. Tasks are assigned to the first station in the order of the gene sequence complying with the precedence relationship. The cycle time constraint as shown in inequality (4) cannot be violated. The cycle time constraint can be described as$$\sum\limits_{i = 1}^{n} {\overline{{t_{i} }} x_{ik} } + \text{max}\left( {\sum\limits_{i = 1}^{n} {\hat{t}_{i} x_{ik} u_{ik} } :\sum\limits_{i = 1}^{n} {u_{ik} } \le\upgamma} \right) \le \overline{C} . { }$$(15)
-
Step 4 If \(C_{\text{w}} \le \bar{C}\), go to Step 5; otherwise, update \(\bar{C} = \, \bar{C} + 1\) and go to Step 3.
-
Step 5 The cycle time is equal to \(\bar{C}\); end this procedure.
Evaluation procedure for the illustrative example with γ = 1
Chromosome | 1 | 5 | 2 | 6 | 4 | 3 | 7 | 9 | 8 | 10 | 11 | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Step 1 | \(\overline{{t_{i} }}\) | 6 | 1 | 2 | 2 | 7 | 5 | 3 | 5 | 6 | 5 | 4 | |
\(\hat{t}_{i}\) | 0.6 | 0.1 | 0.2 | 0.2 | 0.7 | 0.5 | 0.3 | 0.5 | 0.6 | 0.5 | 0.4 | ||
Step 2 | LB | LB = ceil(max (7.7, 4.8848)) = 8 | |||||||||||
Step 3 | Workstation (WS) | WS1(1 5) WS2(2 6) WS3(4) WS4(3 7 9 8 10 11) | |||||||||||
C w | WS4 is bottleneck; Cw = 28 + 0.6 = 28.6 > \(\bar{C}\) | ||||||||||||
Step 4 | Update \(\bar{C}\) | \(\bar{C} = \bar{C} + 1\) | |||||||||||
Repeat | |||||||||||||
Step 5 | C | The cycle time of this chromosome is C = 14 | |||||||||||
End the procedure |
3.3 Tournament selection
-
Step 1 k chromosomes in the population are selected at random.
-
Step 2 The chromosome with the best objective value (minimum cycle time) from these selected chromosomes is chosen as the best one and added to the mating pool.
-
Step 3 This procedure is repeated until the number of individuals in the mating pool reaches the required population size and the population is updated through this procedure.
3.4 Fragment reordering crossover
-
Step 1 Two parent individuals are selected from the population in order.
-
Step 2 Two parents selected are divided by two randomly cut points into three sections: head, middle, and tail.
-
Step 3 The head and tail parts of the first offspring are taken from the first parent and the middle part of the first offspring is filled by adding missing tasks according to the order in which they are contained in the second parent.
-
Step 4 Like the building process for the first offspring, the head and tail of the second offspring are formed from the same part of the second parent, and the middle is filled by the missing tasks according to the order in which they are contained in the first parent.
-
Step 5 Get a new population with the offspring chromosomes.
3.5 Scramble mutation
-
Step 1 The mutation point is generated randomly, and one chromosome from the population is divided into head and tail.
-
Step 2 The head of the chromosome is kept, and the tail of the chromosome is regenerated respecting the precedence relationship. The precedence matrix needs to be proceeded to eliminate the task already in the head of the chromosome.
-
Step 3 Get a new population with the mutation procedure.
3.6 Adaptive local search
The pure genetic algorithm is good at global search but slow to converge [27]. Local search is a promising approach to improve the quality of the objective value and convergence speed [28]. Within the proposed algorithm, a local search procedure is applied to every chromosome of the population. The local search tries to transfer tasks in the bottleneck workstation to other workstations to reduce the cycle time. To tackle the increased computation time of the local search procedure, an adaptive local search scheme is adopted. The basic concept of applying the local search to the population is to consider whether GA has converged to the global optimal solution or not [29]. The converging criterion for the line balancing problem is the ratio of the average fitness of the chromosomes to the fitness of the best chromosome less than 1.01 [30].
If \(R_{{\text{fv}}}\) > 1.01, apply the local search; otherwise, only GA is implemented.
-
Step 1 Identify the workstation with the largest workstation times as the bottleneck workstation.
-
Step 2 Let nb be the number of tasks in the bottleneck workstation. If i ≤ nb, find the ith task in the bottleneck workstation. According to the precedence relationship, find the earliest workstation E(i) and the latest workstation L(i) to which task i can be transferred. If i > nb, go to Step 6.
-
Step 3 Rank workstations between E(i) and L(i) according to workstation times in the ascending order.
-
Step 4 k is the workstation between E(i) and L(i). Transfer task i to the workstations arranged in order of Step 3. Task i can be transferred to a workstation with \(\left(\bar{T}_{k} + \bar{t}_{i} + \hbox{max} \left\{ {\sum\nolimits_{{j \in M_{k} \cup \{ i\} }} {\hat{t}_{j} x_{jk} u_{jk} } :\sum\nolimits_{{j \in M_{k} \cup \{ i\} }} {u_{jk} } \le\upgamma} \right\}\right) \le T_{\text{b}}\), and go to Step 6. \(T_{\text{b}}\) is the workstation time of the bottleneck workstation considering task deviation times. \(\overline{{T_{k} }}\) is the total nominal task time of station k. Mk is the set of tasks in workstation k.
-
Step 5 Update i = i + 1, and go to Step 2.
-
Step 6 Get the new chromosome and end the local search procedure.
Local search procedure for the illustrative example with γ = 1
Chromosome | 1 | 2 | 5 | 6 | 3 | 4 | 7 | 8 | 10 | 9 | 11 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Step 1 | Workstation (WS) Time | WS1 | WS2 | WS3 | WS4 | |||||||
11.6 | 12.7 | 14.6 | 9.5 | |||||||||
Step 2 | E(7), L(7) | E(7) = WS2, L(7) = WS4 | ||||||||||
Step 3 | Ascending order | WS4(9.5) → WS2(12.7) → WS3(14.6) | ||||||||||
Step 4 | Transferring | Task 7 → WS4 | ||||||||||
WS4 time = 9 + 3 + 0.5 = 12.5 < 14.6 | ||||||||||||
Step 6 | New chromosome | 1 | 2 | 5 | 6 | 3 | 4 | 8 | 10 | 7 | 9 | 11 |
End local search procedure |
3.7 Discrete Levy flight
The fitness values of the two chromosomes before and after the discrete Levy flight are compared, and the chromosome with the better solution is kept in the population.
-
Step 1 Select location k randomly as the starting point of the Levy flight.
-
Step 2 Obtain the precedence matrix of the part before the chromosome location k.
-
Step 3 Calculate step length \(\lambda\) according to Eq. (18), where β = 1.5.
-
Step 4 Obtain the feasible task set S using the precedence matrix, which makes the Levy flight obtain a feasible solution. Calculate value q=\(\hbox{min} \left\{ {\lambda \left( {\bar{t}_{i} { + }\hat{t}_{i} } \right)} \right\}\), where i ∈ S. Choose task s that meets \(\left( {\bar{t}_{{s}} + \hat{t}_{{s}} } \right) \le q,(s \in S)\) to form the task set S1.
-
Step 5 If λ ≤ 1, select task j with the minimum (\(\bar{t}_{j} { + }\hat{t}_{j}\)) in set S as \(\bar{\lambda }\); otherwise, choose the task with maximum task times in set S1 as \(\bar{\lambda }\).
-
Step 6 k=k + 1, go to Step 2 until k=n.
3.8 Elite preservation
Each individual with minimum cycle time is preserved for the next generation. The fitness values of individuals from the current population and the offspring after the Levy flight are compared, and the individuals with best fitness values are preserved to form a new generation.
4 Numerical experiments
Benchmark instances
Name | n | m | Models | Product mix | \(\psi\) |
---|---|---|---|---|---|
Small size | |||||
Mertens | 7 | 4 | 2 | (0.4,0.6) | 0.5 |
Bowman | 8 | 5 | 2 | (0.5,0.5) | 0.5 |
Jaeschke | 9 | 4 | 2 | (0.8,0.2) | 0.3 |
Mansoor | 11 | 4 | 2 | (0.7,0.3) | 0.1 |
Jackson | 11 | 4 | 2 | (0.4,0.6) | 0.3 |
Medium size | |||||
Mitchell | 21 | 4 | 2 | (0.4,0.6) | 0.2 |
Rosizeg | 25 | 7 | 4 | (0.2,0.3,0.1,0.4) | 0.4 |
Buxey | 29 | 6 | 2 | (0.3,0.7) | 0.3 |
Sawyer | 30 | 8 | 2 | (0.5,0.5) | 0.2 |
Gunther | 35 | 6 | 3 | (0.2,0.3,0.5) | 0.1 |
Large size | |||||
Kilbridge | 45 | 5 | 2 | (0.9,0.1) | 0.1 |
Warnecke | 58 | 12 | 2 | (0.6,0.4) | 0.1 |
Tong | 70 | 16 | 2 | (0.1,0.9) | 0.2 |
Wee-Mag | 75 | 20 | 3 | (0.4,0.3,0.3) | 0.3 |
Mukherje | 94 | 22 | 2 | (0.7,0.3) | 0.1 |
Parameters of the proposed algorithm
Parameter | Value |
---|---|
Population size | 50 |
Maximal iteration number | 100 |
Tournament size | 2 |
Crossover probability/% | 80 |
Mutation probability/% | 15 |
4.1 Comparison of different initializations
Results of Sawyer using different initializations with γ = 1
Initialization method | RI | PI | ||||
---|---|---|---|---|---|---|
Min | Mean | SD | Min | Mean | SD | |
Sawyer | 46 | 46.7 | 0.67 | 45 | 46.4 | 0.65 |
4.2 Validation studies
Results of benchmark instances with γ = 1
Name | LINGO | GA | HGA | Improvement/% | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
OCT | CPU/s | Min | Mean | SD | CPU/s | Min | Mean | SD | CPU/s | ||
Small size | |||||||||||
Mertens | 12 | 1 | 12 | 12 | 0 | 30.02 | 12 | 12 | 0 | 31.52 | 0 |
Bowman | 26 | 1 | 26 | 26 | 0 | 41.71 | 26 | 26 | 0 | 43.02 | 0 |
Jaeschke | 12 | 1 | 12 | 12 | 0 | 30.37 | 12 | 12 | 0 | 31.2 | 0 |
Mansoor | 52 | 1 | 52 | 52 | 0 | 32.57 | 52 | 52 | 0 | 33.79 | 0 |
Jackson | 14 | 1 | 14 | 14 | 0 | 37.09 | 14 | 14 | 0 | 60.11 | 0 |
Medium size | |||||||||||
Mitchell | 29 | 1 | 29 | 29 | 0 | 49.13 | 29 | 29 | 0 | 73.71 | 0 |
Rosizeg | 22 | 1 | 22 | 22.3 | 0.48 | 75.1 | 22 | 22 | 0 | 110.36 | 1.35 |
Buxey | 61 | 48 | 62 | 63 | 0.63 | 212.11 | 61 | 61 | 0 | 347.67 | 3.17 |
Sawyer | 45 | 292 | 47 | 48 | 1.05 | 151.6 | 45 | 46.4 | 0.65 | 311.83 | 3.33 |
Gunther | 86 | 323 | 87 | 88 | 1.15 | 228.69 | 86 | 86.4 | 0.84 | 309.01 | 1.82 |
Large size | |||||||||||
Kilbridge | 114 | 548 | 114 | 114.7 | 0.48 | 328.21 | 114 | 114 | 0 | 517.89 | 0.61 |
Warnecke | N/A | 138 | 141 | 2.32 | 987.1 | 137 | 138.6 | 1.1 | 1 720.01 | 1.7 | |
Tong | N/A | 252 | 253.2 | 1.55 | 2 189.08 | 246 | 247.4 | 1.64 | 2 798.53 | 2.29 | |
Wee-Mag | N/A | 87 | 87.9 | 0.99 | 1 563.5 | 86 | 87.3 | 0.64 | 2 964.67 | 0.68 | |
Mukherje | N/A | 217 | 218.5 | 1.18 | 1 048.02 | 215 | 216.7 | 1.06 | 1 478.24 | 0.82 |
Results of benchmark instances with γ = 2
Name | LINGO | GA | HGA | Improvement /% | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
OCT | CPU/s | Min | Mean | SD | CPU/s | Min | Mean | SD | CPU/s | ||
Small size | |||||||||||
Mertens | 14 | 1 | 14 | 14 | 0 | 36.73 | 14 | 14 | 0 | 39.63 | 0 |
Bowman | 26 | 1 | 26 | 26 | 0 | 43.06 | 26 | 26 | 0 | 46.36 | 0 |
Jaeschke | 13 | 1 | 13 | 13 | 0 | 35.76 | 13 | 13 | 0 | 38.88 | 0 |
Mansoor | 53 | 1 | 53 | 53 | 0 | 38.77 | 53 | 53 | 0 | 39.34 | 0 |
Jackson | 15 | 1 | 15 | 15 | 0 | 45.53 | 15 | 15 | 0 | 73.21 | 0 |
Medium size | |||||||||||
Mitchell | 31 | 1 | 31 | 31 | 0 | 51.53 | 31 | 31 | 0 | 77.44 | 0 |
Rosizeg | 25 | 2 | 25 | 25 | 0 | 79.05 | 25 | 25 | 0 | 142.30 | 0 |
Buxey | 65 | 59 | 66 | 67.7 | 0.82 | 240.24 | 65 | 65.7 | 0.48 | 440.23 | 2.95 |
Sawyer | 48 | 2 094 | 49 | 51.1 | 1.2 | 158.70 | 48 | 48.6 | 0.84 | 312.23 | 4.89 |
Gunther | 88 | 2 778 | 88 | 90.2 | 1.4 | 244.35 | 88 | 88.5 | 0.97 | 370.34 | 1.88 |
Large size | |||||||||||
Kilbridge | 116 | 3 665 | 117 | 117 | 0 | 348.58 | 116 | 116.2 | 0.42 | 535.05 | 0.68 |
Warnecke | N/A | 143 | 144.7 | 1.34 | 1 035.84 | 140 | 142.2 | 1.2 | 1803.90 | 1.73 | |
Tong | N/A | 265 | 268.7 | 2.70 | 2 379.79 | 258 | 259.4 | 1.08 | 2 906.46 | 3.46 | |
Wee-Mag | N/A | 94 | 95.5 | 0.81 | 1 782.12 | 93 | 93.2 | 0.63 | 3 131.39 | 2.41 | |
Mukherje | N/A | 221 | 223.6 | 1.71 | 1 226.63 | 219 | 221.4 | 0.97 | 1 806.04 | 0.98 |
Results of benchmark instances with γ = 3
Name | LINGO | GA | HGA | Improvement/% | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
OCT | CPU/s | Min | Mean | SD | CPU/s | Min | Mean | SD | CPU/s | ||
Small size | |||||||||||
Mertens | 14 | 1 | 14 | 14 | 0 | 38.03 | 14 | 14 | 0 | 39.89 | 0 |
Bowman | 26 | 1 | 26 | 26 | 0 | 43.95 | 26 | 26 | 0 | 53.13 | 0 |
Jaeschke | 13 | 1 | 13 | 13 | 0 | 35.52 | 13 | 13 | 0 | 52.50 | 0 |
Mansoor | 53 | 1 | 53 | 53 | 0 | 31.05 | 53 | 53 | 0 | 37.30 | 0 |
Jackson | 16 | 1 | 16 | 16 | 0 | 46.41 | 16 | 16 | 0 | 72.58 | 0 |
Medium size | |||||||||||
Mitchell | 32 | 1 | 32 | 32 | 0 | 54.07 | 32 | 32 | 0 | 72.94 | 0 |
Rosizeg | 26 | 1 | 26 | 26 | 0 | 77.38 | 26 | 26 | 0 | 160.70 | 0 |
Buxey | 68 | 27 | 71 | 71.5 | 0.55 | 259.58 | 68 | 68.8 | 0.42 | 474.01 | 3.78 |
Sawyer | 49 | 1 384 | 51 | 51.7 | 1.17 | 176.04 | 49 | 50 | 0.47 | 359.62 | 3.29 |
Gunther | 90 | 1 452 | 90 | 91.5 | 1.43 | 281.98 | 90 | 90.7 | 0.95 | 399.67 | 0.87 |
Large size | |||||||||||
Kilbridge | 117 | 22 790 | 118 | 118.1 | 0.32 | 351.45 | 118 | 118 | 0 | 639.35 | 0.08 |
Warnecke | N/A | 145 | 147.8 | 1.66 | 1 061.91 | 143 | 144.2 | 0.63 | 1 832.84 | 2.44 | |
Tong | N/A | 271 | 272.67 | 1.65 | 2 573.45 | 268 | 269.2 | 1.55 | 3 313.65 | 1.27 | |
Wee-Mag | N/A | 101 | 103.1 | 0.74 | 1 798.79 | 99 | 100 | 0.72 | 3 224.32 | 3.01 | |
Mukherje | N/A | 227 | 228.3 | 0.95 | 1 308.91 | 224 | 225.4 | 0.92 | 1 833.76 | 1.27 |
The branch and bound algorithm embedded in the integer solver software LINGO is used to solve the counterpart of the nonlinear model in Sect. 2.3. For 15 test instances, Warnecke, Tong, Wee-Mag, and Mukherje cannot be solved optimally within 3 days calculation by LINGO.
Each instance is executed ten times using the GA. For comparison, parameters adopted in the GA are set the same values as in the HGA. For the small size instances, both the HGA and GA converge to the same optimal solutions found by the integer solver. For the medium size instances, the HGA gets better solutions for four instances. For the large-size instances, the HGA gains better solutions for all five instances. From the results, the HGA outperforms the GA by 83% for the number of the best solutions and improves the average solutions by 1.13%.
To further compare HGA and GA, a statistical test is carried out. The computational results are compared with each other in terms of Gap. Gap is the percentage difference between the optimal cycle time (“OCT” column in Tables 11–13) and the best cycle time (“Min” column in Tables 11–13) and is calculated as Gap = (Min − OCT)/OCT. The lower gap value means a better performance of the algorithm. With the HGA and GA converging to the same optimal solutions for the small size instances and only one instance having the OCT solution among the large size instances, the statistical test is implemented for the medium size instances.
Kruskal-Wallis test for Gap
Algorithm | N | Median | Mean rank | Z value |
---|---|---|---|---|
GA | 150 | 0.022 | 178.2 | 5.53 |
HGA | 150 | 0 | 122.8 | − 5.53 |
Overall | 300 | 150.5 | ||
H = 30.58DF = 1P = 0 (Not adjusted for ties) | ||||
H = 35.94DF = 1P = 0 (Adjusted for ties) |
4.3 Illustrative example
Task times of problem Gunther-35
Tasks | Model 1 | Model 2 | Model 3 | Tasks | Model 1 | Model 2 | Model 3 |
---|---|---|---|---|---|---|---|
1 | 29 | 29 | 29 | 19 | 17 | 21 | 20 |
2 | 3 | 3 | 3 | 20 | 17 | 21 | 20 |
3 | 5 | 5 | 6 | 21 | 10 | 2 | 2 |
4 | 20 | 24 | 22 | 22 | 10 | 10 | 10 |
5 | 10 | 2 | 2 | 23 | 20 | 12 | 10 |
6 | 10 | 18 | 19 | 24 | 20 | 26 | 28 |
7 | 2 | 2 | 2 | 25 | 10 | 0 | 0 |
8 | 9 | 1 | 0 | 26 | 4 | 6 | 7 |
9 | 20 | 24 | 26 | 27 | 4 | 6 | 7 |
10 | 35 | 25 | 20 | 28 | 40 | 40 | 40 |
11 | 23 | 23 | 25 | 29 | 4 | 0 | 0 |
12 | 35 | 25 | 20 | 30 | 3 | 7 | 8 |
13 | 20 | 26 | 25 | 31 | 3 | 7 | 8 |
14 | 4 | 0 | 0 | 32 | 1 | 1 | 1 |
15 | 18 | 20 | 20 | 33 | 38 | 42 | 45 |
16 | 28 | 30 | 32 | 34 | 2 | 2 | 2 |
17 | 0 | 4 | 5 | 35 | 2 | 2 | 2 |
18 | 0 | 4 | 4 |
5 Conclusions
Mixed-model assembly lines are widely used in industries at present. With its practical benefits, the consideration of uncertain task times in the mixed-model assembly balancing problem is important. In this paper, MMALBP-II with interval uncertainty is considered and the robust optimization method is used. The robust model of this problem and its counterpart are formulated. The proposed models are NP-hard. Therefore, an efficient HGA is developed to overcome the computational difficulties in solving large-size problems. Experimental results show that the proposed algorithm is effective and efficient to find solutions for large-size problems. It is also found that the production efficiency will be sacrificed to hedge against uncertainty. For future research, the mixed-model assembly line balancing and sequencing with interval uncertainty could be considered simultaneously.
Acknowledgements
This work is supported by the National Science and Technology Major Project of Ministry of Science and Technology of China (Grant No. 2013ZX04012-071) and the Shanghai Municipal Science and Technology Commission (Grant No. 15111105500). The authors also want to express their gratitude to the reviewers. Their suggestions have improved this work.
Open AccessThis article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.