## 3 Materials and Methods
### Proposed Adaptive Large Neighborhood Search
#### 3.2.1 Initial Solution
In addition to the well-known operators Random-Customer Removal, Related-Customer Removal, and Worst-Distance-Customer Removal, we propose three more operators. **Random-Customer Removal** implements the removal of \(P\) customers randomly selected from a list of all customers from the relevant routes. **Related-Customer Removal** takes a seed customer selected from the list of all customers as a reference and calculates the distance of all other customers to this customer as a cost. It removes the P lowest cost customers from the related routes. The purpose of this operator is to remove clustered customers that are close to each other. **Worst-Distance-Customer Removal**, on the other hand, is cost-oriented and calculates how much distancecost all the customers on all routes incur in the solution and removes the \(P\) customers that increase the cost the most for the solution. These operators are commonly used heuristics in the literature [42; 46; 47]. In addition, the following operators are proposed in this study:

1. **Tardiness versus Worst-Distance-Customer Removal**: The proposed operator evaluates the cost impact of each customer across all routes by considering both their earliest service start time and their distance from the preceding node. The objective is to identify and remove the customer \(P\) whose presence contributes the most to increased route costs. By eliminating customers with late service start times from the beginning of a route, this approach enhances schedule efficiency and minimizes overall tardiness. The pseudocode is given in Algorithm 3. ```
Input:\(\mathit{served customers}\), \(\mathit{unserved customers}\), \(\mathit{routes}\) \(P\leftarrow\) the number of customers to be removed from the solution \(\mathit{customers\_to\_remove}\leftarrow[]\) for each route in routesdo for each node in routedo ifnode is Customer then \(\mathit{before\_node}\leftarrow\) Find before node \(\mathit{cost}\leftarrow\mathit{node\_earliest\_start\_time\_to\_service}\times \mathit{distance}\) from before_node to node Append(node, cost) to customers_to_remove endif endfor endfor sorted_customer\(\leftarrow\)Sort customers_to_remove customers_to_remove \(\leftarrow\)sorted_customer\([0:P]\) Remove every customer in customers_to_remove Update served customers and unserved customers
```
**Algorithm 3**Tardiness versus Worst-Distance-Customer Removal

The cost function is formulated by considering both distance and time windows. The cost, \(\mathit{earliest\_start\_time\_to\_service_{j+1}\times distance_{j,\_j+1}}\) (\(j\) represents nodes), enables a better balance between geographical and time constraints. Since both distance and tardiness are to be minimized, multiplication is a suitable form. If one component was to be minimized and the other maximized, a ratio might have been more appropriate. 2. **Tank-Capacity-Violation-Customer Removal**: Unlike other removal strategies, the operator targets inconvenient routes requiring charging stations. It removes the first node and all subsequent nodes from the solution on routes where the vehicle cannot complete its route within the available battery capacity. The goal is to optimize charging efficiency by shortening routes that require charging and eliminating unnecessary charging station visits. This results in more efficient energy use and improves overall route feasibility. The pseudocode is given in Algorithm 4. 3. **Time-Window-Violation-Customer Removal**: The operator targets infeasible routes where time window constraints are violated. It identifies the first overdue customer and removes both that customer and all subsequent customers from the route. The goal is to improve the feasibility and efficiency of the overall route plan by reconfiguring routes to ensure compliance with time window constraints. Eliminating delayed customer sequences improves compliance with service time requirements and helps minimize overall tardiness. The pseudocode is given in Algorithm 5.