## 5 Numerical Studies
### Performance of the Proposed Algorithm  
To provide a clear comparison, the results for small- and large-sized instances are summarized in Tables 5 and 6, respectively. For each method, the \"Instance\" column identifies the problem instance, and the \"Obj\" column shows the objective value achieved. The \"CPU\" column represents the computation time in seconds (averaged for heuristic algorithms), while the \"Node\" column indicates the number of nodes processed by the proposed branch-and-price-and-cut algorithm. Finally, the \"Gap\" column reflects the percentage gap between the objective values of each algorithm and the proposed algorithm. The row labeled \"Ave.\" presents the average value of the corresponding terms. The presence of a hyphen \"-\" within the cells denotes that the corresponding algorithm is unable to yield a feasible solution under the experimental settings. As a result, the column \"Gap\" is also marked with a hyphen \"-\". As presented in Table 5, we can observe that CPLEX performs well for small-sized instances, managing to optimally solve 24 out of 30 instances within the time limit. The average gaps range from 0% to 3.34%. However, a closer look at CPLEX's solution process reveals that while it can identify optimal solutions for some cases (e.g., Ins-20-2), it encounters difficulty in confirming their optimality. This challenge largely stems from the poor linear relaxation bound of the original MILP model. In contrast to CPLEX, the proposed algorithm exhibits much more encouraging results. The proposed algorithm significantly reduces the computation time required to solve all instances to optimality, as evident from the average time reported in \"CPU\" column. In addition, the proposed algorithm identifies optimal solutions for these instances after searching a very few nodes, and an overwhelming majority of them are solved at the root node. Impressively, the number of explored nodes ranges from just 1 to 5. For the TS algorithm, it performs reasonably well across all instances, with optimal solutions identified for all cases, similar to the proposed algorithm. TS efficiently solves most instances though it requires slightly more computational time on average than our proposed algorithm. The GA algorithm also performs effectively, yielding optimal solutions for all instances.The LNS algorithm demonstrates competitive performance for small-sized instances. LNS strikes a good balance between solution quality and computation time, outperforming GA, TS, and SA in terms of speed in most instances (e.g., Ins-16-2 and Ins-16-5), while still achieving optimal solutions. The SA algorithm also finds optimal solutions for most small-sized instances. However, similar to GA, it requires significantly longer computation times than LNS and TS. Although the average CPU time for SA and GA is generally longer than for TS and LNS, the times remain competitive when compared to CPLEX. The advantages of the proposed algorithm become even more pronounced when dealing with larger problem sizes. As expected, the performance of CPLEX experiences a sharp decline as the problem size increases, mainly due to the exponential growth of the solution space. CPLEX fails to discover a feasible solution in one hour, when confronted with problems involving more than 35 requests, so its results are not reported for these cases. By contrast, the proposed algorithm consistently delivers the best solutions for all instances, strongly demonstrating its effectiveness and superiority over other algorithms. Specifically, the proposed algorithm finds optimal solutions for most instances except Ins-70-3, Ins-70-4, Ins-75-2, and Ins-75-3. Although the GA, TS, LNS, and SA algorithms also produce feasible solutions for most instances, their performance generally lags behind that of the branch-and-price-and-cut method, with average gaps ranging from 0.5% to 8.7%. As for the computing speed, the proposed algorithm requires more time to handle instances with over 65 requests when compared to other algorithms.