# Disassembly Line Balancing Using Recursive Optimization in Presence of Task-Failure

Rakshit Kumar Singh, Amit Raj Singh, Ravindra Kumar Yadav

► To cite this version:

Rakshit Kumar Singh, Amit Raj Singh, Ravindra Kumar Yadav. Disassembly Line Balancing Using Recursive Optimization in Presence of Task-Failure. IFIP International Conference on Advances in Production Management Systems (APMS), Sep 2021, Nantes, France. pp.430-440, 10.1007/978-3-030-85906-0_48. hal-04022102

HAL Id: hal-04022102

https://inria.hal.science/hal-04022102

Submitted on 9 Mar 2023

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
<figure><img src="image_2.png" /></figure>

ifip

International Federation for Information Processing

This document is the original author manuscript of a paper submitted to an IFIP
conference proceedings or other IFIP publication by Springer Nature. As such, there
may be some differences in the official published version of the paper. Such
differences, if any, are usually due to reformatting during preparation for publication or
minor corrections made by the author(s) during final proofreading of the publication
manuscript.
# Disassembly Line Balancing using Recursive Optimization in presence of Task-Failure

Rakshit Kumar Singh¹[0000-0002-1869-8772], A. R. Singh²[0000-0003-2112-5948], Ravindra Kumar Yadav³

¹,²,³ Department of Mechanical Engineering, National Institute of Technology Raipur, G.E.
Road, Raipur, Chhattisgarh, India - 492010

¹rakshit3994@gmail.com

²amitrajsingh1@gmail.com

**Abstract.** Disassembly lines have to face task-failure situations due to the variability in quality of incoming product. Such failure violates the precedence relationship for the remaining task at downstream stations. Therefore, task failure requires corrective measure to improve the profitability of disassembly line. In this paper, a recursive optimization approach has been proposed to improve the profitability of disassembly lines, which takes corrective measure to determine optimal sequence of tasks. For this purpose, Teaching Learning Based Optimization (TLBO) algorithm has been used to find optimal sequences before and after task failure. To reduce the computational time required during recursion, the proposed solution approach is equipped with memoized list for finding corrective measure. A numerical illustration has been used to demonstrate the applicability of proposed solution approach which is capable to handle high variability in quality of incoming products.

**Keywords:** Disassembly, Task failure, probability-based stacking, Line balancing.

## 1 Introduction

Product recovery aims to retrieve parts and components from old or outdated products by disassembling products facing their end-of-life cycle into its constituent parts and components [1]. The disassembled parts face three end-of-life choices: recycling, remanufacturing and disposal. These end-of-life choices are made based on different objectives such as market demand for certain component, extraction of hazardous parts, retrieving parts and storing them in inventory for future use [2]. Thus, one decisive component of product recovery is disassembly which makes it crucial to perform disassembly in a way that meets various economic and environmental objectives for making product recovery sustainable. There are various settings of resources to perform disassembly such as single workstation (for high flexibility and low processing rate), disassembly cell (for moderate throughput and flexibility), and disassembly lines (for high disassembly rate and low flexibility).
Disassembly lines are very desirable in scenarios requiring high production rate, they also have certain associated benefits such as economies of scale, division of labor etc. [3]. The sequence in which various disassembly tasks are to be performed is critical to optimize the utilization of disassembly line resources, this problem is referred to as Disassembly Line Balancing Problem (DLBP) in the literature. The sequence of task assignment for line balancing can be obtained using exact solution approaches such as linear programming [4], Mixed Integer programming [5], second order cone programming [6]. DLBP belongs to NP-hard complexity of combinatorial optimization problem and, as the problem size increases it becomes time consuming to solve it using exact solution approaches [7]. Several authors have also made use of heuristics and meta-heuristics for solving DLBP under different scenarios such as ant colony optimization [8], simulated annealing [9], genetic algorithm [10], and particle fish swarm algorithm [11].

Although DLBP is similar to Assembly Line Balancing Problem (ALBP), DLBP has some additional complications such as operational considerations arising out of variations in incoming quality of the product [1]. Due to variability in quality of incoming product it might not be possible to perform some task on a given core (the product being disassembled). This situation is referred to as task-failure in DLBP literature and it can prevent the execution of other tasks on downstream workstations due to precedence relations of failed tasks and its successors. This variation in incoming quality of the product makes optimizing the utilization of disassembly line resources even more complicated. The first solution attempt in task-failure environment was provided by Gungor and Gupta [1]. They used weighted state network to find optimal disassembly sequence using Dijkstra's shortest path algorithm, the model was generated with the assumption of complete disassembly if possible, and the probability of task failures were assumed to be known and deterministic. The only other study in presence of task failure was done by [12], in their work authors attempted to improve the profitability of a disassembly line under task failure environment by introducing reactive rebalancing whenever a task failed. This reactive rebalancing was done on a sequence generated using predictive balancing, under predictive balancing solution approach a solution was found for given number of workstations to find optimal profit without considering task failure. Then the tasks in optimal sequence were failed one by one and a new optimal sequence was generated onward from the failed task under reactive line balancing scheme by relaxing cycle time constraint for the downstream workstations. Relaxing cycle time to generate reactive balance violates the necessary condition for paced line and introduces additional inefficiency in line resource utilization. Since the reactive balancing is done for only one optimal sequence obtained by predictive balance, it's a possibility that the solution obtained might be inferior to a solution having lower objective values in predictive balance and yet produce better overall results after task failure.

Considering the lacunae of the disassembly setting and solution strategy mentioned above, this article aims to provide a novel solution approach for optimizing the DLBP under task failure environment. For this purpose, Teaching Learning Based optimization (TLBO) meta-heuristic algorithm is utilized in recursive fashion to generate optimal disassembly sequence without violating the cycle time constraint. To reduce the
time for reactive balancing during recursion, memoization of optimal reactive sequence is incorporated thereby, reducing the overall execution time of the algorithm.

The remaining paper is organized as follows: In section 2 notations and problem definition for DLBP under task failure are provided. In section 3, the proposed algorithm utilizing TLBO for optimizing DLBP under task failure environment is described. Numerical illustration along with results of computational experiments are given in section 4, finally the conclusion and future scope are provided in section 5.

## 2 Problem description/formulation

The focus of this work is on determining disassembly sequence of tasks for a single product to maximize profit on a straight line, and complete disassembly is targeted. However, partial disassembly is allowed only after a task in a given disassembly sequence has failed. It is assumed that the incoming product supply is infinite, and parts released upon performing any given task in each product are known, the retrieved components are accepted in their current condition by demand source, only one product is disassembled on each parallel line, operators are multi-skilled. Other disassembly parameters such as task time, revenue generated are known and deterministic. The probabilities of task failure are known and deterministic. For failed tasks, task completion time and costs are fully incurred. Every station has a buffer space meant to store subassemblies (to facilitate stacking of work stations). Partial disassembly is allowed (by adding dummy task) only after a task fails in the disassembly sequence.

The notations for formulating DLBP under task failure and TLBO are as follows:

<table><tr><td>n</td><td>Total number of tasks of product.</td></tr><tr><td>a</td><td>Total number of possible subassemblies.</td></tr><tr><td>i</td><td>Task index.</td></tr><tr><td>prt<sub>i</sub></td><td>List of parts released by task i.</td></tr><tr><td>CT</td><td>Cycle time.</td></tr><tr><td>cost<sub>i</sub></td><td>Costs of performing task i.</td></tr><tr><td>rev<sub>j</sub></td><td>Revenue generated by releasing part j.</td></tr><tr><td>TS<sub>k</sub></td><td>Tasks that can be performed on subassembly k.</td></tr><tr><td>ST<sub>i</sub></td><td>List of subassemblies activated upon performing task i.</td></tr><tr><td>t<sub>i</sub></td><td>Time required to perform task i.</td></tr><tr><td>scc</td><td>Station cost coefficient</td></tr><tr><td>pf<sub>i</sub></td><td>Probability of failure of task i.</td></tr><tr><td>`ca</td><td>Set of currently activated subassembly for a solution string.</td></tr><tr><td>cdt</td><td>Updated set of candidate tasks based on precedence relationship and ca.</td></tr><tr><td>gen</td><td>Current iteration number of algorithm.</td></tr><tr><td>m</td><td>Population size for TLBO (common to main and failed optimization stages).</td></tr><tr><td>c<sub>t</sub></td><td>Teaching coefficient for teaching phase.</td></tr><tr><td>XC<sub>t</sub></td><td>Continuous decision vector: |XC| = m, |XC<sub>t</sub>| = n.</td></tr><tr><td>XD<sub>t</sub></td><td>Discrete sequences of tasks generated using XC.</td></tr><tr><td>XCF<sub>t,k</sub></td><td>Continuous decision vector generated after sequentially failing tasks in</td></tr></table>
<table><tr><td>XD</td><td>XCF<sub>l,k</sub> = n + 1 (dummy task included), &forall;l &isin; (1, m), &forall;k &isin; (1, |XD<sub>l</sub>|)</td></tr><tr><td>XDFp<sub>l,k</sub></td><td>List of completed tasks before a task failed (includes the failed task).</td></tr><tr><td>XDFa<sub>l,k</sub></td><td>Sequence of tasks performable corresponding to failed sequence XDFp<sub>l,k</sub></td></tr><tr><td>cdf*</td><td>Optimal sequence of tasks corresponding to XDFp<sub>l,k</sub>.</td></tr><tr><td>ML</td><td>Memoization list containing cdf* found corresponding to every XDFp<sub>l,k</sub></td></tr><tr><td>eval</td><td>List containing evaluated values for every sequence in XD</td></tr><tr><td>evalf</td><td>List containing evaluated values for every sequence XDFa<sub>l,k</sub></td></tr><tr><td>P<sub>XDFa</sub></td><td>Probability of completing sequence XDFa<sub>l,k</sub></td></tr><tr><td>P<sub>CXDFa</sub></td><td>Conditional probability of completing sequence XDFa<sub>l,k</sub> given that one of the sequence in XDFa<sub>l,k</sub>, &forall;k &isin; (1, |XD<sub>l</sub>|) will happen.</td></tr><tr><td>WS<sub>l</sub></td><td>Total number of work stations after probability-based stacking (&forall;l &isin; (1, m)).</td></tr><tr><td>wSC<sub>l,w</sub></td><td>List containing tasks assigned to station w in disassembly sequence XD<sub>l</sub></td></tr><tr><td>T<sub>f</sub></td><td>Task index of failed task.</td></tr></table>

To provide visual representation for precedence relationship, diagrams or graphs are used in DLBP. The two main types of diagrams used in the literature are part-based precedence (PPD) and task-based precedence diagram (TPD). The part-based precedence diagram provides parts' order based on their immediate predecessor [13] while TPD represents the order of tasks based on their immediate predecessors. Executing any given task in a TPD results in removal of one or more subassemblies or parts. By using either TPD or PPD multiple disassembly sequences can be generated. However, TPD representation is more clear and easier to use for generating solution strings, for this reason we used Transformed AND/OR graph (TAOG) based TPD representation developed by Koç et al., [14]. In TAOG representation the subassemblies are represented by artificial nodes ($A_i$) and tasks are represented using normal nodes ($B_i$). These nodes are connected using two types of arcs, for any given node only one predecessor and one successor should be selected for execution. The arcs in TAOG represent two types of relationships, the arcs connected by a semicircle indicate an OR type relationship and the normal arcs indicate a normal type relationship.

## 3 Recursive optimization using TLBO

Most optimization algorithms have some algorithm-specific parameters, the improper tuning of these parameters may increase the computation time or yield a local optimal solution. Considering this fact, we make use of TLBO proposed by Rao et al. [15] as it does not need any algorithm-specific parameters apart from common control parameters like number of generations and population size. The pseudocode for the TLBO algorithm is provided below where the variable 'r' is a real number generated randomly in the range (0,1):

**Algorithm 1.** Procedure of TLBO algorithm

Input: eval, m, max_gen, lb, lbc, ubc
Initialize random population: XC = [[ ] for j in range (m)]
i=0

while t < max_gen :

for i = 1 to m :

choose XC_best based on eval

determine XC_mean

XC_{i\_new} = XC_i + r(XC_{best} - c_t XC_{mean})

Evaluate XC_new

If eval(XC_new) is better than eval(XC_i)

Replace XC_i with XC_new

Randomly choose a solution XC_r

If eval(XC_i) < eval(XC_r)

XC_{i\_new} = XC_i + r(XC_i - XC_r)

else:

XC_{i\_new} = XC_i - r(XC_i - XC_r)

Evaluate XC_{i\_new}

If eval(XC_{i\_new}) > eval(XC_i)

Replace XC_i with XC_{i\_new}

t += 1

output: XC_best, eval(XC_best)

The TLBO is inspired by the teaching-learning dynamics and is based on the influen-
tial effect of teacher on the learning output of a class. The algorithm involves two
modes of evolution: first mode is through teacher and is known as teacher phase and
second mode is through learners interacting with other learners and is therefore
termed as learner phase. In TLBO the population consists of a group of learners and
different design variables are analogous to different courses being offered to learners.
The fitness value is analogous to the performance of learners in various courses. After
initialization, best solution in the population is assigned the role of teacher. After
determining the teacher, teaching and learning phases are executed for each solution
string. At the end of each iteration, average performance and the teacher are updated.

TLBO for disassembly operates on real coded continuous decision vector XC_l of
length equal to number of tasks in the precedence diagram. Based on sorted priority of
continuous representation a discrete set of tasks XD_l is generated in accordance with
precedence constraints. The tasks in XD_l are then assigned sequentially to work-
stations without violating cycle time constraint. If the cycle time constraint is violat-
ed, a new workstation is opened and the task is assigned to it. For n part problem the
random numbers needed for generating a continuous representation for a partial se-
quence are n + 1. The position of these numbers is associated with the task index and
the n+1 position is used for a dummy task, that can be assigned at any sequence with
no resource requirement for a given product once a task in the given sequence fails.
Once this dummy task for a product is assigned no other tasks can be performed on
that product. The list of candidate tasks (cdt) is generated based on precedence con-
straint and the task with largest associated real number is assigned. This procedure is
repeated until task n + 1 is assigned or until there are no more tasks in cdt.
Once XD for entire population is generated the sequences in XD are evaluated. Then,
best performing solution string (XC_best) in XD is determined, for each member of
the population teaching and learning phases are performed as stated in algorithm 1.

Once XD for entire population is generated the sequences in XD are evaluated. Then,
best performing solution string (XC_best) in XD is determined, for each member of
the population teaching and learning phases are performed as stated in algorithm 1.
After completion of teaching and learning phase of a population member the new
solution is evaluated and accepted or rejected based on greedy selection and the best
solution is updated. After all members of population go through teaching and learning
phase, next iteration is started. The evaluation of a disassembly sequence in XD re-
quire additional steps due to inclusion of task failure. The flow diagram of the pro-
posed recursive algorithm incorporates these steps as shown in figure 1.

<figure><img src="image_3.png" /><figcaption>Fig. 1. Flowchart of recursive solution approach using memoization.</figcaption></figure>

A sequence in XD is evaluated by performing the following steps,

1) The tasks of sequence $XD_l$ are failed sequentially starting from the last task and then we start by searching optimal sequence in memoized list (ML) for each
failed sequence (XDFp). If XDFp does not exist in ML then a new optimal sequence (xdf*) is obtained using TLBO corresponding to XDFp and the new found optimal solution corresponding to XDFp is stored in ML.

2) For a given sequence in $XD_l$ once all tasks are failed the resulting sequences (XDFa) are assigned to work stations based on task based-assignment strategy, the probability of occurrence of each sequence (eqn. 1) is calculated along with the associated profit of each sequence (eqn. 2).

$$P_{XDFa_{l,k}} = \prod_{i, i \neq T_f} (1 - p f_{XDFa_{l,k,i}}) * p f_{T_f}, \forall i \in XDFa_{l,k} \quad (1)$$

$$eval_f = \sum_i rev_{i,i \neq T_f} - (scc * CT * ws + \sum_i cost_i), \forall i \in XDFa_{l,k} \quad (2)$$

3) Find the conditional probability of sequence k happening given that one of the sequences resulting from parent sequence l happens using equation 3. In other words, if a parent sequence l (sequence in which no task fails) is chosen for execution then the probability of having to perform a given resulting sequences (from task failure) is its conditional probability.

$$P_{cXDF_{l,k}} = \frac{p_{XDF_{l,k}}}{\sum_k p_{XDF_{l,k}}}, k \in (1, |XD_l|) \quad (3)$$

4) Determine the number of work stations required for a given sequence l by performing following steps:

a) Determine probabilities of requiring different number of stations (using equation 4) based on number of workstations required for each sequence in XDFa (corresponding to $XD_l$) and their associated conditional probabilities. This

$$P_{ws_q,l} = \sum_{k,k \in (1, |XD_l|)} \begin{cases} P_{cXDFa_{l,k}}, & \text{if } ws_{cXDFa_{l,k}} \ge q \\ 0, & \text{else} \end{cases}, \forall q \in (1, ws_{ub}) \quad (4)$$

probability represents the chances of needing $q$ or more stations for accommodating all failed sequences resulting from main sequence $l$.

b) Set upper bound of number of work stations for any sequence in $XD_l$ as the maximum number of workstations required amongst all corresponding failed sequences. For any sequence $XD_l$, the probabilities of requiring $q$ number of workstations are calculated for corresponding failed sequences of $XD_l$.

c) Perform stacking once the probabilities of requiring different number of stations is calculated. For this, if the sum of $P_{ws_{ub}}$ and $P_{ws_{ub-1}}$ is less than 1 then these stations are stacked and upper bound on station is set to upper bound minus one. If the stations are stacked then the probability of needing $q-1$ stations is updated as the sum of probabilities $P_{ws_q}$ and $P_{ws_{q-1}}$.

d) Perform stacking of workstations for a sequence $XD_l$ iteratively until the probability of requiring last open work station exceeds 1.

5) Once stacking terminates, evaluate the fitness of $XD_l$ as per equation 5.

$$eval_l = \sum_{k \in (1, |XD_l|)} (P_{XDFa_{l,k}} * \sum_{\forall i \in XDFa_{l,k}} (rev_{i,i \neq T_f} - cost_i)) - scc * WS_l \quad (5)$$
The first term in equation 5 represents the total profit without considering the cost of opening a workstation, the next term determines the station opening cost based on total number of stations required after stacking.

## 4 Numerical Illustration

The application of the proposed solution approach is demonstrated by using an example of an automatic pencil for balancing disassembly line in presence of task failure. The joint precedence diagram of the automatic pencil along with task times and task costs is provided in figure 2.

<figure><img src="image_4.png" /><figcaption>Fig. 2. precedence TAOG representation of automatic pencil example.</figcaption></figure>

The recursive TLBO algorithm was coded in python and was run on Intel i5 4.2 GHz processor with 6-GB RAM. The input data for the problem instance such as revenues for released parts and probabilities of task failure are generated randomly. The remaining data for the problem instance is provided in Table 1. The task failure rates were generated in the range (0,0.1) and scc was assumed to be 7, the problem is solved for a cycle time of 30 seconds.

<table><caption>Table 1. Problem data for automatic pencil example</caption><thead><tr><th>Part index (j)</th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th><th>10</th><th>11</th></tr></thead><tbody><tr><th>Task releasing part j</th><td>22,28,<br>29,30,<br>34</td><td>5,17,<br>19,3</td><td>2,6,22,<br>24,27,<br>31</td><td>10,15,<br>20</td><td>36</td><td>37</td><td>37</td><td>11,<br>14</td><td>13,<br>14</td><td>12,<br>13</td><td>4,6,7,21,<br>23,35</td></tr><tr><th>Revenue</th><td>580</td><td>470</td><td>510</td><td>46</td><td>47</td><td>52</td><td>40</td><td>54</td><td>54</td><td>43</td><td>560</td></tr></tbody></table>

The optimal sequence and resulting optimal sequences due to failed tasks are given in Figure 3. The expected profit by the optimal sequence is 1379.61. The optimal sequence comprises of five workstations after stacking. The average execution time for finding the optimal disassembly sequence was recorded to be 198 seconds over 30 different runs for $m = 20$ and termination condition set as 100 iterations for TLBO.
<figure><img src="image_5.png" /><figcaption>Fig. 3. Optimal sequence and corresponding optimal sequences for failed tasks.</figcaption></figure>

This execution time is significantly higher than the time consumed by reactive balancing strategy, but unlike reactive balancing the computation for finding optimal sequence is not performed every time a task fails in real time, instead all the calculations are performed only once and a solution sequence is generated for every scenario (in case of task-failure) without violating cycle time constraint.

## 5 Conclusion and future scope

In this paper, a recursive TLBO solution approach is developed to find a disassembly solution for optimizing expected profit, without violating the cycle time constraint as a reaction to task failure. To prevent the violation of cycle time constraint in event of a task failure, the number of workstations were determined for every sequence and then probability-based stacking of workstations was performed to determine number of workstations needed (which was required for expected profit evaluation). To reduce the time consumption of the recursive TLBO, memoization strategy was adopted and optimal sequences resulting from a failed task of parent sequence were stored and called whenever needed further down the iterative process. The proposed model was illustrated using an example of disassembly of automatic pencil. The result indicates that the proposed algorithm is able to find a near optimal solution within reasonable amount of time (average execution time of 3 min 18 seconds for thirty runs). As a future research direction, the proposed algorithm can be tested on a wide range of data set under different task failure rates and the effect of proposed solution strategy can be compared with that of a system in which predictive and reactive balancing are done separately. As another possible extension, the proposed solution approach can be tested under different line settings (such as parallel lines) to dampen the effect of uncertainty in quality of incoming product. Further, to reduce the problem complexi-
ty, only single task-failure was considered. Thus, for a more comprehensive analysis
multiple task-failure setting can be studied.

References

1. A. Güngör and S. M. Gupta, “A solution approach to the disassembly line balancing problem in the presence of task failures,” *Int. J. Prod. Res.*, vol. 39, no. 7, pp. 1427–1467, 2001, doi: 10.1080/00207540110052157.

2. A. Gungor and S. M. Gupta, “Issues in environmentally conscious manufacturing and product recovery: A survey,” *Comput. Ind. Eng.*, vol. 36, no. 4, pp. 811–853, 1999, doi: 10.1016/S0360-8352(99)00167-9.

3. S. K. Das and R. Caudill, “The design of high volume disassembly lines,” in *Demanufacturing of Electronic Equipment for Reuse and Recycling Information Exchange Meeting Archives*, 1999, pp. 25–26.

4. A. J. D. Lambert, “Linear programming in disassembly/clustering sequence generation,” *Comput. Ind. Eng.*, vol. 36, no. 4, pp. 723–738, 1999, doi: 10.1016/S0360-8352(99)00162-X.

5. F. T. Altekin, Z. P. Bayındır, and V. Gümüşkaya, “Remedial actions for disassembly lines with stochastic task times,” *Comput. Ind. Eng.*, vol. 99, pp. 78–96, 2016, doi: 10.1016/j.cie.2016.06.027.

6. M. L. Bentaha, O. Battaïa, A. Dolgui, and S. J. Hu, “Second order conic approximation for disassembly line design with joint probabilistic constraints,” *Eur. J. Oper. Res.*, vol. 247, no. 3, pp. 957–967, 2015, doi: 10.1016/j.ejor.2015.06.019.

7. Gupta, S.M., & Lambert, A.J.D., “Disassembly Line Balancing,” *Environment Conscious Manufacturing (1st ed.).* CRC Press, 2007, doi: 10.1201/9781420018790.

8. C. B. Kalayci and S. M. Gupta, “Ant colony optimization for sequence-dependent disassembly line balancing problem,” *J. Manuf. Technol. Manag.*, vol. 24, no. 3, pp. 413–427, 2013, doi: 10.1108/17410381311318909.

9. C. B. Kalayci and S. M. Gupta, “Simulated annealing algorithm for solving sequence-dependent disassembly line balancing problem”, vol. 46, no. 9. IFAC, 2013.

10. M. Seidi and S. Saghari, “The balancing of disassembly line of automobile engine using Genetic Algorithm (GA) in fuzzy environment,” *Ind. Eng. Manag. Syst.*, vol. 15, no. 4, pp. 364–373, 2016, doi: 10.7232/iems.2016.15.4.364.

11. Z. Zhang, K. Wang, L. Zhu, and Y. Wang, “A Pareto improved artificial fish swarm algorithm for solving a multi-objective fuzzy disassembly line balancing problem,” *Expert Syst. Appl.*, vol. 86, pp. 1339–1351, 2017, doi: 10.1016/j.eswa.2017.05.053.

12. F. T. Altekin and C. Akkan, “Task-failure-driven rebalancing of disassembly lines,” *Int. J. Prod. Res.*, vol. 50, no. 18, pp. 4955–4976, 2012, doi: 10.1080/00207543.2011.616915.

13. S. M. McGovern and S. M. Gupta, *Disassembly Line: Balancing and Modeling*. McGraw-Hill Education, 2011.

14. A. Koc, I. Sabuncuoglu, and E. Erel, “Two exact formulations for disassembly line balancing problems with task precedence diagram construction using an AND/OR graph,” *IIE Trans. (Institute Ind. Eng.*, vol. 41, no. 10, pp. 866–881, 2009, doi: 10.1080/07408170802510390.

15. R. V Rao, V. J. Savsani, and D. P. Vakharia, “Teaching–learning-based optimization: A novel method for constrained mechanical design optimization problems,” *Comput. Des.*, vol. 43, no. 3, pp. 303–315, 2011, doi: https://doi.org/10.1016/j.cad.2010.12.015.