问题:
车辆配载(VFP)和车辆路径优化(VRP)联合优化问题
目标:
求解整体运输成本最低(引入时间成本转换为运输成本的方法,转为单目标优化)
目标函数:
(1) Z = ∑ k k ∈ K x i j k ( C k + F k ∑ i i ∈ U ∑ j j ∈ U d i j ) + ∑ k k ∈ K ∑ m m ∈ M r m ( h m k − H m ) + I ∑ k k ∈ K max ( ∑ m m ∈ M q m y m k − Q k y m k , 0 ) + I ∑ k k ∈ K max ( ∑ m m ∈ M v m y m k − V k y m k , 0 ) Z = \sum_k^{k\in K}x_{ij}^k(C_k+F_k\sum_i^{i\in U}\sum_j^{j\in U}d_{ij})\\ +\sum_k^{k \in K}\sum_m^{m \in M}r_m(h_m^k-H_m)\\ \qquad\quad+I\sum_k^{k \in K}\max(\sum_m^{m \in M}q_my_m^k-Q_ky_m^k,0)\\ \qquad\quad+I\sum_k^{k \in K}\max(\sum_m^{m \in M}v_my_m^k-V_ky_m^k,0) \tag 1 Z=k∑k∈Kxijk(Ck+Fki∑i∈Uj∑j∈Udij)+k∑k∈Km∑m∈Mrm(hmk−Hm)+Ik∑k∈Kmax(m∑m∈Mqmymk−Qkymk,0)+Ik∑k∈Kmax(m∑m∈Mvmymk−Vkymk,0)(1)
约束条件
(2)
∑
m
m
∈
M
q
m
y
m
k
≤
Q
k
y
m
k
k
∈
K
\sum_m^{m\in M}q_my_m^k\leq Q_ky_m^k\qquad k\in K \tag 2
m∑m∈Mqmymk≤Qkymkk∈K(2)
(3)
∑
m
m
∈
M
v
m
y
m
k
≤
V
k
y
m
k
k
∈
K
\sum_m^{m\in M}v_my_m^k\leq V_ky_m^k\qquad k\in K \tag 3
m∑m∈Mvmymk≤Vkymkk∈K(3)
(4)
∑
i
i
∈
U
x
i
f
m
k
=
∑
i
i
∈
U
x
i
t
m
k
k
∈
K
,
m
∈
M
\sum_i^{i\in U}x_{if_m}^k=\sum_i^{i\in U}x_{it_m}^k\qquad k\in K,m\in M \tag 4
i∑i∈Uxifmk=i∑i∈Uxitmkk∈K,m∈M(4)
(5)
y
m
k
=
0
o
r
1
k
∈
K
,
m
∈
M
y_m^k=0 or 1\qquad k\in K,m\in M \tag 5
ymk=0or1k∈K,m∈M(5)
(6)
x
i
j
k
=
0
o
r
1
k
∈
K
,
i
∈
U
,
j
∈
U
x_{ij}^k=0 or 1\qquad k\in K,i\in U,j\in U \tag 6
xijk=0or1k∈K,i∈U,j∈U(6)
(7)
∑
i
i
∈
E
=
0
k
∈
K
,
j
∈
U
\sum_i^{i\in E}=0\qquad k\in K,j\in U \tag 7
i∑i∈E=0k∈K,j∈U(7)
参数含义:
K
K
K:为“空闲”车辆集合;
k
k
k:为车辆编号,其中
k
∈
K
k\in K
k∈K;
E
E
E:为车辆初始位置集合;
e
k
e_k
ek:为
k
k
k车得初始位置,其中
e
k
∈
E
e_k\in E
ek∈E;
Q
k
Q_k
Qk:为
k
k
k车的额定载重;
V
k
V_k
Vk:为
k
k
k车的额定再放,拉卷货车为鞍座个数,拉板货车为最多可拉钢板张数;
M
M
M:为待匹配订单数;
m
m
m:为订单序号,其中
m
∈
M
m\in M
m∈M;
F
F
F:为订单的取货点位置集合;
f
m
f_m
fm:为m订单的取货点位置,其中
f
m
∈
F
f_m\in F
fm∈F;
T
T
T:为订单的送货点位置集合;
t
m
t_m
tm:为
m
m
m订单的送货点位置,其中
t
m
∈
T
t_m\in T
tm∈T
q
m
q_m
qm:为
m
m
m订单的货物总重量;
v
m
v_m
vm:为
m
m
m订单的货物总件数;
H
m
H_m
Hm:为完成
m
m
m订单所花费的最短时间,即货车以平均速度从取货点到送货点所花事件;
h
m
k
h_m^k
hmk:为
k
k
k车从接收
m
m
m订单任务起到送到其送货点所花时间,含从车辆初始位置到取货点所用时间;
U
U
U:物流节点,包含货车起始位置、取货点位置、送货点位置,即
U
=
E
∪
F
∪
T
U = E \cup F \cup T
U=E∪F∪T;
d
i
j
d_{ij}
dij:从物流节点
i
i
i到
j
j
j的距离,可通过经纬度坐标计算,或按给定运距计算,其中
i
,
j
∈
U
i,j \in U
i,j∈U;
x
i
j
k
x_{ij}^k
xijk:为自定义参数,其中
x
i
j
k
=
{
1
,
k
车从
i
到
j
节点
0
,
其他情况
x_{ij}^k= \begin{cases} 1, & \text{$k$车从$i$到$j$节点} \\ 0, & \text{其他情况} \end{cases}
xijk={1,0,k车从i到j节点其他情况
y
m
k
y_m^k
ymk:为自定义参数,其中
y
m
k
=
{
1
,
k
车运送
m
订单
0
,
其他情况
y_m^k= \begin{cases} 1, & \text{$k$车运送$m$订单} \\ 0, & \text{其他情况} \end{cases}
ymk={1,0,k车运送m订单其他情况
C
k
C_k
Ck:为
k
k
k车均摊到每月的固定费用,
C
k
=
c
k
1
+
c
k
2
+
c
k
3
+
c
k
4
C_k=c_k^1+c_k^2+c_k^3+c_k^4
Ck=ck1+ck2+ck3+ck4,具体如下,
c k 1 c_k^1 ck1为折旧费用, c k 1 = P k 1 D k 1 ⋅ A k c_k^1=\frac{P_k^1}{D_k^1 \cdot A_k} ck1=Dk1⋅AkPk1,其中 P k 1 P_k^1 Pk1为 k k k车的采购费用, D k 1 D_k^1 Dk1为 k k k车的折旧时长, A k A_k Ak为 k k k车的月均出车次数;
c k 2 c_k^2 ck2为保险费用, c k 2 = P k 2 D k 2 ⋅ A k c_k^2=\frac{P_k^2}{D_k^2 \cdot A_k} ck2=Dk2⋅AkPk2,其中 P k 2 P_k^2 Pk2为 k k k车的保险费用, D k 2 D_k^2 Dk2为 k k k车的保险时长, A k A_k Ak为 k k k车的月均出车次数;
c k 3 c_k^3 ck3为人工成本, c k 3 = P k 3 ⋅ n k A k c_k^3=\frac{P_k^3 \cdot n_k}{A_k} ck3=AkPk3⋅nk,其中 P k 3 P_k^3 Pk3为 k k k车的司机月工资, n k n_k nk为 k k k车的司机数量, A k A_k Ak为 k k k车的月均出车次数,如为公用的替班司机,则按比例均摊到每辆车上;
c k 4 c_k^4 ck4 ???;
F k F_k Fk:为 k k k车的均摊到每公里的浮动费用, F k = f k 5 + f k 6 + f k 7 + f k 8 F_k=f_k^5+f_k^6+f_k^7+f_k^8 Fk=fk5+fk6+fk7+fk8,具体如下
f k 5 f_k^5 fk5为燃油费, f k 5 = P k 5 ⋅ p f_k^5=P_k^5 \cdot p fk5=Pk5⋅p,其中 p k 5 p_k^5 pk5为燃油费单价, p p p为 k k k车满载时每公里油耗;
f k 6 f_k^6 fk6为维修保养费, f k 6 = P k 6 D k 6 f_k^6=\frac{P_k^6}{D_k^6} fk6=Dk6Pk6,其中 P k 6 P_k^6 Pk6为维修保养费用, D k 6 D_k^6 Dk6为维修保养间隔里程;
f k 7 f_k^7 fk7为轮胎损耗, f k 7 = P k 7 ⋅ l k D k 7 f_k^7=\frac{P_k^7 \cdot l_k}{D_k^7} fk7=Dk7Pk7⋅lk,其中 P k 7 P_k^7 Pk7为单个轮胎费用, D k 7 D_k^7 Dk7为更换轮胎间隔里程, l k l_k lk为该车每次更换轮胎数;
f k 8 f_k^8 fk8为路桥罚款等, f k 8 = P k 8 l f_k^8=\frac{P_k^8}{l} fk8=lPk8,其中 P k 8 P_k^8 Pk8为过桥费罚款等合计费用, l l l为行驶里程;
r
m
r_m
rm:为时间成本系数,定义时间成本
b
m
=
r
m
(
h
m
k
−
H
m
)
b_m=r_m(h_m^k-H_m)
bm=rm(hmk−Hm),据此将时间成本转换为运输成本;
I
I
I:为超载成本系数,为了避免在求最优解时出现超载情况,定义
I
I
I为很大的一个数。
问题求解
采用算法:遗传算法
适应度定义:
f
=
1
z
f=\frac{1}{z}
f=z1
终止条件:达到以下情形之一
- 适 应 度 方 差 < ε 适应度方差 \lt \varepsilon 适应度方差<ε
- 适 应 度 ÷ 最 好 的 适 应 度 > λ 适应度 \div 最好的适应度 \gt \lambda 适应度÷最好的适应度>λ
- 每 代 的 最 优 解 个 数 = X 每代的最优解个数=X 每代的最优解个数=X
即认为结果是收敛的,终止算法;若代数达到设定上限,则认为不收敛,重新进行求解。
算法流程图
求解代码
略
来源
[1]陆江. 基于虚拟物流平台的多约束配车模型研究[D].北京邮电大学,2018.