• No results found

3.5 Multi-start adaptive large neighborhood search

3.5.1 Adaptive large neighborhood search

3.5.2.3 Destroy operators

Hereunder are described the destroy operators used in the multi-start ALNS. Some of these operators require to shift the arrival times at the customers to their earliest arrival time without losing solution feasibility. In such cases, the earliest arrival time at a customer i by a vehicle k is set to minShif tik.

• Elimination by average score (EAS): This operator is based on the elimination operator used by Hu and Lim (2014). Let ¯sbe the average score obtained by the visits included in the current solution. A visit is eliminated with probability prob if its collected score is smaller than ¯s, and with probability 1 − prob, otherwise. When the multi-start ALNS execution starts, prob is set to 0.1. The probability prop is updated at the end of each iteration in which EAS is carried out as follows: it is set to min{prob + 0.1, 1} if the solution is not accepted, and to 0.1, otherwise.

• Random elimination (RE): A random number of random visits are removed from the current solution.

• Elimination of a sequence-1 (ES-1): This operator is a modification of the shake step used by Vansteenwegen et al. (2009). Let start and length be two integers. For every route, it is removed a sequence of length consecutive visits starting from start. If the end of a route is reached before removing length visits, customers visited after depot 0 are removed. The arrival times at the customers remaining in the solution is set to their earliest arrival time. At the beginning of the multi-start ALNS, both start and length are set to 1 and they are updated every time ES-1 is executed. Parameter start is set to 1 if the solution is accepted, and to start + length, otherwise. On the other hand, length is set to 1 if the solution is accepted, and to length + 1, otherwise. If either start or length is larger than the minimum number of customers included in a route, then the respective parameter is set to this number. • Elimination of a sequence-2 (ES-2): This operator is similar to ES-1, except

that the arrival times at the remaining visits do not change.

• Elimination based on history (EH): Let update be the number of times in which the incumbent solution has been updated (line 11 of Algorithm 3), and let i incumbent be the number of times in which customer i has been included at least once in the incumbent solution. Each visit to customer i is removed with probability 1 − pi, where pi = i incumbent+1update+1 .

• Intra-route exchange (IntraE): For every route, and for every customer included in it, another random customer visited in the same route is selected. Operator IntraE exchanges the visits positions, if feasible. If the exchange is performed, the arrival time at all visits in the route are set to the minimum possible. The exchange is accepted only if the route duration is decreased.

• Inter-route exchange (InterE): For every route ki, and for every customer i

that i 6= j and ki 6= kj. Operator InterE exchanges i and j positions, if feasible.

It is to note that it is possible that a visit to j is already included in ki and/or

i is already visited in kj. If it is the case, the visits are merged according to

Algorithm 6; otherwise, new visits are created by following Algorithms 5 and 4. The arrival time at each customer visited in the selected routes is set to the minimum possible. The exchange is accepted only if the duration of both routes is decreased.

• Intra-route relocate (IntraR): For every route, and for every customer included in it, a random position of the same route is selected. Operator IntraR relocates the customer in the selected random position, if feasible. The arrival time at each customer included in the route is set to the minimum possible. The move is accepted if the route duration decreases.

• Inter-route relocate (InterR): For every route k1, and for every customer i

visited in it, a random route k0 is chosen, considering that k1 6= k0. Notice

that it is possible that customer i is already visited in k0. If that is the

case, Algorithm 6 is executed to update the deliveries. Otherwise, the visit is relocated to k0 in a random position according to Algorithms 5 and 4. In

either cases, the arrival times at all customers in k1 are shifted to the minimum

possible. The relocation is accepted if the route duration decreases.

Notice that when the destroy operators are executed, some visits are either removed or their deliveries are modified (except for IntraE and IntraR). As a conse- quence, for the customer whose visit was removed or modified, it is possible to obtain solutions in which the total delivered amount of lower quality product is larger than the total delivered quantity of regular product. For a better understanding of this observation, consider the following example.

Example 3.4 (Infeasibility due to destroy mechanisms) Consider an in- stance of the rTOP in which a single product is distributed. Also, consider a customer

Algorithm 6 Merge visits Require:

i ⊲Customer whose visits will be updated k0 ⊲ Route in which the visit to i will be kept

k1 ⊲ Route from which the visit to i will be removed 1: slackV ehicle= ck0−

P

j∈N (k0)

P

p∈P(rjk0p+ ujk0p) 2: for p ∈ P such that qip>0 do

3: if slackV ehicle = 0 then

4: break 5: end if

6: incrementp = min{rik1p, slackV ehicle} 7: rik0p = rik0p+ incrementp

8: slackV ehicle= slackV ehicle − incrementp 9: end for

10: if slackV ehicle > 0 then

11: for p ∈ P such that qip >0 do 12: if slackV ehicle = 0 then 13: break

14: end if

15: incrementp = min{uik1p, slackV ehicle} 16: uik0p = uik0p + incrementp

17: slackV ehicle= slackV ehicle − incrementp 18: end for

19: end if

whose demand is equal to 10 and a feasible solution for the instance, in which two vehicles k1 and k2 serve the customer. The customer receives four units of regular

product from vehicle k1, and two units of regular product and three units of lower

quality product from vehicle k2. In total, the customer receives nine units of the de-

manded product: six units of regular product and three units of lower quality product. Then, the deliveries are feasible.

Now, suppose that a destroy operator removes the visit to the customer per- formed by vehicle k1. Now the customer only receives the units delivered by vehicle

k2. The solution becomes infeasible since three units of lower quality product are

delivered to the customer while it only receives two units of regular product.

If any constraint from the group (3.10) is violated after the execution of a destroy operator, a simple repair mechanism is applied as follows. For each customer i it is checked whether their deliveries are feasible. If there is a product p whose deliveries are infeasible, for each visit to i in the current solution, the delivered quantity of lower quality product p is set to the minimum between itself and the delivered amount of regular product p. Then, in Example 3.4, vehicle k2 will now

deliver two units of regular product and two units of lower quality product.

Related documents