It must also be emphasized that the CG method has two serial algorithms within itself, one of which is based on the solution of the RMP, while the other is based on finding promising columns/routes. Whereas interior point methods, which are polynomial time algorithms, can solve the RMP, the nested label-setting algorithm is deployed to find a suitable column/route with pseudo-polynomial time complexity. Therefore, the nested label-setting algorithm outweighs the CG method with regard to complexity analysis.
4.2.1. Nested Label-Setting Algorithm
This algorithm must be implemented for each subproblem in the CG model. Actually, each subproblem has its own network, and vehicles that can traverse the arcs of that network have a limit of , as in (4). Hence, in order to improve the RMP, one should examine all the subproblems’ networks to determine favorable columns/routes. The lack of a column that cannot improve RMP implies the optimality of the RMP, and the optimal value is a lower bound for the model.
The works of Tilk [
15] and Goel and Irnich [
16] were the first ones to address the VRP with consideration of truck driver scheduling using BPC algorithms. Tilk and Goel [
17] expanded the previous studies, including effective acceleration concepts and regulations from different countries. Both works introduced efficient label variables for a nested label-setting algorithm to comply with scheduling constraints and devised dominance rules to expedite the solution process. Because scheduling constraints are crucial in our work, we adopted and implemented their methods with some modifications. Additionally, we paid attention to the work of Feillet et al. [
37] and Righini et al. [
11,
38], who devised efficient labeling techniques called forward and backward labeling for addressing basic shortest path problems with resource constraints. Their studies helped us acquire routes/columns for the column generation process in our work while searching for the lower bound of our problem. Thus, a modified version of their methodologies was also incorporated accordingly.
According to the rules (Hours of Service Regulations, enforced by the United States Federal Motor Carrier Safety Administration), a driver in the U.S. should take breaks, rest, or drive on long-distance routes. In accordance with the parameters stipulated by United States regulatory standards, the following notations are adopted: represents the maximum allowable driving time between two successive rest periods; denotes the minimum permissible duration of a break; indicates the minimum required length of a rest period; corresponds to the maximum time permitted after the conclusion of a break period before driving may resume; and designates the maximum time allowed after the completion of a rest period before driving may commence. Therefore, it can be put into words that a driver should not exceed and while driving their truck. Otherwise, this may lead to huge fines imposed by traffic control crews.
Consistent with the aforementioned United States regulations, the forward labels employed in the nested label-setting algorithm, elements that are pivotal to the forward labeling process, must encapsulate the following components: the reduced cost associated with the forward path (); the total elapsed time since the initiation of the forward path (); the remaining driving time required to reach the next customer along the forward path (); the cumulative driving time accrued since the most recent rest period (); the elapsed time measured from the conclusion of the preceding rest period (); the elapsed time measured from the conclusion of the preceding break period (); the latest permissible time to which the prior rest period can be extended without breaching scheduling constraints (); and the latest permissible time to which the prior break period can be extended without violating scheduling requirements (). Thus, it can be expressed that and aim to maintain the energy of a driver on their route, while and support the elimination of redundant waiting times for the driver during node visits.
During the forward labeling iterations, each forward label has a forward path, label variables, as defined above, and visited customer nodes’ spaces. That is why each forward label is defined as in this study. A forward path becomes , where is the node/vertex in the network. Thus, this implies that, according to , vehicles should depart at (a departure node in the network), then visit consecutively until . keeps the set of visited customer nodes, while . It must be noted that washing nodes and supply nodes can be visited multiple times by a vehicle, while contracted and non-contracted customers can at most be visited once. That is why is included to track the number of visits to customer points/nodes. Furthermore, for the initialization of a forward label and recursive extension of this label, is taken into consideration, setting .
To provide labels with an extension,
Table 3 and
Table 4 are utilized if there is a feasible arc from the
node to the
node. However, although an arc exists between these nodes, one must additionally ensure that
∉
or
and
.
is the predefined neighborhood set associated with node
, whereas
is the driving time required to travel from the
node to the
node, and
is the upper bound of selected time windows of the
node. Indeed, these situations render the utilization of
operationally viable. Given the presence of multiple time windows,
denotes one of the admissible service intervals for the
node.
is the service duration at that node. After the label has been extended,
is derived for
, whereas
.
Blank spaces in two tables above imply that there will be no change for the relevant forward label variable during the relevant extension function. According to
Table 3,
denotes the duration associated with driving, rests, and breaks corresponding to
,
, and
, respectively. Undoubtedly, these functions cannot be employed at every point in the timeline; therefore, feasibility conditions take place to benefit from them, as shown in
Table 5. Nevertheless, if
is transformed with the dual variables, as shown in Equation (10), then
is acquired.
With respect to
Table 5, it is emphasized that
indicates how many more time units a driver can drive for at a given moment without breaching the regulations. Therefore, that is why the drive function, called
, includes the structure of
, and
cannot exceed the value of
.
The dominance rules, which aim to prevent an excessive increase in the total number of labels, were created by Tilk [
15] as well as Goel and Irnich [
16] and were employed in our study as follows: Driving function is imposed when
and
. This is because this circumstance prevents redundant break and rest periods while driving is possible. If a rest or break is enforced due to
(driving is impossible), then these periods are taken as
and
. This is because these periods are stretched when needed due to the extension function called
. Subsequently, consecutive occurrences of two rest periods, two break periods, a rest period immediately following a break, or a break immediately following a rest period are prohibited, as such sequences represent operationally meaningless combinations. Nevertheless, if there is a situation such as
,
,
,
,
,
,
,
, or
, then the forward label regarding the
node, called
, dominates and has the potential to outperform the forward label regarding the
node called
. It implies that whenever
is feasibly extended with any extension function,
can be likewise extended. After the extension, the label variables of
continue to outperform the label variables of
.
By virtue of symmetry, an analogous procedure to the aforementioned forward label approach can be implemented for backward labels, wherein the backward path is represented as . is the terminal node, while has the same concept as . When employing a large positive number, M, the time window for each node changes. As an example, with regard to backward labeling. It should be noted that, within the forward labeling framework, the time window boundaries represent the earliest and latest feasible starting times for processing at the corresponding node on timeline. In contrast, under the backward labeling approach, these boundaries denote the earliest and latest permissible departure times on the timeline from the respective node. While forward and backward labels share numerous structural similarities, subtle yet significant distinctions exist in their respective label-updating procedures.
A backward label associated with the previously defined backward path from above can be represented as . , and has the same concept as . Thus, the backward label is initialized as , where .
In the context of backward labeling,
,
,
,
, and
correspond to
,
,
,
, and
, respectively. While forward labeling involves traversing an arc from the
node to the
node, backward labeling requires reverse movement along this arc. Specifically, for example,
starts the reverse arc movement towards the
node from the
node. The feasibility conditions and updating procedures for
,
,
, and
are totally analogous to their counterparts in forward labeling. However,
entails two extra conditions to ensure feasible extension, which are
and
. Nevertheless,
updates
in the same manner as in the forward labeling procedures. In contrast,
are altered using a different strategy. These strategies can be observed in
Table 6.
Due to the structure of extension functions with respect to backward labeling, the same dominance rules in forward labeling can again be deployed to discard dominated backward labels.
It must be noted that washing nodes behave a bit differently compared to other nodes. This is because the processing time of a washing node, which is related to its product type, can vary according to the supply node that is about to be visited next. Therefore, at a washing node, the processing time is always taken as the minimum duration in the row of the corresponding product type at that node in the washing matrix. Hence, during the feasibility check of the extension towards a supply node, recalling that one can move from washing nodes to supply nodes only in forward labeling, extra processing time can be added and decisions can be made without loss of generality. Furthermore, when a feasible extension occurs from the current washing node to a supply node in forward labeling, extra processing time is added, and labels are updated without loss of generality at the beginning of travel. On the other hand, in backward labeling, one can only travel from supply nodes to washing nodes using reverse arcs. Therefore, when traveling to washing nodes from supply nodes, the amount of washing time at the end of the visit function is apparent.