2.1. Problem Description
Proper disassembly of WEEE items consists of extracting the components and sub-components in a way that they can be reused, recycled, or discarded safely and soundly. Given the complexities involved in the disassembly processes, the best operational plan keeps the overall disassembly costs, which comprises the time, labor, and tooling expenses, at their lowest while ensuring the effectiveness of the operations. Notably, considering the degree of task correlation imposes a direct influence on the disassembly costs, i.e., changing the execution time and intangible operational aspects that may change depending on the type of correlation. Let represent a graph with the vertices, V, showing the state of the elements and the arcs, A, signifying the disassembly tasks. The state transition from one layer to another happens when a disassembly task takes place. In this definition, the source vertex of G denotes a complete item, and the last layer vertices specify the components and subcomponents resulting from the disassembly process. Finally, a particular task can be one of the alternatives in different stages of the disassembly process, and the associated cycle time is assumed to be deterministic with negligible variation across the stages.
The tasks can be either correlated or unrelated [
47]. Maximizing the degree of task correlation in the objective function of the optimization problem helps improve the efficiency of disassembly operations by sequencing similar tasks together. Informed positioning of the outlier (unrelated) tasks minimizes their impairing effect on the performance of other tasks. The number of connecting lines between the disassembly tasks in the relationship diagram is used for defining the degree of relevance,
; the more the connections that exist between two tasks, the higher will be the overall correlation degree. Overall, the goal is to find the best set of disassembly tasks (i.e., separating two components or one component from the frame) and assignments to maximize the degree of task correlation and minimize the number of workstations.
2.3. Solution Method
DLBP and its derivatives are
NP-hard and cannot be solved using exact methods when dealing with moderately and highly complex products [
49]. Metaheuristics are viable options for finding (near-) optimum solutions to the DLBPs efficiently. Nature-inspired metaheuristics have been widely applied for solving combinatorial optimization problems [
50]. The proven track record of GAs driven by strong global search capabilities [
51] has encouraged us to adapt it for the disassembly line balancing context. The computational procedure of the Genetic Algorithm (GA) is inspired by the idea that the fittest individuals are more likely to make it through the next generations; this procedure is based on an evolutionary process that seeks to improve the initial solutions through crossover, mutation operators, and replacing the weak solutions with stronger offspring to form the new generations.
Despite its merits, the classic GA is susceptible to early convergence and getting trapped in local optimality. This shortcoming is alleviated in the modified algorithm, AGA, by adjusting the crossover and mutation rates within a two-phase procedure. Phase I comprises the following steps:
- (1)
Select a feasible initial disassembly path;
- (2)
Encode its chromosome considering the priority rule method;
- (3)
Initialize the disassembly groups.
Phase II consists of seven steps to find the (near-) optimum operational setting:
- (1)
Decoding procedure;
- (2)
Calculate the fitness value of the resulting solution;
- (3)
Selecting the fittest portion of the population for mating;
- (4)
Apply the Roulette Wheel Selection mechanism to select the best parent solutions;
- (5)
Apply the crossover mechanism for generating offspring;
- (6)
Apply the mutation mechanism on random offspring;
- (7)
Check for the stopping condition.
The computational steps under each phase are detailed below.
Phase I. The first phase consists of selecting an initial disassembly path from the set alternatives that disassemble the product into the core components. The “OR” condition is used to define the situations where there are alternative tasks to a particular step of the disassembly procedure. This situation is distinguished with an arc showing that the operator should select one of the several disassembly directions. Alternatively, arrows without a connecting arc specify the “AND” condition where the tasks in a certain disassembly step should be executed simultaneously. The exemplary disassembly diagram shown in
Figure 1 is used to illustrate how the initial path should be chosen. In this diagram, the artificial node, A1, represents the commence of disassembly operations. An OR condition follows, showing that the operator should decide to dismantle B1, B2, or B3; artificial nodes follow the selected node. If B1 is selected, the subsequent artificial nodes A2 and A3 come next because the AND condition urges that both respective tasks should be executed. Following a similar approach for the rest of the path, there are various alternatives to make a complete solution, some of which are
,
,
, and
.
The selected disassembly path should be then allocated to the workstations adhering to the precedence rules and the cycle time constraints. The encoding system of GAs depends on the type of the decision variables, which are overall categorized into binary, real-number encoding, integer, or literal permutation and the general data structure encoding [
52]. Given the nature of the problem and considering the precedent relation rules, an integer permutation structure is used to encode the sequence arrays to show the order of disassembly tasks and their allocation to the workstations. The sorting procedure consists of the following steps:
Step 1. Create an empty sequence array.
Step 2. Select a task that has no predecessors or a task that has all its AND predecessors and at least one of its OR predecessors already in the sequence array. Then, add the selected task into the array sequence; this is to ensure that the precedence constraint is not violated.
Step 3. Cross the assigned disassembly task out from the disassembly diagram and return to the second step; continue selecting the uncrossed tasks that follow the current partial solution until the disassembly path list is complete.
Given the illustrative example in
Figure 1, the process of preparing the sequence arrays is as follows. First, a path list from the disassembly diagram is selected, e.g., π = [1,4,5,9,10,13,14,17,21,22]. Next, random numbers are generated for every task; that is, π = [1:0.35,4:0.97,5:0.95,9:0.49,10:0.80,13:0.25,14:0.76,17:0.91,21:0.42,22:0.15]. In this example, the disassembly task B1 is the first to assign to the sequence array,
, because B1 does not have any precedents and is not constrained by a random value rule for OR conditions. B1 is now crossed out from the disassembly path list. Given B1 as the precedent in the sequence array and the resulting AND condition, the next step is to proceed with B4 and B5 because they are associated with greater random values in
compared with B7 and B6, respectively. B6 and B7 are now crossed out from the disassembly path. This procedure continues until a complete sequence array has resulted.
Phase II. Given the resulting sequence array from Phase I, the optimization algorithm, AGA searches for the (near-) optimum solution. The computational steps are described below.
Step 1. Decoding procedure.
Step 1.1. Determine whether the sequence array is empty; an empty array demonstrates that the disassembly task allocation is completed, and the algorithm can proceed to step 2; otherwise, proceed to Step 1.2.
Step 1.2. Calculate the overall cycle time of the existing sequence array; if it does not exceed the cycle time threshold, proceed to Step 1.3; otherwise, assign the new task to the next workstation. Create a new workstation and update the total number of workstations if all the existing workstations are fully occupied.
Step 1.3. Assign the disassembly task in the sequence array to the workstations considering the task sequence and cycle time constraints.
Step 1.4. Update the sequence array by removing the assigned task from the list.
Step 2. Calculate the fitness value of the resulting solution, which is the difference between the number of workstations and the overall correlation between the tasks. Since two objectives have different dimensions, the normalized values are used as the fitness value; the fitness value is then converted to the real values after the end of the last iteration.
Step 3. To improve the solution quality across generations, the fittest parents should be selected for the mating process. For this purpose, N/2 of all individuals with the best performance, objective function, values are kept, and the rest will be replaced by the offspring.
Step 4. Apply the Roulette Wheel Selection mechanism to select parents from the resulting set of N/2 individuals. Given the individual fitness values, calculate the overall value using . Normalize the individual’s fitness value by dividing it by ; sort the population on an ascending basis based on the normalized values, where the last value in the list is associated with the individual with the best performance. Generate random numbers using a uniform distribution, . Select the ith solution if .
Step 5. Crossover and mutation are GA’s major operators for exploring the solution space by generating new solutions, offspring. The decision on the crossover type depends on the nature of the problem and the encoding approach (see [
53]). Double-point crossover is applied to generate feasible sequence arrays from the selected parents in
Step 4. After applying the crossover, the resulting offspring is checked for feasibility. If the new solution is not feasible, discard it. Return to
Step 4, if there are not enough (
N/2) offspring to fill the population. Otherwise, proceed to
Step 6.
Step 6. A total of should be randomly selected from the set of offspring to be mutated. A swap mutation operator is applied to some of the offspring resulting from Step 5 depending on the mutation rate. Overall, the mutation increases the diversity of the individuals and reduces the odds of getting trapped in local optimality. Given that the population differs across generations, AGA adjusts the crossover (c_rate) and mutation (m_rate) rates to maintain the diversity of the population; the average fitness value of the current generation individuals determines this change. That is, the crossover rate increases according to the crossover rate interval (c_interval), and the mutation rate decreases according to the mutation rate interval (m_interval).
Step 7. Check for the stopping condition; terminate the algorithm if the condition is met; otherwise, return to
Step 2. The number of generations (
gen) is decided as the termination condition [
54].