3.5 Deadheading Cycles
3.5.1 Computational Results
First we will investigate whether deadheading cycles actually exist in the solutions given by the best variant of the tabu search algorithm from Section 3.4, namely the one in which tabu moves are defined based on the task-in-a-route attributes and the tabu tenure is 2nt, where nt is the number of tasks. Figure 3.8 shows the number of runs in which there exists a removeable deadheading cycle (i.e. some edges were traversed more than twice) in the best observed solution given by the aforementioned variant at various iteration numbers k × nt, k = 0, 1, . . . , 100. Recall that the algorithm was repeated 20 times on each instance, resulting in 600 runs (30 instances × 20 runs) in total. Among initial solutions (iteration 0), removable deadheading cycles existed in about half the runs (318 out of 600 runs). As the number of iterations increased, the number of runs with removable deadheading cycles dropped dramatically to just over 100 runs and then decreased steadily, eventually reaching and seeming to stagnate around 60, which account for 10% of all runs in this experiment, despite increasing the number of iterations to 100nt. This shows that some deadheading cycles in early iterations were indirectly removed as the tabu search algorithm attempted to find better solutions by means of neigbourhood moves, but afterwards the tabu search algorithm was not always able to completely remove deadheading cycles on its own even if it was given a relatively large number of iterations. The inability to remove deadheading cycles could be because the rule for selecting the best neighbourhood move in each iteration is largely based on (changes of) total distances, not on whether it would remove deadheading cycles.
Implementing the DCR after the final iteration of the tabu search algorithm as a post- optimisation step would further improve the solution by dealing with deadheading cycles that have been overlooked by the tabu search.
Instead of implementing the DCR as a post-optimisation step, it is also possible to implement the DCR after the best neighbourhood move is applied to the current solution in each iteration. Figure 3.9 compares two ways of implementing the DCR: (i) after the final iteration, and (ii) in every iteration after the best neighbourhood
move. More precisely, Figure 3.9 shows medians2 of percentage deviations from
optimality given by these two variants on a range of stopping criteria (that is, the number of iterations = k × nt, where k = 0, 1, . . . , 100). For ease of reference, Figure 3.9 also displays the result corresponding to the algorithm without the DCR (the blue line with circle markers in Figure 3.2). The computational results suggest that implementing the DCR in either way could help the tabu search algorithm find
2As before, the percentage deviations on each instance are averaged over 20 runs, and the
0 20nt 40nt 60nt 80nt 100nt Number of iterations 0 50 100 150 200 250 300 350 Number of runs
Figure 3.8: The number of runs (out of 600 runs) in which the best solution at
various iteration numbers knt has removable deadheading cycles, where nt is the
number of tasks, and k = 0, 1, . . . , 100
a better solution. Furthermore, implementing the DCR in every iteration generally results in lower total distance than implementing it only once after the final iteration over a wide range of stopping criteria.
A two-tailed Wilcoxon signed-rank test is conducted at various iteration numbers throughout the execution of tabu search (k × nt, where k = 10, 20, . . . , 100). As shown in Table 3.4, it was found that implementing the DCR in either way leads to statistically significant improvement. Moreover, the difference between two ways of implmenting the DCR is statistically significant at early iterations (10nt and 20nt). This suggests that implementing the DCR in every iteration could help the tabu search algorithm improve the solution more effectively especially during early iterations. In other words, not only can the DCR be used to improve the solution as a post-optimisation step, but it can also be integrated into the tabu search algorithm and help the algorithm improve the solution at a faster rate.
Figure 3.10 shows average time taken on each instance by the tabu search algorithm without and with the DCR in every iteration (the results were obtained from running the algorithm on an Intel Core i5-4690 3.50GHz CPU with 8GB RAM). It can be seen that the computation times in both cases are very similar on all instances. This confirms that the DCR requires relatively little computation effort.
It should also be noted that the computation time taken by the tabu search with DCR is sometimes less than that without DCR. This is possible because implementing the DCR generally causes the tabu search algorithm to visit different solutions from
0
20n
t40n
t60n
t80n
t100n
tNumber of iterations
0.0
1.0
2.0
3.0
4.0
5.0
Percentage deviation from optimality
without DCR
with DCR after final iteration
with DCR in every iteration
Figure 3.9: Medians of percentage deviations from optimality over a range of iteration numbers given by the tabu search algorithm with different ways of implementing the deadheading cycle remover, namely without the deadheading cycle remover (“without DCR”), with the DCR being implemented after the final iteration (“with DCR after final iteration”), and with the DCR being implemented in every iteration (“with DCR at every iteration”)
Table 3.4: Medians of percentage deviations from optimality given by the tabu search algorithm with different ways of implementing the deadheading cycle remover
(“DCR”); nt denotes the number of tasks
Number of iterations
Ways of implementing the DCR
Without DCR With DCR after
final iteration With DCR in every iteration 10nt 2.81 2.69∗ 2.26∗† 20nt 2.25 2.08∗ 1.90∗† 30nt 1.93 1.74∗ 1.63∗ 40nt 1.75 1.70∗ 1.49∗ 50nt 1.61 1.45∗ 1.41∗ 60nt 1.60 1.42∗ 1.37∗ 70nt 1.52 1.39∗ 1.29∗ 80nt 1.47 1.32∗ 1.24 90nt 1.38 1.29∗ 1.19∗ 100nt 1.31 1.21∗ 1.18
∗ significantly better than “without DCR”
† significantly better than “with DCR after final iteration”
based on a two-tailed Wilcoxon signed-rank test with a Bonferroni correction (for 3 pairwise comparisons), resulting in a significance level of 0.05/3 ≈ 0.017
E25 C16 E17 C25 C17 C22 E06 E22 E03 E10 E07 C03 C06 C07 C13 E13 C02 C20 E16 C10 E14 C14 E02 E08 C19 E05 C08 E20 C05 E19 Instance 0 10 20 30 40 50 60 70
Time taken (seconds)
Without DCR
With DCR at every iteration
Figure 3.10: Average elapsed time for executing the tabu search algorithm on each instance for 100nt iterations taken by the tabu search algorithm without the deadheading cycle remover (“without DCR”) and with the DCR being implemented in every iteration (“with DCR at every iteration”); black vertical lines show one standard deviation from each side of the averages
those that the algorithm would without DCR, and different solutions generally have different numbers of feasible neighbour solutions. It could be the case that a solution visited by tabu search without DCR has a smaller number of feasible neighbour solutions, hence a smaller total amount of time taken to explore neighbourhood moves (even if the computation time taken by the DCR is included).