• No se han encontrado resultados

Pero ¿qué es lo que trajo de nuevo la pandemia?

10.1. Introduction

River Formation Dynamics (RFD) approach is designed by Rabanal et al. (2007) as an alternative to ACO approach. RFD can be seen as a gradient version of ACO. It is a recent swarm based metaheuristic optimization algorithm based on copying how water forms rivers by eroding the ground and depositing sediments. As water transforms the environment, altitudes of places are dynamically modified, and decreasing gradients are constructed. The gradients are followed by subsequent drops to create new gradients, reinforcing the best ones. By doing so, good solutions are given in the form of decreasing altitudes.

In nature, when it rains in a mountain, water tries to find its own way down to the sea. Along the way, water erodes the ground and transforms the landscape, which eventually creates a riverbed. When a strong down slope is traversed by the water, it extracts soil from the ground in the way. This soil is deposited later when the slope is lower. Rivers affect the environment by reducing (i.e. eroding) or increasing (i.e. depositing) the altitude of the ground. If water is unleashed at all points of the landscape (e.g., it rains) then the river form tends to optimize the

task of collecting all the water and take it to the sea, which does not imply to take the shortest path from a given origin point to the sea. There are a lot of origin points to consider (one for each point where a drop fell). In fact, a kind of combined grouped shortest path is created in this case. However, if water flows from a single point and no other water source is considered, then the water path tends to provide the most efficient way to reduce the altitude (i.e., it tends to find the shortest path) (Rabanal et al., 2007).

The method works as follows. Instead of associating pheromone values to edges, altitude values are associated to nodes. Drops erode the ground (they reduce the altitude of nodes) or deposit the sediment (increase it) as they move. The probability of the drop to take a given edge instead of others is proportional to the gradient of the down slope in the edge, which in turn depends on the difference of altitudes between both nodes and the distance (i.e. the cost of the edge). At the beginning, a flat environment is provided, that is, all nodes have the same altitude. The exception is the destination node, which is a hole. Drops are unleashed at the origin node, which spread around the flat environment until some of them fall in the destination node. This erodes adjacent nodes, which creates new down slopes, and in this way the erosion process is propagated. New drops are inserted in the origin node to transform paths and reinforce the erosion of promising paths. After some steps, good paths from the origin to the destination are found. These paths are given in the form of sequences of decreasing edges from the origin to the destination. After drops transform the landscape by increasing/decreasing the altitude of places, solutions are given in the form of paths of decreasing altitudes. Decreasing gradients are constructed, and these gradients are followed by subsequent drops to compose new gradients and reinforce the best ones.

In this chapter, a RFD algorithm is proposed to solve sequence-dependent disassembly line balancing problem (SDDLBP). RFD is the second of combinatorial optimization methods used in this study. Section 10.2 provides the model description of RFD algorithm and Section 10.3 briefly concludes this chapter.

10.2. Model Description

Based on the main concepts given by Rabanal et al. (2009), the basic scheme of the RFD method is given as follows:

Start

Step 1: Read disassembly data, initialize parameters, construct vectors and matrices. Iterative loop:

Step 2:

2.1 Construct a complete assignment for each drop: Repeat

Move drops (Apply state transition rule to select the next task) Erode paths

Deposit sediments

Until a complete assignment is constructed

2.2 Analyse paths and record the best solution found so far

Step 3: If the maximum number of iterations is realized, then STOP; else go to step 2

The pseudo code for the RFD algorithm is given in Table 10-1 while its subfunction is presented in Table 10-2 (priority function).

Table 10-1: Pseudo code for River Formation Dynamics algorithm Algorithm riverFormationDynamics

Initialize parameter, construct vectors and matrices Set time to 0

For each generation g For each drop dr to dn

// Create worst case scenario of sequence-dependent time increments For each i of sd ij For each j of sd ij ' i i ij t  t sd End for End for Set erosionProduced to 0

Create feasibleSolution S with dropPriority c

If feasibilityCheck = true Calculate balanceMeasure Calculate hazardMeasure Calculate demandMeasure End if // Analyse paths If betterSolution = true Set Sbest to Sg End if

If time time tlimit

Record time

Stop Algorithm and print results End if

End for End for End algorithm

Table 10-2: Pseudo code for dropPriority Function Function dropPriority

Set blocked to false and set totalGradient to 0 Set task i as to be assigned next

For each task j of AV

Set f to balanceMeasure 2

Calculate decreasingGradient using Equation (10.3) If decreasingGradient  Add j to 0 dr

j DOWN

Else if decreasingGradient  Add j to 0 dr j UP Else Add j to dr j FLAT End if

Calculate totalGradient using Equation (10.2) End for

If ( 1 )

dr

rPD climb = true Else climb = false End if

Calculate P and select task j for ij S from AV using Equation (10.1) c

// Erode paths

Decrease altitude using Equation (10.5) and Equation (10.6) i

// Remove sequence dependency increment of task '

j t from sd matrix ij For each i of sd ij For each j of sd ij ' ' j j ij t  t sd End for End for // Deposit sediments

Increase altitude using Equation (10.7) and Equation (10.8) i

End function

The (move drops) phase of RFD consists of moving the drops across the nodes of the graph in a partially random way. The following transition rule defines the probability that a drop

if if if 0 otherwise ij dr i ij dr i ij dr i decreasingGradient j DOWN totalGradient decreasingGradient j UP P totalGradient j FLAT totalGradient                 (10.1) Where 1 1 1 1 1 dr i dr dr i i ij j DOWN ij j UP j FLAT totalGradient decreasingGradient decreasingGradient       

(10.2) dr i DOWN , dr i UP and dr i

FLAT are the sets of parts that are neighbours of part i that can be

visited by the drop dr and are connected through a down, up, and flat gradient, respectively,  and  are considered to be the parameters of the algorithm and decreasingGradient represents ij

the gradient between parts i and j and is defined as follows:

j i

ij

ij

altitude altitude

decreasingGradient   fitness (10.3)

Where altitude is the altitude of the part i and i fitness is the length of the edge ij

connecting part i and part j.

Drops climb increasing slopes with a low probability. This probability will be inversely proportional to the increasing gradient, and it will be reduced during the execution of the

algorithm to improve the search of good paths. Enabling drops to climb increasing slopes with some low probability allows us to find alternative choices and enables the exploration of other paths in the graph. If a drop dr fails to be considered as a climbing drop then it only considers taking down or flat gradients. Given a drop dr located at part i, we randomly decide whether dr can climb upward gradients according to the following probability:

1 dr

PDnotClimbingFactor (10.4)

At the beginning of the algorithm, the altitude of all parts is the same, so totalGradient is 0, so the probability of a drop moving through an edge with zero gradient is set to some (non- null) value. This enables drops to spread around a flat environment, which is required, in particular, at the beginning of the algorithm.

In the next (erode paths) phase of the algorithm paths are eroded according to the movements of drops in the previous phase. In particular, if a drop moves from part i to part j, then we erode i. The reduction of the altitude of this node depends on the current gradient between i and j. In particular, the erosion is higher if the downward gradient between i and j is high. The altitude of the eroded node i is changed as follows:

i j ij

altitudealtitudeerosion (10.5)

( 1) ij ij paramErosion erosion decreasingGradient n dn    (10.6)

Where paramErosion is a parameter of the erosion process, n is the number of parts of the graph, and dn is the number of drops used in the algorithm. If the edge is flat or increasing then less erosion is performed.

Once the erosion process finishes, the altitude of all nodes of the graph is slightly increased (deposit sediments). The objective is to avoid, after some iterations, the erosion process leading to a situation where all altitudes are close to 0, which would make gradients negligible and would ruin all formed paths. In particular, the altitude of a part i is increased according to the following expression:

1

i i erosionProduced

altitudealtituden (10.7)

Where erosionProduced is the sum of erosions introduced in all graph nodes in the previous phase, and n is the number of parts.

Individual drops deposit sediment when all movements available for a drop imply climbing an increasing slope and the drop fails to climb any edge (according to the probability assigned to it). In this case, the drop is blocked and it deposits the sediments it is transporting. This increases the altitude of the current node in proportion to the cumulated sediment carried by the drop, which in turn is proportional to the erosions produced by the drop in previous movements. If a drop gets blocked at part i, then the altitude of i is increased as follows:

i i

altitudealtitudeparamBlockedDrop cumulatedSediment (10.8)

Where paramBlockedDrop is a parameter and cumulatedSediment is the amount of sediment carried by the drop.

Finally, all solutions found by drops and stores the best solution found so far (analyse paths).

10.3. Conclusions

A river formation dynamics (RFD) algorithm was developed and presented to solve SDDLBP in this chapter. The numerical results and comparisons with other methodologies are provided in Chapter 16.

Chapter