The process so far allows to find an integer feasible solution to the network instance. The solution can vary from run to run due to the randomness in the diving heuristic. However, as mentioned in Section 6.5, the column generation and separation proce- dure does not take into account the passenger routing and transfer times and only
6.6 Large Neighborhood Search 67
Figure 6.5: Route example of a passenger travelling from Odense to Roskilde
the passenger travel time is computed once the solution is found. Therefore, it is in- teresting to study, based on the solution found, how to improve the current solution taking into account the passenger travel time in the network. The idea applied here resembles the metaheurictic method Large Neighborhood Search (LNS). This method, was first introduced by Shaw (1998) and consists basically in destroying part of the solution and repairing it in order to get a new solution. The new solution hopefully is better than the previous one and the procedure repeats iteratively. The procedures are called destroy and repair method respectively and Algorithm 2 depicts the generic version of the LNS for a minimization problem.
Starting from an integer feasible solution, part of the solution is destroyed. The solution needs to be destroyed enough so that a new solution can be found. The repair method repairs the destroyed solution creating a new one. The combination of the two methods form a neighborhood, that, depending on the level of destruction and the constructive procedure, can be very large. Once a new solution is found, two conditions are checked. First, an acceptance criteria should be matched. If the new solution is accepted, it becomes the next candidate solution to be destroyed and
68 6 Solution method
Algorithm 2 Large Neighborhood Search
1: procedure LNS
2: Generate integer feasible solution x
3: xb= x ▷ Found solution is stored as the best so far
4: repeat
5: xn = repair(destroy(x)) ▷ Generates a new solution
6: if accept(xn) then ▷ Acceptance criterion
7: x = xn
8: end if
9: if cost(xn) < cost(xb) then ▷ Improvement criterion
10: xb= xn
11: end if
12: until time limit
13: return xb
14: end procedure
repaired, otherwise, the previous solution is destroyed and repaired again. Secondly, an improvement criterion should be checked. If the new solution found is better than the current best solution, it is stored as the new current best one. The process is repeated until a termination criteria is met, usually is a time limit but it can also be limited by other parameters such as the number of iterations. Finally, when the process is terminated, the current best solution stored is returned.
6.6.1 Destroy method
The destroy method can be designed in many different ways. In this case, the main goal is to destroy part of a solution taking into account the overall optimization goal of improving the passenger travel time. The algorithm itself already creates the shortest possible train paths. Therefore, the focus of the destroy method should be in the transfer times between trains.
The goal of the proposed destroy method is to find the potential best transfers and enforce them to be part of the next solution by fixing information about the transfer and removing the rest of the train paths. Once the passenger routing for the found solution is calculated, it is also possible to see the occupancy of the trains and which stations are the most transited. In this case, there are two criteria to check when considering the transfers. The flow of passengers that transfer between any two trains at the station and the transfer time between the arrival of the first train and the departure of the second. If the transfer time is already small (i.e. the minimum time of 5 minutes) , the transfer selected will not be improved and the solution would more likely be the same or very similar. As a result, a minimum transfer time is needed above which the transfer found can be considered improvable. Therefore, it would be considered the best transfer the one that accounts for the most passengers
6.6 Large Neighborhood Search 69
in the current solution and satisfies a minimum transfer time defined.
As a result, this method requires two main parameters to select the best transfers. First, the amount of transfers to be considered and, second, the minimum transfer time required.
Once the transfers are selected, almost all the solution is destroyed except the arriving time of the arriving train in the transfer. In a similar way as performed in the dive heuristic described in Section 6.4, for each transfer selected, the node in the Symmetric Line graph related to the arrival time at the station of the arriving train is fixed. This means that when the algorithm starts a new iteration, all the columns generated that are related to that train, must include a train path that arrives at the selected station at the selected time. In the case of the departing train of the transfer, a linear cost function is applied to the nodes related to the departing time instants from the selected station. Figure 6.6 illustrates the linear cost function applied to the departing trains of each transfer. It is visible that the ”cheapest” departure time corresponds to the ideal transfer time of 5 minutes. From then, the cost increases linearly as the transfer time increases. In addition, the cost increment per time unit is proportional to the transfer demand in order to prioritize more demanded transfers to be closer in time.
When it comes to fixing the nodes of the arriving transfer lines of the chosen transfers, two main strategies have been considered.
Figure 6.6: Linear cost function for the departing times of the departing train of the transfer where the departing time cost is represented by the red line
70 6 Solution method
6.6.1.1 All lines strategy
The first strategy considers fixing the arrival time at the stations from the arriving trains of all transfers considered. This means that, if there are multiple transfers affecting the same train, the train paths will include multiple fixed nodes. In the same manner, departing trains may accumulate multiple linear cost functions in their graphs. This strategy would never create any conflict in terms of feasibility because just parts of an actual integer feasible solution are being enforced and nothing addi- tional is added. On the other hand, if many transfers are selected, the solution space can be drastically reduced and the margin of improvement decreased.
6.6.1.2 Independent lines strategy
The second strategy is a more relaxed one and considers only fixing nodes of arriving trains that were not part of any transfers fixed before. In this way, trains will only have either maximum one node fixed or one linear cost function in the departure times added in the graph.
In the following chapters, both strategies will be referenced as All Lines strategy and Independent Lines strategy respectively.
In this algorithm the repair method consists in the applying the same procedure of column generation and separation together with the dive heuristic. The RMP is restarted without including any column and just the graphs are kept updated with the fixed nodes and the linear cost functions.
In this case, all solutions are accepted and used as candidates to be destroyed and repaired again, meaning that there is no acceptance criterion defined. This is based on the behaviour of the destroy method. As the PTT is calculated based on the quickest routes, a variation of half a minute in the train paths of a highly transited segment can change completely the flow of passengers. Therefore, finding a bad solution does not mean that, by fixing the right transfers, a total different solution can be achieved with the best PTT so far. Moreover, if only improving solutions are accepted the chance to ending up finding a repeated solution increases.