问题简介
两级选址路径问题(Two-Echelon Capacitated location-routing problem,2E-LRP)是 近年来物流领域的热点问题,选址路径问题从结构上来说首先要完成选址,而后进行路径规划。在一个多级运输配送系统中,一条完整的运输配送链也被分成多级,货物从仓库运输至枢纽点整合并移交至最终客户,高效利用各枢纽点与车辆容量是降本提效的关键,而将客户点合理分配至每一个客户是枢纽点高效运作的条件之一。
模型建立
基本的两级选址路径问题表述如下:从 备选节点中选出若干个合适的节点作为枢纽点优化配送体系,降低系统成本;一组运输车辆从中心场站(depot)出发,将货物运输码放至枢纽点(satellites),而后由枢纽点委派运输车辆将货物交付给客户(customer),所有运输车辆在完成配送后回到始发节点;每个客户点的坐标位置已知;配送车辆有荷载限制;要求合理配置资源、优化行车路径,以实现目标的优化。
参数变量
车辆参数
Vehicle parameters | description | value |
---|---|---|
κ \kappa κ | 发动机摩擦系数 ( k j / r e v / l kj/rev/l kj/rev/l) | 0.2 |
N N N | 发动机转速 ( r e v / s rev/s rev/s) | 36.67 |
V V V | 发动机排量 ( l l l) | 6.9 |
ϵ \epsilon ϵ | 车辆传动系效率 | 0.45 |
η \eta η | 柴油机效率 | 0.45 |
ω \omega ω | 路缘石重量( k g kg kg) | 5500 |
a a a | 加速度 ( m / s 2 m/s^2 m/s2) | 0 |
v v v | 速度( m / s m/s m/s ) | 15 |
g g g | 重力常数 ( m / s 2 m/s^2 m/s2) | 9.8 |
θ \theta θ | 道路坡度 | 0 |
A A A | 正面表面积 ( m 2 m^2 m2) | 8.0 |
ρ \rho ρ | 空气密度 ( k g / m 3 kg/m^3 kg/m3) | 1.2 |
C d C_d Cd | 空气动力阻力系数 | 0.7 |
C r C_r Cr | 滚动阻力系数 | 0.01 |
C f C_f Cf | 燃料单位成本 | 6.5 |
δ 1 , δ 2 \delta_1,\delta_2 δ1,δ2 | 温室气体特定排放指数参数 |
模型集合
Sets | description |
---|---|
K K K | 车型集合 k ∈ K k\in K k∈K |
M k M_k Mk | 车型k的集合 , m k ∈ M k m_k\in M_k mk∈Mk |
M g M_g Mg | 从配送中心 g ∈ G g\in G g∈G出发的车辆集合 |
G G G | 配送中心集合 g ∈ G g\in G g∈G |
T T T | 中转站集合 t ∈ T t\in T t∈T |
C C C | 客户节点 c ∈ C c\in C c∈C |
N 1 N_1 N1 | 节点集合 N 2 = { G ∪ T } N_2 = \{ G\cup T\} N2={G∪T} |
N 2 N_2 N2 | 节点集合 N 2 = { T ∪ C } N_2 = \{ T\cup C\} N2={T∪C} |
T R TR TR | 货物类型集合 r ∈ T R r\in TR r∈TR |
决策变量
variable | description |
---|---|
y t y_t yt | 中转站$ t\in T$是否开放 |
h t c h_{tc} htc | 客户节点 c ∈ C c\in C c∈C是否由中转站$ t\in T$服务 |
x i j m k k x_{ij}^{m_kk} xijmkk | 车辆 m k m_k mk是否经过弧 { i , j } ∈ N 2 \{i,j\}\in {N}_{2} {i,j}∈N2 |
u i j m g u_{ij}^{m_g} uijmg | 车辆 m g m_g mg是否离开 g g g经过弧 { i , j } ∈ N 1 \{i,j\}\in {N}_{1} {i,j}∈N1 |
目标函数计算
燃油消耗率 ( F F F)
F ≈ ( κ N V + P t ϵ + P a ) U η F \approx \left( \kappa NV + \frac{P_t}{\epsilon} + P_a \right) \frac{U}{\eta} F≈(κNV+ϵPt+Pa)ηU
其中:
- κ \kappa κ:发动机摩擦系数
- N N N:发动机转速
- V V V:发动机排量
- ϵ \epsilon ϵ:车辆传动系统效率
- P a P_a Pa:与发动机运转损失和车辆附加设备相关的发动机功率需求
- η \eta η:柴油发动机效率
- U U U:与一些包括 N N N 在内的常数相关的值
- P t P_t Pt:牵引功率总需求(单位:瓦)
假设 P a = 0 P_a = 0 Pa=0,则:
F ≈ ( κ N V + P t ϵ ) U η F \approx \left( \kappa NV + \frac{P_t}{\epsilon} \right) \frac{U}{\eta} F≈(κNV+ϵPt)ηU
牵引功率总需求 P t P_t Pt
P t = ( M a + M g sin θ + 0.5 C d A ρ v 2 + M g C r cos θ ) v 1000 ( kW ) P_t = \frac{(Ma + Mg\sin\theta + 0.5C_dA\rho v^2 + MgC_r\cos\theta)v}{1000} \quad (\text{kW}) Pt=1000(Ma+Mgsinθ+0.5CdAρv2+MgCrcosθ)v(kW)
其中:
- M M M:车辆质量(包含空载质量和载荷,单位:kg)
- v v v:速度
- a a a:加速度
- g g g:重力加速度( 9.81 m/s 2 9.81\ \text{m/s}^2 9.81 m/s2)
- θ \theta θ:道路倾角
- A A A:车辆正面投影面积
- ρ \rho ρ:空气密度
- C r C_r Cr:滚动阻力系数
- C d C_d Cd:空气阻力系数
假设参数
α = 0.5 C d A ρ v 2 = 0.5 × 0.7 × 8.0 × 1.2 × 1 5 2 = 756 \alpha = 0.5C_dA\rho v^2 = 0.5 \times 0.7 \times 8.0 \times 1.2 \times 15^2 = 756 α=0.5CdAρv2=0.5×0.7×8.0×1.2×152=756
β = a + g sin θ + g C r cos θ = 0 + 0 + 9.8 × 0.01 = 0.098 \beta = a + g\sin\theta + gC_r\cos\theta = 0 + 0 + 9.8 \times 0.01 = 0.098 β=a+gsinθ+gCrcosθ=0+0+9.8×0.01=0.098
P t = M β v + α v = 1.47 M + 11340 P_t = M\beta v + \alpha v = 1.47M + 11340 Pt=Mβv+αv=1.47M+11340
其中:
M = ω + f i j = 5500 + f i j M = \omega + f_{ij} = 5500 + f_{ij} M=ω+fij=5500+fij
燃油消耗率公式
令:
γ = 1 1000 ϵ η = 1 1000 × 0.45 × 0.45 = 0.005 \gamma = \frac{1}{1000\epsilon\eta} = \frac{1}{1000 \times 0.45 \times 0.45} = 0.005 γ=1000ϵη1=1000×0.45×0.451=0.005
F = U ( κ N V + M β v γ + α v γ ) F = U \left( \kappa NV + M\beta v\gamma + \alpha v\gamma \right) F=U(κNV+Mβvγ+αvγ)
温室气体排放速率
温室气体(如 CO、HC 或 NOx)的瞬时排放速率 E E E(单位:克每秒, k g / s kg/s kg/s):
E = δ 1 F + δ 2 E = \delta_1F + \delta_2 E=δ1F+δ2
总燃油消耗 F t o t a l F_{total} Ftotal
在距离 d d d 上的总燃油消耗:
F t o t a l = U ( κ N V d v + M β γ d + α γ d ) F_{total} = U \left( \frac{\kappa NVd}{v} + M\beta\gamma d + \alpha\gamma d \right) Ftotal=U(vκNVd+Mβγd+αγd)
单位换算后:
F t o t a l = 0.025 ( 0.2 × 36.67 × 6.9 d 15 + ( 5500 + f i j ) × 0.098 × 0.005 d + 756 × 0.005 d ) F_{total} = 0.025 \left( 0.2 \times 36.67 \times 6.9 \frac{d}{15} + (5500 + f_{ij}) \times 0.098 \times 0.005d + 756 \times 0.005d \right) Ftotal=0.025(0.2×36.67×6.915d+(5500+fij)×0.098×0.005d+756×0.005d)
= 0.025 ( 3.37364 + 0.00049 ( 5500 + f i j ) + 3.78 ) d = 0.025 \left( 3.37364 + 0.00049(5500 + f_{ij}) + 3.78 \right)d =0.025(3.37364+0.00049(5500+fij)+3.78)d
总运输成本
T C = c f F t o t a l TC = c_fF_{total} TC=cfFtotal
总排放量
E C = δ 1 F t o t a l + δ 2 EC = \delta_1F_{total} + \delta_2 EC=δ1Ftotal+δ2
模型建立
∑ i ∈ N 2 ∑ m k ∈ M k x i j m k k = 1 ∀ j ∈ C , k ∈ K \sum\limits_{i\in {{N}{2}}}{\sum\limits{{{m}{k}}\in {{M}{k}}}{x_{ij}^{{{m}_{k}}k}}}=1\ \ \ \forall j\in C,\ k\in K i∈N2∑mk∈Mk∑xijmkk=1 ∀j∈C, k∈K
∑ i ∈ N 2 x i j m k k = ∑ i ∈ N 2 x j i m k k ∀ j ∈ N 2 , m k ∈ M k , k ∈ K \sum\limits_{i\in {{N}{2}}}{x{ij}^{{{m}{k}}k}}=\sum\limits{i\in {{N}{2}}}{x{ji}^{{{m}{k}}k}}\ \ \ \forall j\in {{N}{2}},\ {{m}{k}}\in {{M}{k}},\ k\in K i∈N2∑xijmkk=i∈N2∑xjimkk ∀j∈N2, mk∈Mk, k∈K
x i j m k k ≤ h i j ∀ i ∈ T , j ∈ C , m k ∈ M k , k ∈ K x_{ij}^{{{m}{k}}k}\le {{h}{ij}}\ \ \ \forall i\in T,\ j\in C,\ {{m}{k}}\in {{M}{k}},k\in K xijmkk≤hij ∀i∈T, j∈C, mk∈Mk,k∈K
x j i m k k ≤ h i j ∀ i ∈ T , j ∈ C , m k ∈ M k , k ∈ K x_{ji}^{m_kk}\le h_{ij}\ \ \ \forall i\in T,\ j\in C,\ m_k\in M_k,\ k\in K xjimkk≤hij ∀i∈T, j∈C, mk∈Mk, k∈K
x i j m k k + h i p + ∑ q ∈ T , q ≠ p h j q ≤ 2 ∀ ( i , j ) ∈ C , p ∈ T x_{ij}^{m_kk}+h_{ip}+\sum_{q\in T,\ q\ne p}h_{jq}\le 2\ \ \ \forall (i,j)\in C,\ p\in T xijmkk+hip+∑q∈T, q=phjq≤2 ∀(i,j)∈C, p∈T
∑ i ∈ T ∑ j ∈ C x i j m k k ≤ 1 ∀ m k ∈ M k , k ∈ K \sum_{i\in T}\sum_{j\in C}x_{ij}^{m_kk}\le 1\ \ \ \forall m_k\in M_k,\ k\in K ∑i∈T∑j∈Cxijmkk≤1 ∀mk∈Mk, k∈K
∑ i ∈ N 2 ∑ j ∈ C d e j r x i j m k k ≤ C A P k r ∀ r ∈ T R , m k ∈ M k , k ∈ K n o n e e d \sum_{i\in N_2}\sum_{j\in C}de_{jr}x_{ij}^{m_kk}\le CAP_{kr}\ \ \ \forall r\in TR,\ m_k\in M_k,\ k\in K\\ no\ need ∑i∈N2∑j∈Cdejrxijmkk≤CAPkr ∀r∈TR, mk∈Mk, k∈Kno need
∑ i ∈ C ∑ r ∈ T R h t i d e i r ≤ C A P t y t ∀ t ∈ T \sum\limits_{i\in C}{\sum\limits_{r\in TR}{{{h}{ti}}}}d{{e}{ir}}\le CA{{P}{t}}{{y}{t}}\ \ \forall t\in T i∈C∑r∈TR∑htideir≤CAPtyt ∀t∈T
∑ i ∈ N 2 ∑ m k ∈ M k ∑ k ∈ K f j i r m k k − ∑ i ∈ N 2 ∑ m k ∈ M k ∑ k ∈ K f i j r m k k = d e j r ∀ j ∈ C , r ∈ T R \sum_{i\in N_2}\sum_{m_k\in M_k}\sum_{k\in K}f_{jir}^{m_kk} - \sum_{i\in N_2}\sum_{m_k\in M_k}\sum_{k\in K} f_{ijr}^{m_kk}=de_{jr}\ \ \ \forall j\in C,\ r\in TR ∑i∈N2∑mk∈Mk∑k∈Kfjirmkk−∑i∈N2∑mk∈Mk∑k∈Kfijrmkk=dejr ∀j∈C, r∈TR
∑ j ∈ C ∑ m k ∈ M k ∑ k ∈ K ∑ r ∈ T R f i j r m k k = 0 ∀ i ∈ T \sum_{j\in C}\sum_{m_k\in M_k}\sum_{k\in K}\sum_{r\in TR}f_{ijr}^{m_kk}=0\ \ \ \forall i\in T ∑j∈C∑mk∈Mk∑k∈K∑r∈TRfijrmkk=0 ∀i∈T
f i j r m k k ≤ C A P k r x i j m k k ∀ ( i , j ) ∈ N 2 , r ∈ T R k , m k ∈ M k , k ∈ K f_{ijr}^{m_kk}\le CAP_{kr}x_{ij}^{m_kk}\ \ \ \forall (i,j)\in N_2,\ r\in TR_k, m_k\in M_k,\ k\in K fijrmkk≤CAPkrxijmkk ∀(i,j)∈N2, r∈TRk,mk∈Mk, k∈K
∑ t ∈ T h t c = 1 ∀ c ∈ C \sum_{t\in T}h_{tc}=1\ \ \ \forall c\in C ∑t∈Thtc=1 ∀c∈C
∑ ( i , j ) ∈ N 2 x i j m k k d i j / v + ∑ i ∈ N 2 ∑ j ∈ C S T j x i j m k k ≤ M T ∀ m k ∈ M k , k ∈ K \sum_{(i,j)\in N_2}x_{ij}^{m_kk}d_{ij}/v+\sum_{i\in N_2}\sum_{j\in C}ST_jx_{ij}^{m_kk}\le MT\ \ \ \forall m_k\in M_k,\ k\in K ∑(i,j)∈N2xijmkkdij/v+∑i∈N2∑j∈CSTjxijmkk≤MT ∀mk∈Mk, k∈K
∑ i ∈ N 1 ∑ m g ∈ M g u i j m g = y j ∀ j ∈ T , g ∈ G \sum\limits_{i\in N_1}\sum\limits_{m_g\in M_g}u_{ij}^{m_g}={{y}_{\text{j}}}\quad\forall j\in T,\ g\in G i∈N1∑mg∈Mg∑uijmg=yj∀j∈T, g∈G
∑ i ∈ N 1 u i j m g = ∑ i ∈ N 1 u j i m g ∀ j ∈ T , g ∈ G , m g ∈ M g \sum_{i\in N_1}u_{ij}^{m_g}=\sum_{i\in N_1}u_{ji}^{m_g}\ \ \ \forall j\in T,g\in G,m_g\in M_g ∑i∈N1uijmg=∑i∈N1ujimg ∀j∈T,g∈G,mg∈Mg
$\sum_{j\in T}u_{gj}^{m_g}\le 1\ \ \ \forall g\in G,m_g\in M_g
$
d e j r = ∑ i ∈ C h j i d e i r ∀ r ∈ T R , j ∈ T de_{jr}=\sum_{i\in C}h_{ji}de_{ir}\ \ \ \forall r\in TR,\ j\in T dejr=∑i∈Chjideir ∀r∈TR, j∈T
∑ i ∈ N 1 ∑ g ∈ G ∑ m g ∈ M g d i s g r e j i r m g − ∑ i ∈ N 1 ∑ g ∈ G ∑ m g ∈ M g d i s g r e i j r m g = d e j r ∀ j ∈ T , r ∈ T R \sum_{i\in N_1}\sum_{g\in G}\sum_{m_g\in M_g}dis_{gr}e_{jir}^{m_g}-\sum_{i\in N_1}\sum_{g\in G}\sum_{m_g\in M_g} dis_{gr}e_{ijr}^{m_g}=de_{jr}\ \ \ \forall j\in T,\ r\in TR ∑i∈N1∑g∈G∑mg∈Mgdisgrejirmg−∑i∈N1∑g∈G∑mg∈Mgdisgreijrmg=dejr ∀j∈T, r∈TR
∑ j ∈ T ∑ m g ∈ M g ∑ r ∈ T R e i j r m g = 0 ∀ i ∈ G \sum_{j\in T}\sum_{m_g\in M_g}\sum_{r\in TR}e_{ijr}^{m_g}=0\ \ \ \forall i\in G ∑j∈T∑mg∈Mg∑r∈TReijrmg=0 ∀i∈G
e i j r m g ≤ C A P m u i j m g ∀ ( i , j ) ∈ N 1 , g ∈ G , m g ∈ M g , r ∈ T R e_{ijr}^{m_g}\le CAP_mu_{ij}^{m_g}\quad\forall (i,j)\in N_1,\ g\in G,\ m_g\in M_g,\ r\in TR eijrmg≤CAPmuijmg∀(i,j)∈N1, g∈G, mg∈Mg, r∈TR
∑ i ∈ G , i ≠ g ∑ j ∈ T u i j m g = 0 ∀ g ∈ G , m g ∈ M g \sum_{i\in G,i\ne g}\sum_{j\in T}u_{ij}^{m_g}= 0\quad\forall g\in G,m_g\in M_g ∑i∈G,i=g∑j∈Tuijmg=0∀g∈G,mg∈Mg
约束(3)表明每个商品类型在每个客户点只能被访问一次,约束(4) 是度约束。约束(5)-(7) 表明车辆从同一个中转站出发并最终返回该中转站,且所有被访问的客户点均分配给同一中转站。其中,约束(7) 意味着如果存在从点 i i i 到点 j j j 的路径,则 i i i 和 j j j 必须分配到同一个中转站。约束(8) 要求每辆车最多只能从一个中转站出发。约束(9) 和 (10) 是容量约束,约束(9) 表明访问的客户点收集的货物总量不得超过车辆容量,约束(10) 表明如果中转站 t t t 未开启,则不会有客户点分配到该中转站。约束(11)-(13) 是流量约束,其中,约束(11) 强制所有客户点的需求必须完全满足,约束(12)表示中转站的流出量为0,约束(13)将变量 x x x和 f f f联系起来,意味着如果车辆 m k m_k mk没有经过路径 i j ij ij,则流量 f f f为 0。约束(14)表明每个客户点只能分配给一个中转站。约束(15)是时间约束,意味着总行驶时间和服务时间不得超过预先设定的要求。
约束(16)表明如果中转站 j j j 开启,则配送中心会派一辆车访问该中转站一次。约束(17) 是度约束。约束(18) 要求每辆车最多只能从一个配送中心出发。约束(19) 确定了中转站的流量平衡。约束(20)-(22)与约束(11)-(13)属于同一类型的约束。
若有运筹优化建模及算法定制需求,欢迎联系我们私聊沟通