p10 | Pickup and Delivery Problem with Time Windows (PDPTW)¶
Note
We add implicit assumptions that travel times \(d^k_{0i}, d^k_{iH} \geq 0\) and \(d_{ij} > 0\), time windows \(\tau^-_i, \tau^+_i \ge 0\) with \(\tau^-_i \leq \tau^+_i\), and that travel times satisfy the triangle inequalities \(d^k_{0i} \le d^k_{0j} + d_{ji}\) and \(d_{ij} \le d_{im} + d_{mj}\).
\(d_{ij} > 0\) is necessary to eliminate 2-cycles and ensure there is a strict ordering of jobs in a route.
The source big-M constant \(M = 2 \max_{i,j} d_{ij}\) is not always valid: it ignores the time-window spread \(\tau^+_i - \tau^-_j\) and can cut off feasible solutions. We use \(M = 2 \max_{i,j} d_{ij} + \max_i \tau^+_i - \min_j \tau^-_j\).
NP-hard: yes
Description¶
Route a fleet of vehicles to serve pickup-and-delivery requests in precedence order, subject to time window constraints, minimizing total travel cost. Each request has a pickup location that must be served within a time window. Job rejection is permitted via self-loops with a penalty equal to the job’s loaded travel time. Formulated as a MILP over a complete directed graph of truck and job nodes.
Formulations¶
Formulation a (valid)¶
Note
This is the PDPTW formulation from
v2of Yazdani et al. [2].
Parameters¶
Name |
Description |
Type |
Shape |
|---|---|---|---|
|
Number of trucks/vehicles in the fleet |
integer |
scalar |
|
Number of pickup and delivery jobs |
integer |
scalar |
|
Travel time from job \(i\)’s return terminal to job \(j\)’s pickup terminal; \(d_{ii}\) is the loaded time (rejection penalty) of job \(i\) |
continuous |
|
|
Travel time from the home terminal of truck \(k\) to job \(i\)’s pickup terminal |
continuous |
|
|
Travel time from job \(i\)’s return terminal to the home terminal of truck \(k\) |
continuous |
|
|
Time at which each truck becomes available |
continuous |
|
|
Earliest permissible arrival time at each job’s pickup terminal |
continuous |
|
|
Latest permissible arrival time at each job’s pickup terminal |
continuous |
|
Definitions¶
Name |
Description |
Formulation |
|---|---|---|
|
Big-M constant for arrival-time propagation: upper bound on any feasible arrival time |
\(M = 2 \max_{i,j \in \{0,\dots,N-1\}} d_{ij} + \max_i \tau^+_i - \min_j \tau^-_j\) |
Variables¶
Name |
Description |
Type |
Shape / Indices |
|---|---|---|---|
|
\(1\) if arc \((u,v)\) is selected in the routing cycle cover; \(x_{K+i,K+i} = 1\) means job \(i\) is rejected |
binary |
|
|
Arrival time at job \(i\)’s pickup terminal |
continuous |
|
Assumptions¶
Description |
Formulation |
Implicit |
|---|---|---|
Number of trucks is at least one. |
\(K \geq 1\) |
yes |
Number of jobs is at least one. |
\(N \geq 1\) |
yes |
All travel times between jobs are strictly positive. |
\(d_{ij} > 0 \quad \forall i, j \in \{0,\dots,N-1\}\) |
yes |
Triangle inequality for depot-to-job travel: going directly to job \(i\) is no longer than going via job \(j\) first. |
\(d^k_{0i} \leq d^k_{0j} + d_{ji} \quad \forall k \in \{0,\dots,K-1\},\, i, j \in \{0,\dots,N-1\}\) |
yes |
Triangle inequality for job-to-job travel. |
\(d_{ij} \leq d_{im} + d_{mj} \quad \forall i, j, m \in \{0,\dots,N-1\}\) |
yes |
Truck available times are nonnegative. |
\(v^k \geq 0 \quad \forall k \in \{0,\dots,K-1\}\) |
yes |
Earliest permissible arrival times are nonnegative. |
\(\tau^-_i \geq 0 \quad \forall i \in \{0,\dots,N-1\}\) |
yes |
Latest permissible arrival times are nonnegative. |
\(\tau^+_i \geq 0 \quad \forall i \in \{0,\dots,N-1\}\) |
yes |
Each time window is non-empty: the earliest permissible arrival is no later than the latest. |
\(\tau^-_i \leq \tau^+_i \quad \forall i \in \{0,\dots,N-1\}\) |
yes |
Constraints¶
Each node has exactly one outgoing arc.
\[ \sum_{v=0}^{K+N-1} x_{uv} = 1 \quad \forall u \in \{0,\dots,K+N-1\} \]Each node has exactly one incoming arc.
\[ \sum_{v=0}^{K+N-1} x_{vu} = 1 \quad \forall u \in \{0,\dots,K+N-1\} \]Arrival time at job \(i\) is at least the earliest possible arrival from any truck.
\[ \delta_i - \sum_{k=0}^{K-1} (d^k_{0i} + v^k)\,x_{k,K+i} \ge 0 \quad \forall i \in \{0,\dots,N-1\} \]Arrival time propagation between consecutive jobs via big-M.
\[ \delta_j - \delta_i - M\,x_{K+i,K+j} + (d_{ii}+d_{ij})\,x_{K+i,K+i} \ge d_{ii}+d_{ij}-M \quad \forall i,j \in \{0,\dots,N-1\} \]Time-window feasibility for each job’s pickup.
\[ \tau^-_i \le \delta_i \le \tau^+_i \quad \forall i \in \{0,\dots,N-1\} \]
Objective¶
Minimize total travel cost: deadhead from truck homes, inter-job travel, and returns to truck homes.
Formulation b (valid)¶
Note
This is the PDPTW formulation from
v2of Yazdani et al. [2] augmented with acceleration cut EC1.
Parameters¶
Name |
Description |
Type |
Shape |
|---|---|---|---|
|
Number of trucks/vehicles in the fleet |
integer |
scalar |
|
Number of pickup and delivery jobs |
integer |
scalar |
|
Travel time from job \(i\)’s return terminal to job \(j\)’s pickup terminal; \(d_{ii}\) is the loaded time (rejection penalty) of job \(i\) |
continuous |
|
|
Travel time from the home terminal of truck \(k\) to job \(i\)’s pickup terminal |
continuous |
|
|
Travel time from job \(i\)’s return terminal to the home terminal of truck \(k\) |
continuous |
|
|
Time at which each truck becomes available |
continuous |
|
|
Earliest permissible arrival time at each job’s pickup terminal |
continuous |
|
|
Latest permissible arrival time at each job’s pickup terminal |
continuous |
|
Definitions¶
Name |
Description |
Formulation |
|---|---|---|
|
Earliest feasible arrival time at job \(i\): maximum of the time-window lower bound and the earliest reachable time from any truck. |
\(\mathrm{EST}_i = \max\!\left(\tau^-_i,\, \min_{k \in \{0,\dots,K-1\}} (v^k + d^k_{0i})\right) \quad \forall i \in \{0,\dots,N-1\}\) |
|
Set of arc pairs \((i, j)\) that are infeasible due to time windows: job \(j\) cannot be served after job \(i\). |
\(\mathcal{A}^- = \{(i,j) \in \{0,\dots,N-1\}^2 : i \neq j \wedge \mathrm{EST}_i + d_{ii} + d_{ij} > \tau^+_j\}\) |
|
Big-M constant for arrival-time propagation: upper bound on any feasible arrival time. |
\(M = 2 \max_{i,j \in \{0,\dots,N-1\}} d_{ij} + \max_i \tau^+_i - \min_j \tau^-_j\) |
Variables¶
Name |
Description |
Type |
Shape / Indices |
|---|---|---|---|
|
\(1\) if arc \((u,v)\) is selected in the routing cycle cover; \(x_{K+i,K+i} = 1\) means job \(i\) is rejected |
binary |
|
|
Arrival time at job \(i\)’s pickup terminal |
continuous |
|
Assumptions¶
Description |
Formulation |
Implicit |
|---|---|---|
Number of trucks is at least one. |
\(K \geq 1\) |
yes |
Number of jobs is at least one. |
\(N \geq 1\) |
yes |
All travel times between jobs are strictly positive. |
\(d_{ij} > 0 \quad \forall i, j \in \{0,\dots,N-1\}\) |
yes |
Triangle inequality for depot-to-job travel: going directly to job \(i\) is no longer than going via job \(j\) first. |
\(d^k_{0i} \leq d^k_{0j} + d_{ji} \quad \forall k \in \{0,\dots,K-1\},\, i, j \in \{0,\dots,N-1\}\) |
yes |
Triangle inequality for job-to-job travel. |
\(d_{ij} \leq d_{im} + d_{mj} \quad \forall i, j, m \in \{0,\dots,N-1\}\) |
yes |
Truck available times are nonnegative. |
\(v^k \geq 0 \quad \forall k \in \{0,\dots,K-1\}\) |
yes |
Earliest permissible arrival times are nonnegative. |
\(\tau^-_i \geq 0 \quad \forall i \in \{0,\dots,N-1\}\) |
yes |
Latest permissible arrival times are nonnegative. |
\(\tau^+_i \geq 0 \quad \forall i \in \{0,\dots,N-1\}\) |
yes |
Each time window is non-empty: the earliest permissible arrival is no later than the latest. |
\(\tau^-_i \leq \tau^+_i \quad \forall i \in \{0,\dots,N-1\}\) |
yes |
Constraints¶
Each node has exactly one outgoing arc.
\[ \sum_{v=0}^{K+N-1} x_{uv} = 1 \quad \forall u \in \{0,\dots,K+N-1\} \]Each node has exactly one incoming arc.
\[ \sum_{v=0}^{K+N-1} x_{vu} = 1 \quad \forall u \in \{0,\dots,K+N-1\} \]Arrival time at job \(i\) is at least the earliest possible arrival from any truck.
\[ \delta_i - \sum_{k=0}^{K-1} (d^k_{0i} + v^k)\,x_{k,K+i} \ge 0 \quad \forall i \in \{0,\dots,N-1\} \]Arrival time propagation between consecutive jobs via big-M.
\[ \delta_j - \delta_i - M\,x_{K+i,K+j} + (d_{ii}+d_{ij})\,x_{K+i,K+i} \ge d_{ii}+d_{ij}-M \quad \forall i,j \in \{0,\dots,N-1\} \]Time-window feasibility for each job’s pickup.
\[ \tau^-_i \le \delta_i \le \tau^+_i \quad \forall i \in \{0,\dots,N-1\} \]EC1: Fix to zero any arc from job \(i\) to job \(j\) that is infeasible due to time windows.
\[ x_{K+i,K+j} = 0 \quad \forall (i,j) \in \mathcal{A}^- \]
Objective¶
Minimize total travel cost: deadhead from truck homes, inter-job travel, and returns to truck homes.
Formulation c (valid)¶
Note
This is the PDPTW formulation from
v2of Yazdani et al. [2] augmented with acceleration cut EC2.
Parameters¶
Name |
Description |
Type |
Shape |
|---|---|---|---|
|
Number of trucks/vehicles in the fleet |
integer |
scalar |
|
Number of pickup and delivery jobs |
integer |
scalar |
|
Travel time from job \(i\)’s return terminal to job \(j\)’s pickup terminal; \(d_{ii}\) is the loaded time (rejection penalty) of job \(i\) |
continuous |
|
|
Travel time from the home terminal of truck \(k\) to job \(i\)’s pickup terminal |
continuous |
|
|
Travel time from job \(i\)’s return terminal to the home terminal of truck \(k\) |
continuous |
|
|
Time at which each truck becomes available |
continuous |
|
|
Earliest permissible arrival time at each job’s pickup terminal |
continuous |
|
|
Latest permissible arrival time at each job’s pickup terminal |
continuous |
|
Definitions¶
Name |
Description |
Formulation |
|---|---|---|
|
Earliest start time for job \(i\): maximum of its time-window lower bound and the earliest any truck can arrive |
\(\mathrm{EST}_i = \max\!\left(\tau^-_i,\, \min_{k \in \{0,\dots,K-1\}} (v^k + d^k_{0i})\right) \quad \forall i \in \{0,\dots,N-1\}\) |
|
Set of infeasible sequencing pairs \((i,j)\): job \(j\) cannot follow job \(i\) without violating \(j\)’s time window |
\(\mathcal{A}^- = \{(i,j) \in \{0,\dots,N-1\}^2 : i \ne j \wedge \mathrm{EST}_i + d_{ii} + d_{ij} > \tau^+_j\}\) |
|
Set of mutually feasible pairs: distinct jobs where neither sequencing direction is in \(\mathcal{A}^-\) |
\(F_2 = \{(i,j) \in \{0,\dots,N-1\}^2 : i \ne j,\, (i,j) \notin \mathcal{A}^-,\, (j,i) \notin \mathcal{A}^-\}\) |
|
Big-M constant for arrival-time propagation: upper bound on any feasible arrival time |
\(M = 2 \max_{i,j \in \{0,\dots,N-1\}} d_{ij} + \max_i \tau^+_i - \min_j \tau^-_j\) |
Variables¶
Name |
Description |
Type |
Shape / Indices |
|---|---|---|---|
|
\(1\) if arc \((u,v)\) is selected in the routing cycle cover; \(x_{K+i,K+i} = 1\) means job \(i\) is rejected |
binary |
|
|
Arrival time at job \(i\)’s pickup terminal |
continuous |
|
Assumptions¶
Description |
Formulation |
Implicit |
|---|---|---|
Number of trucks is at least one. |
\(K \geq 1\) |
yes |
Number of jobs is at least one. |
\(N \geq 1\) |
yes |
All travel times between jobs are strictly positive. |
\(d_{ij} > 0 \quad \forall i, j \in \{0,\dots,N-1\}\) |
yes |
Triangle inequality for depot-to-job travel: going directly to job \(i\) is no longer than going via job \(j\) first. |
\(d^k_{0i} \leq d^k_{0j} + d_{ji} \quad \forall k \in \{0,\dots,K-1\},\, i, j \in \{0,\dots,N-1\}\) |
yes |
Triangle inequality for job-to-job travel. |
\(d_{ij} \leq d_{im} + d_{mj} \quad \forall i, j, m \in \{0,\dots,N-1\}\) |
yes |
Truck available times are nonnegative. |
\(v^k \geq 0 \quad \forall k \in \{0,\dots,K-1\}\) |
yes |
Earliest permissible arrival times are nonnegative. |
\(\tau^-_i \geq 0 \quad \forall i \in \{0,\dots,N-1\}\) |
yes |
Latest permissible arrival times are nonnegative. |
\(\tau^+_i \geq 0 \quad \forall i \in \{0,\dots,N-1\}\) |
yes |
Each time window is non-empty: the earliest permissible arrival is no later than the latest. |
\(\tau^-_i \leq \tau^+_i \quad \forall i \in \{0,\dots,N-1\}\) |
yes |
Constraints¶
Each node has exactly one outgoing arc.
\[ \sum_{v=0}^{K+N-1} x_{uv} = 1 \quad \forall u \in \{0,\dots,K+N-1\} \]Each node has exactly one incoming arc.
\[ \sum_{v=0}^{K+N-1} x_{vu} = 1 \quad \forall u \in \{0,\dots,K+N-1\} \]Arrival time at job \(i\) is at least the earliest possible arrival from any truck.
\[ \delta_i - \sum_{k=0}^{K-1} (d^k_{0i} + v^k)\,x_{k,K+i} \ge 0 \quad \forall i \in \{0,\dots,N-1\} \]Arrival time propagation between consecutive jobs via big-M.
\[ \delta_j - \delta_i - M\,x_{K+i,K+j} + (d_{ii}+d_{ij})\,x_{K+i,K+i} \ge d_{ii}+d_{ij}-M \quad \forall i,j \in \{0,\dots,N-1\} \]Time-window feasibility for each job’s pickup.
\[ \tau^-_i \le \delta_i \le \tau^+_i \quad \forall i \in \{0,\dots,N-1\} \]EC2: For each mutually feasible pair \((i,j)\), at most one of the two sequencing directions or a rejection of \(i\) can hold.
\[ x_{K+i,K+j} + x_{K+j,K+i} + x_{K+i,K+i} \le 1 \quad \forall (i,j) \in F_2 \]
Objective¶
Minimize total travel cost: deadhead from truck homes, inter-job travel, and returns to truck homes.
Formulation d (valid)¶
Note
This is the PDPTW formulation from
v2of Yazdani et al. [2] augmented with acceleration cut EC3.
Parameters¶
Name |
Description |
Type |
Shape |
|---|---|---|---|
|
Number of trucks/vehicles in the fleet |
integer |
scalar |
|
Number of pickup and delivery jobs |
integer |
scalar |
|
Travel time from job \(i\)’s return terminal to job \(j\)’s pickup terminal; \(d_{ii}\) is the loaded time (rejection penalty) of job \(i\) |
continuous |
|
|
Travel time from the home terminal of truck \(k\) to job \(i\)’s pickup terminal |
continuous |
|
|
Travel time from job \(i\)’s return terminal to the home terminal of truck \(k\) |
continuous |
|
|
Time at which each truck becomes available |
continuous |
|
|
Earliest permissible arrival time at each job’s pickup terminal |
continuous |
|
|
Latest permissible arrival time at each job’s pickup terminal |
continuous |
|
Definitions¶
Name |
Description |
Formulation |
|---|---|---|
|
Earliest start time for each job: max of time window lower bound and earliest reachable time from any truck |
\(\mathrm{EST}_i = \max\!\left(\tau^-_i,\, \min_{k \in \{0,\dots,K-1\}} (v^k + d^k_{0i})\right) \quad \forall i \in \{0,\dots,N-1\}\) |
|
Set of directed job pairs \((i,j)\) where job \(j\) cannot follow job \(i\) due to time window infeasibility |
\(\mathcal{A}^- = \{(i,j) \in \{0,\dots,N-1\}^2 : i \ne j \wedge \mathrm{EST}_i + d_{ii} + d_{ij} > \tau^+_j\}\) |
|
Set of trucks that can feasibly serve at least one job in clique \(C\) within its time window |
\(K_C = \{k \in \{0,\dots,K-1\} : \exists\, i \in C,\ v^k + d^k_{0i} \le \tau^+_i\} \quad \forall C \subseteq \{0,\dots,N-1\}\) |
|
Family of cliques in the conflict graph induced by \(\mathcal{A}^-\): subsets \(C\) of jobs such that every distinct pair \((i,j)\) in \(C\) has both \((i,j)\) and \((j,i)\) in \(\mathcal{A}^-\) |
\(\mathcal{C} = \{C \subseteq \{0,\dots,N-1\} : \forall i, j \in C,\ i \ne j \Rightarrow (i,j) \in \mathcal{A}^- \wedge (j,i) \in \mathcal{A}^-\}\) |
|
Big-M constant for arrival-time propagation: upper bound on any feasible arrival time |
\(M = 2 \max_{i,j \in \{0,\dots,N-1\}} d_{ij} + \max_i \tau^+_i - \min_j \tau^-_j\) |
Variables¶
Name |
Description |
Type |
Shape / Indices |
|---|---|---|---|
|
\(1\) if arc \((u,v)\) is selected in the routing cycle cover; \(x_{K+i,K+i} = 1\) means job \(i\) is rejected |
binary |
|
|
Arrival time at job \(i\)’s pickup terminal |
continuous |
|
Assumptions¶
Description |
Formulation |
Implicit |
|---|---|---|
Number of trucks is at least one. |
\(K \geq 1\) |
yes |
Number of jobs is at least one. |
\(N \geq 1\) |
yes |
All travel times between jobs are strictly positive. |
\(d_{ij} > 0 \quad \forall i, j \in \{0,\dots,N-1\}\) |
yes |
Triangle inequality for depot-to-job travel: going directly to job \(i\) is no longer than going via job \(j\) first. |
\(d^k_{0i} \leq d^k_{0j} + d_{ji} \quad \forall k \in \{0,\dots,K-1\},\, i, j \in \{0,\dots,N-1\}\) |
yes |
Triangle inequality for job-to-job travel. |
\(d_{ij} \leq d_{im} + d_{mj} \quad \forall i, j, m \in \{0,\dots,N-1\}\) |
yes |
Truck available times are nonnegative. |
\(v^k \geq 0 \quad \forall k \in \{0,\dots,K-1\}\) |
yes |
Earliest permissible arrival times are nonnegative. |
\(\tau^-_i \geq 0 \quad \forall i \in \{0,\dots,N-1\}\) |
yes |
Latest permissible arrival times are nonnegative. |
\(\tau^+_i \geq 0 \quad \forall i \in \{0,\dots,N-1\}\) |
yes |
Each time window is non-empty: the earliest permissible arrival is no later than the latest. |
\(\tau^-_i \leq \tau^+_i \quad \forall i \in \{0,\dots,N-1\}\) |
yes |
Constraints¶
Each node has exactly one outgoing arc.
\[ \sum_{v=0}^{K+N-1} x_{uv} = 1 \quad \forall u \in \{0,\dots,K+N-1\} \]Each node has exactly one incoming arc.
\[ \sum_{v=0}^{K+N-1} x_{vu} = 1 \quad \forall u \in \{0,\dots,K+N-1\} \]Arrival time at job \(i\) is at least the earliest possible arrival from any truck.
\[ \delta_i - \sum_{k=0}^{K-1} (d^k_{0i} + v^k)\,x_{k,K+i} \ge 0 \quad \forall i \in \{0,\dots,N-1\} \]Arrival time propagation between consecutive jobs via big-M.
\[ \delta_j - \delta_i - M\,x_{K+i,K+j} + (d_{ii}+d_{ij})\,x_{K+i,K+i} \ge d_{ii}+d_{ij}-M \quad \forall i,j \in \{0,\dots,N-1\} \]Time-window feasibility for each job’s pickup.
\[ \tau^-_i \le \delta_i \le \tau^+_i \quad \forall i \in \{0,\dots,N-1\} \]EC3: For each clique \(C\) in the conflict graph, at least \(|C| - |K_C|\) jobs in \(C\) must be rejected.
\[ \sum_{i \in C} x_{K+i,K+i} \ge |C| - |K_C| \quad \forall C \in \mathcal{C}:\,|C|>|K_C| \]
Objective¶
Minimize total travel cost: deadhead from truck homes, inter-job travel, and returns to truck homes.
Formulation e (valid)¶
Note
This is the PDPTW formulation from
v2of Yazdani et al. [2] augmented with acceleration cut EC4.
Parameters¶
Name |
Description |
Type |
Shape |
|---|---|---|---|
|
Number of trucks/vehicles in the fleet |
integer |
scalar |
|
Number of pickup and delivery jobs |
integer |
scalar |
|
Travel time from job \(i\)’s return terminal to job \(j\)’s pickup terminal; \(d_{ii}\) is the loaded time (rejection penalty) of job \(i\) |
continuous |
|
|
Travel time from the home terminal of truck \(k\) to job \(i\)’s pickup terminal |
continuous |
|
|
Travel time from job \(i\)’s return terminal to the home terminal of truck \(k\) |
continuous |
|
|
Time at which each truck becomes available |
continuous |
|
|
Earliest permissible arrival time at each job’s pickup terminal |
continuous |
|
|
Latest permissible arrival time at each job’s pickup terminal |
continuous |
|
Definitions¶
Name |
Description |
Formulation |
|---|---|---|
|
Earliest start time for job \(i\): the maximum of its time window lower bound and the earliest any truck can reach it |
\(\mathrm{EST}_i = \max\!\left(\tau^-_i,\, \min_{k \in \{0,\dots,K-1\}} (v^k + d^k_{0i})\right) \quad \forall i \in \{0,\dots,N-1\}\) |
|
Set of arc pairs \((i,j)\) that are infeasible: serving \(j\) after \(i\) always violates \(j\)’s time window upper bound |
\(\mathcal{A}^- = \{(i,j) \in \{0,\dots,N-1\}^2 : i \ne j \wedge \mathrm{EST}_i + d_{ii} + d_{ij} > \tau^+_j\}\) |
|
Set of incompatible triples \((i,k,j)\): routing \(i \to k \to j\) always violates \(j\)’s time window upper bound |
\(Q = \{(i,k,j) \in \{0,\dots,N-1\}^3 : i \ne k,\, k \ne j,\, (i,k) \notin \mathcal{A}^-,\, (k,j) \notin \mathcal{A}^-,\, \max(\mathrm{EST}_k,\, \mathrm{EST}_i + d_{ii} + d_{ik}) + d_{kk} + d_{kj} > \tau^+_j\}\) |
|
Big-M constant for arrival-time propagation: upper bound on any feasible arrival time |
\(M = 2 \max_{i,j \in \{0,\dots,N-1\}} d_{ij} + \max_i \tau^+_i - \min_j \tau^-_j\) |
Variables¶
Name |
Description |
Type |
Shape / Indices |
|---|---|---|---|
|
\(1\) if arc \((u,v)\) is selected in the routing cycle cover; \(x_{K+i,K+i} = 1\) means job \(i\) is rejected |
binary |
|
|
Arrival time at job \(i\)’s pickup terminal |
continuous |
|
Assumptions¶
Description |
Formulation |
Implicit |
|---|---|---|
Number of trucks is at least one. |
\(K \geq 1\) |
yes |
Number of jobs is at least one. |
\(N \geq 1\) |
yes |
All travel times between jobs are strictly positive. |
\(d_{ij} > 0 \quad \forall i, j \in \{0,\dots,N-1\}\) |
yes |
Triangle inequality for depot-to-job travel: going directly to job \(i\) is no longer than going via job \(j\) first. |
\(d^k_{0i} \leq d^k_{0j} + d_{ji} \quad \forall k \in \{0,\dots,K-1\},\, i, j \in \{0,\dots,N-1\}\) |
yes |
Triangle inequality for job-to-job travel. |
\(d_{ij} \leq d_{im} + d_{mj} \quad \forall i, j, m \in \{0,\dots,N-1\}\) |
yes |
Truck available times are nonnegative. |
\(v^k \geq 0 \quad \forall k \in \{0,\dots,K-1\}\) |
yes |
Earliest permissible arrival times are nonnegative. |
\(\tau^-_i \geq 0 \quad \forall i \in \{0,\dots,N-1\}\) |
yes |
Latest permissible arrival times are nonnegative. |
\(\tau^+_i \geq 0 \quad \forall i \in \{0,\dots,N-1\}\) |
yes |
Each time window is non-empty: the earliest permissible arrival is no later than the latest. |
\(\tau^-_i \leq \tau^+_i \quad \forall i \in \{0,\dots,N-1\}\) |
yes |
Constraints¶
Each node has exactly one outgoing arc.
\[ \sum_{v=0}^{K+N-1} x_{uv} = 1 \quad \forall u \in \{0,\dots,K+N-1\} \]Each node has exactly one incoming arc.
\[ \sum_{v=0}^{K+N-1} x_{vu} = 1 \quad \forall u \in \{0,\dots,K+N-1\} \]Arrival time at job \(i\) is at least the earliest possible arrival from any truck.
\[ \delta_i - \sum_{k=0}^{K-1} (d^k_{0i} + v^k)\,x_{k,K+i} \ge 0 \quad \forall i \in \{0,\dots,N-1\} \]Arrival time propagation between consecutive jobs via big-M.
\[ \delta_j - \delta_i - M\,x_{K+i,K+j} + (d_{ii}+d_{ij})\,x_{K+i,K+i} \ge d_{ii}+d_{ij}-M \quad \forall i,j \in \{0,\dots,N-1\} \]Time-window feasibility for each job’s pickup.
\[ \tau^-_i \le \delta_i \le \tau^+_i \quad \forall i \in \{0,\dots,N-1\} \]EC4: For each triple \((i,k,j)\) where serving \(k\) after \(i\) and \(j\) after \(k\) violates the time window of \(j\), at most one of the two arcs or a rejection of \(k\) can hold.
\[ x_{K+i,K+k} + x_{K+k,K+j} + x_{K+k,K+k} \le 1 \quad \forall (i,k,j) \in \mathcal{Q} \]
Objective¶
Minimize total travel cost: deadhead from truck homes, inter-job travel, and returns to truck homes.
Reformulations¶
Each entry below pairs two formulations of this problem, records whether the second is a reformulation of the first, and gives the parameter map carrying the first formulation’s parameters to the second’s.
a → b (valid)¶
Note
Formulation
bhas the same parameters as formulationa; the map is the identity.
Parameter map
Name |
Definition in terms of |
|---|---|
|
\(K = K\) |
|
\(N = N\) |
|
\(d_{ij} = d_{ij}\) |
|
\(d0_{ij} = d0_{ij}\) |
|
\(dH_{ij} = dH_{ij}\) |
|
\(v_{i} = v_{i}\) |
|
\(\tau^-_i = \tau^-_i\) |
|
\(\tau^+_i = \tau^+_i\) |
a → c (valid)¶
Note
Formulation
chas the same parameters as formulationa; the map is the identity.
Parameter map
Name |
Definition in terms of |
|---|---|
|
\(K = K\) |
|
\(N = N\) |
|
\(d_{ij} = d_{ij}\) |
|
\(d0_{ij} = d0_{ij}\) |
|
\(dH_{ij} = dH_{ij}\) |
|
\(v_{i} = v_{i}\) |
|
\(\tau^-_i = \tau^-_i\) |
|
\(\tau^+_i = \tau^+_i\) |
a → d (valid)¶
Note
Formulation
dhas the same parameters as formulationa; the map is the identity.
Parameter map
Name |
Definition in terms of |
|---|---|
|
\(K = K\) |
|
\(N = N\) |
|
\(d_{ij} = d_{ij}\) |
|
\(d0_{ij} = d0_{ij}\) |
|
\(dH_{ij} = dH_{ij}\) |
|
\(v_{i} = v_{i}\) |
|
\(\tau^-_i = \tau^-_i\) |
|
\(\tau^+_i = \tau^+_i\) |
a → e (valid)¶
Note
Formulation
ehas the same parameters as formulationa; the map is the identity.
Parameter map
Name |
Definition in terms of |
|---|---|
|
\(K = K\) |
|
\(N = N\) |
|
\(d_{ij} = d_{ij}\) |
|
\(d0_{ij} = d0_{ij}\) |
|
\(dH_{ij} = dH_{ij}\) |
|
\(v_{i} = v_{i}\) |
|
\(\tau^-_i = \tau^-_i\) |
|
\(\tau^+_i = \tau^+_i\) |