取送货问题及其变体
广义取送货问题(General Pickup and Delivery Problems,GPDP)可以分为两类:
-
Vehicle Routing Problems with
Backhauls,VRPB:从配送中心(depot)取货运输货物到客户点,再从客户点取货运输至配送中心交付(backhoul)。transportation of goods from the depot to linehaul customers and from backhaul customers to the depot
-
Vehicle Routing Problems with Pickups and Deliveries
,VRPPD:货物在取货点和送货点之间流转。按照取货点和交货点是否是成对的,可以进一步分为两类:- unpaired:对于货物,从某一取货点取货,可以交付至任意送货点。如果只有一辆车,那么问题简化为Pickup and Delivery Traveling Salesman Problem,PDTSP。如果是多辆车,Pickup and Delivery Vehicle Routing Problem,PDVRP。
- paired:对于某一订单,从某一指定取货点取货,只能交付至指定的送货点。如果研究的对象是货物,则有Single Pickup and Deleivery Problem,SPDP(一辆车)和PDP两个问题。如果研究的对象是乘客,则有e Dial-A-Ride Problem,DARP问题,对于一辆车的情况为the single vehicle case of the DARP as SDARP.
本文研究的取送货问题为PDP,如图:
接下来,本文所说的取送货问题,均为同车型,多辆车的Pickup and Delivery Problem,Homogeneous Multi vehicle pickup and delivery problem用PDP表示。
Parragh S N, Doerner K F, Hartl R F. A survey on pickup and delivery problems: Part II: Transportation between pickup and delivery locations[J/OL]. Journal für Betriebswirtschaft, 2008, 58(2): 81-117. https://doi.org/10.1007/s11301-008-0036-4.
取送货问题数学模型(Homogeneous Multi vehicle pickup and delivery problem formulations)
参数
- n n n:取货点数量。
- n ~ \tilde{n} n~:送货点数量,因为这里是Paired PDP问题,故 n = n ~ n=\tilde{n} n=n~。
- P P P:取货点集合, P = { 1 , . . . , n } P = \{1,..., n\} P={1,...,n}
- D D D:送货点集合, D = { n + 1 , . . . , n + n ~ } D = \{n +1,..., n +\tilde{n}\} D={n+1,...,n+n~}
- K K K:车辆集合
决策变量
- x i j k x_{ijk} xijk:车辆路径决策变量, x i j k = 1 x_{ijk}=1 xijk=1,车辆 k k k经过弧 ( i , j ) (i,j) (i,j);
- Q i k Q_{i}^{k} Qik:车辆 k k k离开节点 i i i时的装载量;
- B i k B_{i}^{k} Bik:车辆 k k k服务 i i i点的开始时刻;
混合整数规划模型
min
∑
k
∈
K
∑
(
i
,
j
)
∈
A
c
i
j
k
x
i
j
k
subject to.
∑
k
∈
K
∑
j
:
(
i
,
j
)
∈
A
x
i
j
k
=
1
∀
i
∈
P
∪
D
,
∑
j
:
(
0
,
j
)
∈
A
x
0
j
k
=
1
∀
k
∈
K
,
∑
i
:
(
i
,
n
+
n
~
+
1
)
∈
A
x
i
,
n
+
n
~
+
1
k
=
1
∀
k
∈
K
,
∑
i
:
(
i
,
j
)
∈
A
x
i
j
k
−
∑
i
:
(
j
,
i
)
∈
A
x
j
i
k
=
0
∀
j
∈
P
∪
D
,
k
∈
K
,
x
i
j
k
=
1
⇒
B
j
k
≥
B
i
k
+
d
i
+
t
i
j
k
∀
(
i
,
j
)
∈
A
,
k
∈
K
,
x
i
j
k
=
1
⇒
Q
j
k
=
Q
i
k
+
q
j
∀
(
i
,
j
)
∈
A
,
k
∈
K
,
max
{
0
,
q
i
}
≤
Q
i
k
≤
min
{
C
k
,
C
k
+
q
i
}
∀
i
∈
V
,
k
∈
K
,
e
i
≤
B
i
k
≤
l
i
∀
i
∈
V
,
k
∈
K
,
B
n
+
n
~
+
1
k
−
B
0
k
≤
T
k
∀
k
∈
K
,
x
i
j
k
∈
{
0
,
1
}
∀
(
i
,
j
)
∈
A
,
k
∈
K
.
\begin{align} \min \quad & \sum_{k\in K}\sum_{(i,j) \in A} c_{ij}^k x_{ij}^k \\ \text{subject to.} \quad &\sum_{k \in K} \sum_{j:(i, j) \in A} x_{i j}^{k} =1 & \forall i \in P \cup D, \\ &\sum_{j:(0, j) \in A} x_{0 j}^{k}=1 & \forall k \in K, \\ &\sum_{i:(i, n+\tilde{n}+1) \in A} x_{i, n+\tilde{n}+1}^{k} =1 & \forall k \in K, \\ &\sum_{i:(i, j) \in A} x_{i j}^{k}-\sum_{i:(j, i) \in A} x_{j i}^{k} =0 &\forall j \in P \cup D, k \in K, \\ &x_{i j}^{k}=1 \Rightarrow B_{j}^{k} \geq B_{i}^{k}+d_{i}+t_{i j}^{k} & \forall(i, j) \in A, k \in K, \\ &x_{i j}^{k}=1 \Rightarrow Q_{j}^{k} =Q_{i}^{k}+q_{j} & \forall(i, j) \in A, k \in K, \\ &\max \left\{0, q_{i}\right\} \leq Q_{i}^{k} \leq \min \left\{C^{k}, C^{k}+q_{i}\right\} & \forall i \in V, k \in K, \\ & e_i \leq B_i^k \leq l_i & \forall i \in V, k \in K,\\ & B_{n+\tilde{n}+1}^k -B_{0}^k \leq T^k &\forall k \in K,\\ &x_{i j}^{k} \in\{0,1\} & \forall(i, j) \in A, k \in K . \end{align}
minsubject to.k∈K∑(i,j)∈A∑cijkxijkk∈K∑j:(i,j)∈A∑xijk=1j:(0,j)∈A∑x0jk=1i:(i,n+n~+1)∈A∑xi,n+n~+1k=1i:(i,j)∈A∑xijk−i:(j,i)∈A∑xjik=0xijk=1⇒Bjk≥Bik+di+tijkxijk=1⇒Qjk=Qik+qjmax{0,qi}≤Qik≤min{Ck,Ck+qi}ei≤Bik≤liBn+n~+1k−B0k≤Tkxijk∈{0,1}∀i∈P∪D,∀k∈K,∀k∈K,∀j∈P∪D,k∈K,∀(i,j)∈A,k∈K,∀(i,j)∈A,k∈K,∀i∈V,k∈K,∀i∈V,k∈K,∀k∈K,∀(i,j)∈A,k∈K.
- 目标函数(1)最小化总体行驶成本;
- 约束(2)保证了每个客户点都被访问了一次;
- 约束(3-5)分别保证了每辆车必须从始发站出发,到达并离开每个客户点,并最终回到终点站;
- 约束(6)消除子回路,
- 约束(7-8)车辆容量约束
【注】约束(6)和(7)是非线性的,可以用大M进行线性化
参考:
Parragh S N, Doerner K F, Hartl R F. A survey on pickup and delivery problems: Part II: Transportation between pickup and delivery locations[J/OL]. Journal für Betriebswirtschaft, 2008, 58(2): 81-117. https://doi.org/10.1007/s11301-008-0036-4.