现有广泛使用的构造性启发式方法,例如众所周知的 Saving 方法或 GAP 方法,无法考虑所有施加的约束(例如异构队列、订单兼容性、时间窗口、访问节点的优先约束等)。此外,元启发式算法中使用的约束处理方法在消除不可行性方面效率低下,因为有大量的约束,其数量随着问题大小的增加而增加。因此,这些算法的运算符的设计方式应使所有约束都由表示方案或
表 1.文献和当前研究摘要。
裁判。
问题
个案研究
# 仓库
分流负载
# 产品
Het.或 Hom。车辆
TW
与产品相关的约束
Constraint
Related to
Products| Constraint |
| :--- |
| Related to |
| Products |
配方
解决方法
Ropke、Cordeau 和 Laporte (2007)
PDPTW
-
单
不允许
单
磡。
✓\checkmark
-
✓\checkmark
分支和切割算法
Ai 和 Kachitvichyanukul (2009)
VRPSPD
-
单
不允许
单
磡。
✓\checkmark
-
✓\checkmark
PSO
Hosny 和 Mumford (2010)
PDPTW
-
单
不允许
单
磡。
✓\checkmark
-
✓\checkmark
GA、SA、HC
Baldacci、Bartolini 和 Mingozzi (2011)
PDPTW
-
单
不允许
单
磡。
✓\checkmark
-
✓\checkmark
一种基于集合分区的算法,通过割平面得到加强
Wang 和 Chen (2012)
SDPPTW
-
单
不允许
单
Het.
✓\checkmark
-
✓\checkmark
GA
Goksal、Karaoglan 和 Altiparmak (2013)
VRPSPD
-
单
不允许
单
Het.
-
-
-
混合 PSO
Belmecheri 等人 (2013)
HVRPMBTW
-
单
不允许
单
Het.
✓\checkmark
-
✓\checkmark
PSO
Yu 和 Lin (2014)
LRPSPD
-
倍数
不允许
单
磡。
-
-
-
多启动 SA
Salhi、Imran 和 Wassan (2014)
MDHFVRP
-
倍数
不允许
单
Het.
-
-
✓\checkmark
VNS
Chen, Li, and Liu (2014年)
UPDPSL
-
单
允许
倍数
磡。
✓\checkmark
-
✓\checkmark
VNS
Cherkesly 等人(2015 年)
PDPTWL
-
单
不允许
单
Het.
✓\checkmark
✓\checkmark
✓\checkmark
分支价格和切割算法
Cherkesly、Desaulniers 和 Laporte (2015)
PDPTWL
-
单
不允许
单
磡。
✓\checkmark
✓\checkmark
-
GA
Benavent 等人 (2015)
PDPLT
-
单
不允许
单
磡。
-
✓\checkmark
✓\checkmark
分支和切割算法
马哈茂迪和周 (2016)
VRPPDTW
-
单
不允许
倍数
Het.
✓\checkmark
✓\checkmark
✓\checkmark
拉格朗日弛豫程序
Ting 等人 (2017)
MVSPDP
-
单
不允许
单
磡。
-
-
✓\checkmark
TS、GA、SS
Männel 和 Bortfeldt (2017)
3L-PDP
-
单
不允许
单
磡。
✓\checkmark
✓\checkmark
-
混合包装路由算法
Veenstra 等人 (2017)
PDPTWHO
-
单
不允许
单
磡。
✓\checkmark
✓\checkmark
✓\checkmark
分支价格和切割算法
Soleimani、Chaharlang 和 Ghaderi (2018)
GVRP
✓\checkmark
倍数
不允许
倍数
Het.
-
-
✓\checkmark
-
Bettinelli 等人 (2018)
MT-PDTWS
-
单
不允许
单
磡。
✓\checkmark
-
✓\checkmark
分支和切割和价格算法
Reil、Bortfeldt 和 Mönch (2018)
3L-VRPBTW
-
单
不允许
单
磡。
✓\checkmark
✓\checkmark
-
先打包、先布线、后进货的方法
当前研究
循环取货问题
✓\checkmark
虚拟
允许大订单
倍数
Het.
✓\checkmark
✓\checkmark
✓\checkmark
基于相似性的 First-Fit/Best-Fit 和 GES 算法
3L-PDP:具有 3 维加载约束的取货和配送问题
PDPTW:时间窗口的取件和递送问题
3L-VRPBTW:回程和时间窗口的车辆路径问题
PDPTWL:时间窗口和加载约束的取件和交货问题
GVRP:绿色车辆路径问题
SDPPTW:时间窗口的同时送达和取件问题
HVRPMBTW:具有异构队列、混合回程和时间窗口的 VRP
UPDPSL:分担货物的未成对取货和送货问题
LRPSPD:同时取货和送货的位置路由问题
VRPPDTW:具有取件和配送以及时间窗口的 VRP
MT-PDTWS:时间窗口和同步的多程取货和配送问题
VRPSPD:同时取货和配送的车辆路径问题
MVSPDP:多车辆选择性取货和配送问题
SA:模拟退火
PDPLT:具有 LIFO 约束和最长时间的多车取货和交付问题
SS:分散搜索
ALNS:自适应大邻域搜索
TS: 禁忌搜索
GA:遗传算法
VND:可变邻里血统
GES:分组进化策略
VNS:可变邻域搜索
GRASP:贪婪随机自适应搜索程序
PSO:粒子群优化算法
HC:Hill Climbing 启发式
Ref. Problem Case Study # of Depots Split Load # of Products Het. or Hom. Vehicles TW "Constraint
Related to
Products" Formulation Solution Method
Ropke, Cordeau, and Laporte (2007) PDPTW - Single Not Allowed Single Hom. ✓ - ✓ Branch-and-cut algorithms
Ai and Kachitvichyanukul (2009) VRPSPD - Single Not Allowed Single Hom. ✓ - ✓ PSO
Hosny and Mumford (2010) PDPTW - Single Not Allowed Single Hom. ✓ - ✓ GA, SA, HC
Baldacci, Bartolini, and Mingozzi (2011) PDPTW - Single Not Allowed Single Hom. ✓ - ✓ A set-partitioning-based algorithm strengthened by cuts
Wang and Chen (2012) SDPPTW - Single Not Allowed Single Het. ✓ - ✓ GA
Goksal, Karaoglan, and Altiparmak (2013) VRPSPD - Single Not Allowed Single Het. - - - Hybrid PSO
Belmecheri et al. (2013) HVRPMBTW - Single Not Allowed Single Het. ✓ - ✓ PSO
Yu and Lin (2014) LRPSPD - Multiple Not Allowed Single Hom. - - - Multi-start SA
Salhi, Imran, and Wassan (2014) MDHFVRP - Multiple Not Allowed Single Het. - - ✓ VNS
Chen, Li, and Liu (2014) UPDPSL - Single Allowed Multiple Hom. ✓ - ✓ VNS
Cherkesly et al. (2015) PDPTWL - Single Not Allowed Single Het. ✓ ✓ ✓ Branch-price-and-cut algorithms
Cherkesly, Desaulniers, and Laporte (2015) PDPTWL - Single Not Allowed Single Hom. ✓ ✓ - GA
Benavent et al. (2015) PDPLT - Single Not Allowed Single Hom. - ✓ ✓ Branch-and-cut algorithm
Mahmoudi and Zhou (2016) VRPPDTW - Single Not Allowed Multiple Het. ✓ ✓ ✓ A Lagrangian relaxation procedure
Ting et al. (2017) MVSPDP - Single Not Allowed Single Hom. - - ✓ TS, GA, SS
Männel and Bortfeldt (2017) 3L-PDP - Single Not Allowed Single Hom. ✓ ✓ - A hybrid packing-routing algorithm
Veenstra et al. (2017) PDPTWHO - Single Not Allowed Single Hom. ✓ ✓ ✓ Branch-price-and-cut algorithms
Soleimani, Chaharlang, and Ghaderi (2018) GVRP ✓ Multiple Not Allowed Multiple Het. - - ✓ -
Bettinelli et al. (2018) MT-PDTWS - Single Not Allowed Single Hom. ✓ - ✓ Branch-and-cut-and-price algorithm
Reil, Bortfeldt, and Mönch (2018) 3L-VRPBTW - Single Not Allowed Single Hom. ✓ ✓ - A packing-first-routing-second approach
The current study Milk-run Problem ✓ Dummy Allowed for big orders Multiple Het. ✓ ✓ ✓ Similarity-Based First-Fit/Best-Fit and GES algorithms
3L-PDP: Pickup and Delivery Problem with 3-Dimensional Loading constraints PDPTW: Pickup and Delivery Problem with Time Windows
3L-VRPBTW: Vehicle Routing Problem with Backhauls and Time Windows PDPTWL: Pickup and Delivery Problem with Time Windows and Loading constraints
GVRP: Green Vehicle Routing Problem SDPPTW: Simultaneous Delivery and Pickup Problem with Time Windows
HVRPMBTW: VRP with Heterogeneous fleet, Mixed Backhauls, and Time Windows UPDPSL: Unpaired Pickup and Delivery Problem with Split Loads
LRPSPD: Location Routing Problem with Simultaneous Pickup and Delivery VRPPDTW: VRP with Pickup and Delivery and Time Windows
MT-PDTWS: Multi-Trip Pickup and Delivery problem with Time Windows and Synchronisation VRPSPD: Vehicle Routing Problem with Simultaneous Pickup and Delivery
MVSPDP: Multi-Vehicle Selective Pickup and Delivery Problem SA: Simulated Annealing
PDPLT: Multiple Vehicle Pickup and Delivery Problem with LIFO constraints and Maximum Time SS: Scatter Search
ALNS: Adaptive Large Neighbourhood Search TS: Tabu Search
GA: Genetic Algorithm VND: Variable Neighbourhood Descent
GES: Grouping Evolution Strategy VNS: Variable Neighbourhood Search
GRASP: Greedy Randomised Adaptive Search Procedure PSO: Particle Swarm Optimisation algorithm
HC: Hill Climbing heuristic | Ref. | Problem | Case Study | # of Depots | Split Load | # of Products | Het. or Hom. Vehicles | TW | Constraint <br> Related to <br> Products | Formulation | Solution Method |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| Ropke, Cordeau, and Laporte (2007) | PDPTW | - | Single | Not Allowed | Single | Hom. | $\checkmark$ | - | $\checkmark$ | Branch-and-cut algorithms |
| Ai and Kachitvichyanukul (2009) | VRPSPD | - | Single | Not Allowed | Single | Hom. | $\checkmark$ | - | $\checkmark$ | PSO |
| Hosny and Mumford (2010) | PDPTW | - | Single | Not Allowed | Single | Hom. | $\checkmark$ | - | $\checkmark$ | GA, SA, HC |
| Baldacci, Bartolini, and Mingozzi (2011) | PDPTW | - | Single | Not Allowed | Single | Hom. | $\checkmark$ | - | $\checkmark$ | A set-partitioning-based algorithm strengthened by cuts |
| Wang and Chen (2012) | SDPPTW | - | Single | Not Allowed | Single | Het. | $\checkmark$ | - | $\checkmark$ | GA |
| Goksal, Karaoglan, and Altiparmak (2013) | VRPSPD | - | Single | Not Allowed | Single | Het. | - | - | - | Hybrid PSO |
| Belmecheri et al. (2013) | HVRPMBTW | - | Single | Not Allowed | Single | Het. | $\checkmark$ | - | $\checkmark$ | PSO |
| Yu and Lin (2014) | LRPSPD | - | Multiple | Not Allowed | Single | Hom. | - | - | - | Multi-start SA |
| Salhi, Imran, and Wassan (2014) | MDHFVRP | - | Multiple | Not Allowed | Single | Het. | - | - | $\checkmark$ | VNS |
| Chen, Li, and Liu (2014) | UPDPSL | - | Single | Allowed | Multiple | Hom. | $\checkmark$ | - | $\checkmark$ | VNS |
| Cherkesly et al. (2015) | PDPTWL | - | Single | Not Allowed | Single | Het. | $\checkmark$ | $\checkmark$ | $\checkmark$ | Branch-price-and-cut algorithms |
| Cherkesly, Desaulniers, and Laporte (2015) | PDPTWL | - | Single | Not Allowed | Single | Hom. | $\checkmark$ | $\checkmark$ | - | GA |
| Benavent et al. (2015) | PDPLT | - | Single | Not Allowed | Single | Hom. | - | $\checkmark$ | $\checkmark$ | Branch-and-cut algorithm |
| Mahmoudi and Zhou (2016) | VRPPDTW | - | Single | Not Allowed | Multiple | Het. | $\checkmark$ | $\checkmark$ | $\checkmark$ | A Lagrangian relaxation procedure |
| Ting et al. (2017) | MVSPDP | - | Single | Not Allowed | Single | Hom. | - | - | $\checkmark$ | TS, GA, SS |
| Männel and Bortfeldt (2017) | 3L-PDP | - | Single | Not Allowed | Single | Hom. | $\checkmark$ | $\checkmark$ | - | A hybrid packing-routing algorithm |
| Veenstra et al. (2017) | PDPTWHO | - | Single | Not Allowed | Single | Hom. | $\checkmark$ | $\checkmark$ | $\checkmark$ | Branch-price-and-cut algorithms |
| Soleimani, Chaharlang, and Ghaderi (2018) | GVRP | $\checkmark$ | Multiple | Not Allowed | Multiple | Het. | - | - | $\checkmark$ | - |
| Bettinelli et al. (2018) | MT-PDTWS | - | Single | Not Allowed | Single | Hom. | $\checkmark$ | - | $\checkmark$ | Branch-and-cut-and-price algorithm |
| Reil, Bortfeldt, and Mönch (2018) | 3L-VRPBTW | - | Single | Not Allowed | Single | Hom. | $\checkmark$ | $\checkmark$ | - | A packing-first-routing-second approach |
| The current study | Milk-run Problem | $\checkmark$ | Dummy | Allowed for big orders | Multiple | Het. | $\checkmark$ | $\checkmark$ | $\checkmark$ | Similarity-Based First-Fit/Best-Fit and GES algorithms |
| 3L-PDP: Pickup and Delivery Problem with 3-Dimensional Loading constraints | | | | | | PDPTW: Pickup and Delivery Problem with Time Windows | | | | |
| 3L-VRPBTW: Vehicle Routing Problem with Backhauls and Time Windows | | | | | | PDPTWL: Pickup and Delivery Problem with Time Windows and Loading constraints | | | | |
| GVRP: Green Vehicle Routing Problem | | | | | | SDPPTW: Simultaneous Delivery and Pickup Problem with Time Windows | | | | |
| HVRPMBTW: VRP with Heterogeneous fleet, Mixed Backhauls, and Time Windows | | | | | | UPDPSL: Unpaired Pickup and Delivery Problem with Split Loads | | | | |
| LRPSPD: Location Routing Problem with Simultaneous Pickup and Delivery | | | | | | VRPPDTW: VRP with Pickup and Delivery and Time Windows | | | | |
| MT-PDTWS: Multi-Trip Pickup and Delivery problem with Time Windows and Synchronisation | | | | | | VRPSPD: Vehicle Routing Problem with Simultaneous Pickup and Delivery | | | | |
| MVSPDP: Multi-Vehicle Selective Pickup and Delivery Problem | | | | | | SA: Simulated Annealing | | | | |
| PDPLT: Multiple Vehicle Pickup and Delivery Problem with LIFO constraints and Maximum Time | | | | | | SS: Scatter Search | | | | |
| ALNS: Adaptive Large Neighbourhood Search | | | | | | TS: Tabu Search | | | | |
| GA: Genetic Algorithm | | | | | | VND: Variable Neighbourhood Descent | | | | |
| GES: Grouping Evolution Strategy | | | | | | VNS: Variable Neighbourhood Search | | | | |
| GRASP: Greedy Randomised Adaptive Search Procedure | | | | | | PSO: Particle Swarm Optimisation algorithm | | | | |
| HC: Hill Climbing heuristic | | | | | | | | | | |
托盘的长度与车辆的宽度平行,即托盘在车辆集装箱的宽度上排成一排。此外,不同订单的托拍不能在车辆集装箱的一排装载。如果同一订单的托拍是金属托拍,则可以相互堆叠。然后,可以通过将托盘行数乘以托盘宽度来计算订单占用的卡车长度。这样,每辆车的 3D 托盘包装子问题可以转换为 1 D 箱包装问题,其中每辆车的集装箱长度与其中一个箱子容量相关联。考虑到每个订单占用的长度在不同卡车上不同,我们面临着一个 1D 箱子包装问题,箱子尺寸可变,物品尺寸随箱子类型的变化而变化。
BM1-BM5 Five (relatively) large numbers
epsilon A small number| $B M 1-B M 5$ | Five (relatively) large numbers |
| :--- | :--- |
| epsilon | A small number |
K Vehicle's set (k)
I Node's set (i,j), where the first node is dummy
M Order's set (m,m^('))
MB in M Big order's set (mb)
Parameters
"BM1-BM5 Five (relatively) large numbers
epsilon A small number" | K | Vehicle's set $(k)$ |
| :--- | :--- |
| I | Node's set $(i, j)$, where the first node is dummy |
| M | Order's set $\left(m, m^{\prime}\right)$ |
| $M B \in M$ | Big order's set $(m b)$ |
| Parameters | |
| $B M 1-B M 5$ Five (relatively) large numbers <br> epsilon A small number | |
图 3.在供应商集、装配厂和虚拟供应商节点之间发货的可能性。
L_(k)L_{k}
整车 kk 的集装箱长度
WC_(k)W C_{k}
车辆 kk 载重量
w_(m)w_{m}
订单 mm 的托盘重量
Nw_(m,k)N w_{m, k}
可以放置在车辆 kk 宽度上的订单 mm 托盘数量
Nh_(m,k)N h_{m, k}
可在车辆 kk 中相互堆叠的订单 mm 托盘数量
pw_(m)p w_{m}
订单 mm 的托盘宽度
LT_(m)L T_{m}
订单 mm 的托盘装载时间
UT_(m)U T_{m}
订单 mm 的托盘卸货时间
f_(m)f_{m}
订单 mm 流程(托盘数量)
O_(m)O_{m}
订单 mm 的由来
D_(m)D_{m}
订单 mm 的目的地
O_(i)^(')O_{i}^{\prime}
来源为 node ii 的订单
D_(i)^(')D_{i}^{\prime}
目的地为 node ii 的订单
comp_(m,m^('))c o m p_{m, m^{\prime}}
一个参数,显示订单 mm 的兼容性 (=1) 或不兼容性 (=0),以及 m^(')m^{\prime}
lb_(m)l b_{m}
时间窗的订单取 mm 货下限
ub_(m)u b_{m}
订单 mm 交付的时间窗口上限
c_(i,j,k)c_{i, j, k}
车辆从节点 ii 到节点 jj 的 kk 运输成本
t_(i,j,k)t_{i, j, k}
车辆从节点 ii 到节点 jj 的 kk 运输时间
nsn s
供应商数量
nan a
装配厂数量
nkn k
车辆数量的上限
决策变量
X_(i,j,k)X_{i, j, k}
如果车辆 kk 从一个节点 ii 移动到另一个节点 jj ,则等于 1 的变量,否则等于 0(二进制)
Y_(i,k)Y_{i, k}
如果 vehicle kk 访问节点 ii ,则等于 1 的变量,否则等于 0(二进制)
Delta_(m,k)\Delta_{m, k}
如果 order mm 由 vehicle kk 拾取,则等于 1 的变量,否则等于 0(二进制)
sigma_(mb,k)\sigma_{m b, k}
如果大订单 mbm b (被拆分)由 vehicle kk 直接发货,则等于 1 的变量,否则为 0
P_(m,k)P_{m, k}
(二进制)
D_(m,k)D_{m, k}
显示车辆 kk 提取的订单 mm 托拍数量的变量 (整数)
U_(i,k)U_{i, k}
一个变量,显示车辆 kk 交付的订单 mm 托拍数量 (整数)
W_(i,k)W_{i, k}
一个变量,显示车辆 kk 容器离开节点 ii 时占用的长度(非负)
T_(i,k)T_{i, k}
一个变量,显示车辆 kk 离开节点 ii 时车辆中托盘的总重量(非负)
显示车辆 kk 到达节点 ii 的时间的变量(非负)
L_(k) The container length of vehicle k
WC_(k) Weight capacity of vehicle k
w_(m) Pallet weight of order m
Nw_(m,k) Number of pallets of order m that can be put on the width of vehicle k
Nh_(m,k) Number of pallets of order m that can be stacked on top of each other in vehicle k
pw_(m) Pallet width of order m
LT_(m) Pallet loading time of order m
UT_(m) Pallet unloading time of order m
f_(m) The flow of order m (number of pallets)
O_(m) The origin of order m
D_(m) The destination of order m
O_(i)^(') Orders with the origin of node i
D_(i)^(') Orders with the destination of node i
comp_(m,m^(')) A parameter showing the compatibility (=1) or incompatibility (=0) of orders m and m^(')
lb_(m) Time window's lower bound for the pickup of order m
ub_(m) Time window's upper bound for the delivery of order m
c_(i,j,k) Transportation cost from node i to node j by vehicle k
t_(i,j,k) Transportation time from node i to node j by vehicle k
ns Number of suppliers
na Number of assembly plants
nk An upper bound on the number of vehicles
Decision variables
X_(i,j,k) A variable that equals 1 if the vehicle k moves from node i to node j, and 0 otherwise (binary)
Y_(i,k) A variable that equals 1 if node i is visited by vehicle k, and 0 otherwise (binary)
Delta_(m,k) A variable that equals 1 if order m is picked up by vehicle k, and 0 otherwise (binary)
sigma_(mb,k) A variable that equals 1 if the big order mb (which is split) is directly shipped by vehicle k, and 0 otherwise
P_(m,k) (binary)
D_(m,k) A variable showing the number of pallets of order m that is picked up by vehicle k (integer)
U_(i,k) A variable showing the number of pallets of order m that is delivered by vehicle k (integer)
W_(i,k) A variable showing the occupied length of the container of vehicle k, when it leaves node i (nonnegative)
T_(i,k) A variable showing the total weight of pallets in vehicle k when it leaves node i (nonnegative)
A variable showing the time vehicle k arrives at node i (nonnegative) | $L_{k}$ | The container length of vehicle $k$ |
| :--- | :--- |
| $W C_{k}$ | Weight capacity of vehicle $k$ |
| $w_{m}$ | Pallet weight of order $m$ |
| $N w_{m, k}$ | Number of pallets of order $m$ that can be put on the width of vehicle $k$ |
| $N h_{m, k}$ | Number of pallets of order $m$ that can be stacked on top of each other in vehicle $k$ |
| $p w_{m}$ | Pallet width of order $m$ |
| $L T_{m}$ | Pallet loading time of order $m$ |
| $U T_{m}$ | Pallet unloading time of order $m$ |
| $f_{m}$ | The flow of order $m$ (number of pallets) |
| $O_{m}$ | The origin of order $m$ |
| $D_{m}$ | The destination of order $m$ |
| $O_{i}^{\prime}$ | Orders with the origin of node $i$ |
| $D_{i}^{\prime}$ | Orders with the destination of node $i$ |
| $c o m p_{m, m^{\prime}}$ | A parameter showing the compatibility (=1) or incompatibility (=0) of orders $m$ and $m^{\prime}$ |
| $l b_{m}$ | Time window's lower bound for the pickup of order $m$ |
| $u b_{m}$ | Time window's upper bound for the delivery of order $m$ |
| $c_{i, j, k}$ | Transportation cost from node $i$ to node $j$ by vehicle $k$ |
| $t_{i, j, k}$ | Transportation time from node $i$ to node $j$ by vehicle $k$ |
| $n s$ | Number of suppliers |
| $n a$ | Number of assembly plants |
| $n k$ | An upper bound on the number of vehicles |
| Decision variables | |
| $X_{i, j, k}$ | A variable that equals 1 if the vehicle $k$ moves from node $i$ to node $j$, and 0 otherwise (binary) |
| $Y_{i, k}$ | A variable that equals 1 if node $i$ is visited by vehicle $k$, and 0 otherwise (binary) |
| $\Delta_{m, k}$ | A variable that equals 1 if order $m$ is picked up by vehicle $k$, and 0 otherwise (binary) |
| $\sigma_{m b, k}$ | A variable that equals 1 if the big order $m b$ (which is split) is directly shipped by vehicle $k$, and 0 otherwise |
| $P_{m, k}$ | (binary) |
| $D_{m, k}$ | A variable showing the number of pallets of order $m$ that is picked up by vehicle $k$ (integer) |
| $U_{i, k}$ | A variable showing the number of pallets of order $m$ that is delivered by vehicle $k$ (integer) |
| $W_{i, k}$ | A variable showing the occupied length of the container of vehicle $k$, when it leaves node $i$ (nonnegative) |
| $T_{i, k}$ | A variable showing the total weight of pallets in vehicle $k$ when it leaves node $i$ (nonnegative) |
| A variable showing the time vehicle $k$ arrives at node $i$ (nonnegative) | |
" Minimize ObjF "=sum_(i in I)sum_(j in I)sum_(k in K)c_(i,j,k)**X_(i,j,k)\text { Minimize ObjF }=\sum_{i \in I} \sum_{j \in I} \sum_{k \in K} c_{i, j, k} * X_{i, j, k}
s.t.
路由约束
{:[sum_(j in I)X_(1,j,k) <= 1quad AA k in K],[sum_(i in I)X_(i,1,k) <= 1quad AA k in K],[sum_(j in I)sum_(k in K)X_(1,j,k) <= nk],[sum_(i in I)X_(i,j,k)=sum_(i in I)X_(j,i,k)quad AA j in I","k in K],[sum_(j in I)X_(i,j,k)=Y_(i,k)quad AA i in I","k in K],[sum_(k in K)Y_(i,k) >= 1quad AA i in I],[sum_(k in K)X_(i,i,k)=0quad AA i in I],[X_(i,j,k)+X_(j,i,k) <= 1quad AA i in I","j in I","k in K],[ sum sumquadsum_(i,k)quadX_(i,j,k) <= 1quad AA k in K],[i <= I","i!=1","quad j in I","j >= ns+2],[i <= ns+1quad","j <= ns+na+1]:}\begin{aligned}
& \sum_{j \in I} X_{1, j, k} \leq 1 \quad \forall k \in K \\
& \sum_{i \in I} X_{i, 1, k} \leq 1 \quad \forall k \in K \\
& \sum_{j \in I} \sum_{k \in K} X_{1, j, k} \leq n k \\
& \sum_{i \in I} X_{i, j, k}=\sum_{i \in I} X_{j, i, k} \quad \forall j \in I, k \in K \\
& \sum_{j \in I} X_{i, j, k}=Y_{i, k} \quad \forall i \in I, k \in K \\
& \sum_{k \in K} Y_{i, k} \geq 1 \quad \forall i \in I \\
& \sum_{k \in K} X_{i, i, k}=0 \quad \forall i \in I \\
& X_{i, j, k}+X_{j, i, k} \leq 1 \quad \forall i \in I, j \in I, k \in K \\
& \sum \sum \quad \sum_{i, k} \quad X_{i, j, k} \leq 1 \quad \forall k \in K \\
& i \leq I, i \neq 1, \quad j \in I, j \geq n s+2 \\
& i \leq n s+1 \quad, j \leq n s+n a+1
\end{aligned}
{:[ sumquadX_(i,j,k) <= 1quad AA k in K],[i in I","i >= ns+2","quad j in I","],[i <= ns+na+1quad j >= ns+na+2],[sum_(i in I,)sum_(j in I,j!=1,)X_(i,j,k)=0quad AA k in K],[i >= ns+na+2quad j <= ns+1],[sum_(i in I,i!=1,)sum_(j in I,)X_(i,j,k)=0quad AA k in K],[i <= ns+1quad j >= ns+na+2],[ sumquadX_(i,j,k)=0quad AA k in K],[i in I","i >= ns+2","quad j in I","j!=1","],[i <= ns+na+1quad j <= ns+1],[sum_(i in I,)sum_(j in I,j >= ns+2,)X_(i,j,k)=0quad AA k in K],[i >= ns+na+2quad j <= ns+na+1]:}\begin{aligned}
& \sum \quad X_{i, j, k} \leq 1 \quad \forall k \in K \\
& i \in I, i \geq n s+2, \quad j \in I, \\
& i \leq n s+n a+1 \quad j \geq n s+n a+2 \\
& \sum_{i \in I,} \sum_{j \in I, j \neq 1,} X_{i, j, k}=0 \quad \forall k \in K \\
& i \geq n s+n a+2 \quad j \leq n s+1 \\
& \sum_{i \in I, i \neq 1,} \sum_{j \in I,} X_{i, j, k}=0 \quad \forall k \in K \\
& i \leq n s+1 \quad j \geq n s+n a+2 \\
& \sum \quad X_{i, j, k}=0 \quad \forall k \in K \\
& i \in I, i \geq n s+2, \quad j \in I, j \neq 1, \\
& i \leq n s+n a+1 \quad j \leq n s+1 \\
& \sum_{i \in I,} \sum_{j \in I, j \geq n s+2,} X_{i, j, k}=0 \quad \forall k \in K \\
& i \geq n s+n a+2 \quad j \leq n s+n a+1
\end{aligned}
取货和交货约束
{:[P_(m,k) <= f_(m)**Y_(i,k)quad AA i in I","i!=1","k in K","m inO_(i)^(')],[sum_(k in K)P_(m,k)=f_(m)quad AA m in M],[D_(m,k) <= f_(m)**Y_(i,k)quad AA i in I","i!=1","k in K","m inD_(i)^(')],[P_(m,k)=D_(m,k)quad AA k in K","m in M],[sum_(m inO_(i)^('))P_(m,k)+sum_(m inD_(i)^('))D_(m,k) >= Y_(i,k)quad AA i in I","i!=1","k in K]:}\begin{aligned}
P_{m, k} & \leq f_{m} * Y_{i, k} \quad \forall i \in I, i \neq 1, k \in K, m \in O_{i}^{\prime} \\
\sum_{k \in K} P_{m, k} & =f_{m} \quad \forall m \in M \\
D_{m, k} & \leq f_{m} * Y_{i, k} \quad \forall i \in I, i \neq 1, k \in K, m \in D_{i}^{\prime} \\
P_{m, k} & =D_{m, k} \quad \forall k \in K, m \in M \\
\sum_{m \in O_{i}^{\prime}} P_{m, k}+\sum_{m \in D_{i}^{\prime}} D_{m, k} & \geq Y_{i, k} \quad \forall i \in I, i \neq 1, k \in K
\end{aligned}
与体积相关的约束
{:[U_(i,k)+sum_(m inO_(j)^('))|~(P_(m,k))/(Nw_(m,k)**Nh_(m,k))~|pw_(m)-sum_(m inD_(j)^('))|~(D_(m,k))/(Nw_(m,k)**Nh_(m,k))~|pw_(m) <= U_(j,k)+(1-X_(i,j,k))^(**)BM1],[AA i in I","j in I","j!=1","i!=j","k in K]:}\begin{aligned}
& U_{i, k}+\sum_{m \in O_{j}^{\prime}}\left\lceil\frac{P_{m, k}}{N w_{m, k} * N h_{m, k}}\right\rceil p w_{m}-\sum_{m \in D_{j}^{\prime}}\left\lceil\frac{D_{m, k}}{N w_{m, k} * N h_{m, k}}\right\rceil p w_{m} \leq U_{j, k}+\left(1-X_{i, j, k}\right)^{*} B M 1 \\
& \forall i \in I, j \in I, j \neq 1, i \neq j, k \in K
\end{aligned}
U_(i,k) <= L_(k)quad AA i in I,k in KU_{i, k} \leq L_{k} \quad \forall i \in I, k \in K
与重量相关的约束
{:[W_(i,k)+sum_(m inO_(j)^('))w_(m)P_(m,k)-sum_(m inD_(j)^('))w_(m)D_(m,k) <= W_(j,k)+(1-X_(i,j,k))^(**)BM2],[AA i in I","j in I","j!=1","i!=j","k in K],[quadW_(i,k) <= WC_(k)quad AA i in I","k in K]:}\begin{gathered}
W_{i, k}+\sum_{m \in O_{j}^{\prime}} w_{m} P_{m, k}-\sum_{m \in D_{j}^{\prime}} w_{m} D_{m, k} \leq W_{j, k}+\left(1-X_{i, j, k}\right)^{*} B M 2 \\
\forall i \in I, j \in I, j \neq 1, i \neq j, k \in K \\
\quad W_{i, k} \leq W C_{k} \quad \forall i \in I, k \in K
\end{gathered}
Pallet 兼容性约束
Delta_(m,k)+Delta_(m^('),k) <= comp_(m,m^('))+1quad AA m in M,m^(')in M,k in K\Delta_{m, k}+\Delta_{m^{\prime}, k} \leq \operatorname{comp}_{m, m^{\prime}}+1 \quad \forall m \in M, m^{\prime} \in M, k \in K
{:[|~(P_(m,k))/(Nw_(m,k)**Nh_(m,k))~|pw_(m) <= L_(k)**Delta_(m,k)quad AA m in M","k in K],[P_(m,k) >= Delta_(m,k)quad AA m in M","k in K]:}\begin{gathered}
\left\lceil\frac{P_{m, k}}{N w_{m, k} * N h_{m, k}}\right\rceil p w_{m} \leq L_{k} * \Delta_{m, k} \quad \forall m \in M, k \in K \\
P_{m, k} \geq \Delta_{m, k} \quad \forall m \in M, k \in K
\end{gathered}
LTL 的 No-split 约束
sum_(k in K)Delta_(m,k)=1quad m in M-MB\sum_{k \in K} \Delta_{m, k}=1 \quad m \in M-M B
FTL 的拆分约束
{:[Delta_(m,k) <= (1-Delta_(mb,k))+(1-sigma_(mb,k))quad AA m in M","mb in MB","m!=mb","k in K],[sigma_(mb,k) <= Delta_(mb,k)quad mb in MB","k in K],[sum_(k in K)sigma_(mb,k)=sum_(k in K)Delta_(mb,k)-1quad mb in MB]:}\begin{gathered}
\Delta_{m, k} \leq\left(1-\Delta_{m b, k}\right)+\left(1-\sigma_{m b, k}\right) \quad \forall m \in M, m b \in M B, m \neq m b, k \in K \\
\sigma_{m b, k} \leq \Delta_{m b, k} \quad m b \in M B, k \in K \\
\sum_{k \in K} \sigma_{m b, k}=\sum_{k \in K} \Delta_{m b, k}-1 \quad m b \in M B
\end{gathered}
与时间相关的约束
{:[T_(i,k)+sum_(m inO_(i)^('))LT_(m)P_(m,k)+sum_(m inD_(i)^('))UT_(m)D_(m,k)+t_(i,j,k) <= T_(j,k)+(1-X_(i,j,k))^(**)BM3],[AA i in I","j in I","j!=1","i!=j","k in K],[T_(j,k) >= T_(i,k)-(1-Delta_(m,k))**BM4quad AA k in K","m in M","i=O_(m)","j=D_(m)],[quadT_(i,k) >= lb_(m)Delta_(m,k)quad AA m in M","i=O_(m)","k in K],[quadT_(i,k) <= ub_(m)+(1-Delta_(m,k))**BM5quad AA m in M","i=D_(m)","k in K]:}\begin{aligned}
& T_{i, k}+\sum_{m \in O_{i}^{\prime}} L T_{m} P_{m, k}+\sum_{m \in D_{i}^{\prime}} U T_{m} D_{m, k}+t_{i, j, k} \leq T_{j, k}+\left(1-X_{i, j, k}\right)^{*} B M 3 \\
& \forall i \in I, j \in I, j \neq 1, i \neq j, k \in K \\
& T_{j, k} \geq T_{i, k}-\left(1-\Delta_{m, k}\right) * B M 4 \quad \forall k \in K, m \in M, i=O_{m}, j=D_{m} \\
& \quad T_{i, k} \geq l b_{m} \Delta_{m, k} \quad \forall m \in M, i=O_{m}, k \in K \\
& \quad T_{i, k} \leq u b_{m}+\left(1-\Delta_{m, k}\right) * B M 5 \quad \forall m \in M, i=D_{m}, k \in K
\end{aligned}
{:[(P_(m,k))/(Nw_(m,k)**Nh_(m,k)) <= Q_(m,k)quad m in M","k in K],[Q_(m,k) <= (P_(m,k))/(Nw_(m,k)**Nh_(m,k))+1-epsiquad m in M","k in K],[(D_(m,k))/(Nw_(m,k)**Nh_(m,k)) <= E_(m,k)quad m in M","k in K],[E_(m,k) <= (D_(m,k))/(Nw_(m,k)**Nh_(m,k))+1-epsiquad m in M","k in K],[U_(i,k)+sum_(m inO_(j)^('))Q_(m,k)**pw_(m)-sum_(m inD_(j)^('))E_(m,k)**pw_(m) <= U_(j,k)+(1-X_(i,j,k))**BM1],[AA i in I","j in I","j!=1","i!=j","k in K],[Q_(m,k)**pw_(m) <= L_(k)**Delta_(m,k)quad AA m in M","k in K]:}\begin{aligned}
& \frac{P_{m, k}}{N w_{m, k} * N h_{m, k}} \leq Q_{m, k} \quad m \in M, k \in K \\
& Q_{m, k} \leq \frac{P_{m, k}}{N w_{m, k} * N h_{m, k}}+1-\varepsilon \quad m \in M, k \in K \\
& \frac{D_{m, k}}{N w_{m, k} * N h_{m, k}} \leq E_{m, k} \quad m \in M, k \in K \\
& E_{m, k} \leq \frac{D_{m, k}}{N w_{m, k} * N h_{m, k}}+1-\varepsilon \quad m \in M, k \in K \\
& U_{i, k}+\sum_{m \in O_{j}^{\prime}} Q_{m, k} * p w_{m}-\sum_{m \in D_{j}^{\prime}} E_{m, k} * p w_{m} \leq U_{j, k}+\left(1-X_{i, j, k}\right) * B M 1 \\
& \forall i \in I, j \in I, j \neq 1, i \neq j, k \in K \\
& Q_{m, k} * p w_{m} \leq L_{k} * \Delta_{m, k} \quad \forall m \in M, k \in K
\end{aligned}
3.5. 大 M 系数
在建议的公式中为(相对)较大的数字赋予的值非常重要。这些值不应太大或太小,以便分别防止舍入误差或不可行性。因此,应计算这些大数字值的下限。计算完成 BM2B M 2 ;其他值可以采用类似的方式计算。
The solution procedure
Initialise parameters;
Begin
(Create a feasible solution)
Determine big orders, split them, and assign them to vehicles for direct shipment;
Make an ordering of the remaining orders using the SBO algorithm (according to 4.2.1);
Apply the best-fit/first-fit algorithm (according to 4.2.2/4.2.3);
(Apply improvement heuristics)
Apply Reduce heuristic (according to 44.3.1);
Apply Merge heuristic (according to 4.3.2);
End| The solution procedure |
| :--- |
| Initialise parameters; |
| Begin |
| (Create a feasible solution) |
| Determine big orders, split them, and assign them to vehicles for direct shipment; |
| Make an ordering of the remaining orders using the SBO algorithm (according to 4.2.1); |
| Apply the best-fit/first-fit algorithm (according to 4.2.2/4.2.3); |
| (Apply improvement heuristics) |
| Apply Reduce heuristic (according to 44.3.1); |
| Apply Merge heuristic (according to 4.3.2); |
| End |
车辆容量和订单兼容性。为了考虑到时间窗口的可行性,还应做好每辆车的路线规划。每次将停靠点分配给车辆时,都会使用截断模型确定分配的可行性。这是 Section 3.3 中提出的模型的简化版本,其中我们假设只有一个车辆,并且车辆的内容也是已知的,并且是迄今为止通过最佳拟合/首次拟合算法分配给车辆的顺序。因此,此模型用于规划车辆路线和检查可行性。参数和变量的定义类似于 3.1 表示法中定义的定义,但删除了与车辆 (k)(k) 相关的索引(因为只有一辆车)。因此,该问题成为具有 side constraints 的 Travelling Salesman Problem (TSP) 的一个版本。可以看出,约束 (49)-(52) 是 TSP 中常用的约束,约束 (53)-(66) 是所谓的 side constraints,用于执行与重量和体积容量、节点访问顺序、时间窗口等相关的约束。此外,集和参数是在应该访问的节点上定义的,以便提取和交付当前订单到车辆中。附加变量和参数以及截断的模型如下所示。通过与第 3.3 节的 MILP 模型中的对应项进行比较,可以感知目标函数和每个约束的解释。
变量
定义
u_(i)u_{i}
为子绕线抵销约束定义的变量(非负)
参数
定义
nn
截断模型中的节点数
ol_(m)o l_{m}
订单 mm 的托盘所占用的车辆的长度
Variable Definition
u_(i) A variable defined for the subtour elimination constraints (nonnegative)
Parameter Definition
n The number of nodes in the truncated model
ol_(m) The length of the vehicle that is occupied by the pallets of order m| Variable | Definition |
| :--- | :--- |
| $u_{i}$ | A variable defined for the subtour elimination constraints (nonnegative) |
| Parameter | Definition |
| $n$ | The number of nodes in the truncated model |
| $o l_{m}$ | The length of the vehicle that is occupied by the pallets of order $m$ |
截断模型
" Minimize "ObjF=sum_(i in I)sum_(j in I)c_(i,j)**X_(i,j)\text { Minimize } O b j F=\sum_{i \in I} \sum_{j \in I} c_{i, j} * X_{i, j}
s.t.
路由约束
{:[sum_(j in I)X_(i,j)=1quad AA i in I],[sum_(i in I)X_(i,j)=1quad AA j in I],[u_(i)-u_(j)+nX_(ij) <= n-1quad AA j in I","AA j in I","i","j >= 2","i!=j],[X_(i,i)=0quad AA i in I],[sum_({:[],[i in I","i!=1","quad j in I","j >= ns+2],[i <= ns+1],[sum_(i,j) <= 1],[","j <= ns+na+1]:})]:}\begin{gathered}
\sum_{j \in I} X_{i, j}=1 \quad \forall i \in I \\
\sum_{i \in I} X_{i, j}=1 \quad \forall j \in I \\
u_{i}-u_{j}+n X_{i j} \leq n-1 \quad \forall j \in I, \forall j \in I, i, j \geq 2, i \neq j \\
X_{i, i}=0 \quad \forall i \in I \\
\sum_{\substack{ \\
i \in I, i \neq 1, \quad j \in I, j \geq n s+2 \\
i \leq n s+1 \\
\sum_{i, j} \leq 1 \\
, j \leq n s+n a+1}}
\end{gathered}
sum_({:i in I","i >= ns+2","i <= ns+na+1:})sum_({:j in I","j >= ns+na+2:})X_(i,j) <= 1\sum_{\substack{i \in I, i \geq n s+2, i \leq n s+n a+1}} \sum_{\substack{j \in I, j \geq n s+n a+2}} X_{i, j} \leq 1
sum_({:i in I","i >= ns+na+2:})sum_({:[j in I","j!=1],[j <= ns+1]:})X_(i,j)=0\sum_{\substack{i \in I, i \geq n s+n a+2}} \sum_{\substack{j \in I, j \neq 1 \\ j \leq n s+1}} X_{i, j}=0
sum_({:[i in I","i!=1],[i <= ns+1]:})sum_({:j in I","j >= ns+na+2:})X_(i,j)=0\sum_{\substack{i \in I, i \neq 1 \\ i \leq n s+1}} \sum_{\substack{j \in I, j \geq n s+n a+2}} X_{i, j}=0
{:[sum_({:i in I","i >= ns+2","i <= ns+na+1:})sum_({:j in I","i!=1","j <= ns+1:})X_(i,j)=0],[sum_({:i in I","i >= ns+na+2:})sum_({:j in I","j >= ns+2","j <= ns+na+1:})X_(i,j)=0]:}\begin{gathered}
\sum_{\substack{i \in I, i \geq n s+2, i \leq n s+n a+1}} \sum_{\substack{j \in I, i \neq 1, j \leq n s+1}} X_{i, j}=0 \\
\sum_{\substack{i \in I, i \geq n s+n a+2}} \sum_{\substack{j \in I, j \geq n s+2, j \leq n s+n a+1}} X_{i, j}=0
\end{gathered}
与体积相关的约束
{:[U_(i)+sum_(m inO_(j)^('))ol_(m)-sum_(m inD_(j)^('))ol_(m) <= U_(j)+(1-X_(i,j))**BM1quad AA i in I","j in I","j!=1","i!=j],[U_(i) <= L quad AA i in I]:}\begin{gathered}
U_{i}+\sum_{m \in O_{j}^{\prime}} o l_{m}-\sum_{m \in D_{j}^{\prime}} o l_{m} \leq U_{j}+\left(1-X_{i, j}\right) * B M 1 \quad \forall i \in I, j \in I, j \neq 1, i \neq j \\
U_{i} \leq L \quad \forall i \in I
\end{gathered}
与重量相关的约束
{:[W_(i)+sum_(m inO_(j)^('))w_(m)f_(m)-sum_(m inD_(j)^('))w_(m)f_(m) <= W_(j)+(1-X_(i,j))**BM2quad AA i in I","j in I","j!=1","i!=j],[W_(i) <= WC quad AA i in I]:}\begin{gathered}
W_{i}+\sum_{m \in O_{j}^{\prime}} w_{m} f_{m}-\sum_{m \in D_{j}^{\prime}} w_{m} f_{m} \leq W_{j}+\left(1-X_{i, j}\right) * B M 2 \quad \forall i \in I, j \in I, j \neq 1, i \neq j \\
W_{i} \leq W C \quad \forall i \in I
\end{gathered}
与时间相关的约束
{:[T_(i)+sum_(m inO_(i)^('))LT_(m)f_(m)+sum_(m inD_(i)^('))UT_(m)f_(m)+" time "_(ij) <= T_(j)+(1-X_(i,j))**" BM3 "quad AA i in I","j in I","j!=1","i!=j],[T_(j) >= T_(i)quad m in M","i=" Orig "_(m)","j=" Dest "_(m)],[T_(i) >= lb_(m)quad AA m in M","i=" Orig "_(m)],[T_(i) <= ub_(m)quad AA m in M","i=" Dest "_(m)","]:}\begin{aligned}
T_{i} & +\sum_{m \in O_{i}^{\prime}} L T_{m} f_{m}+\sum_{m \in D_{i}^{\prime}} U T_{m} f_{m}+\text { time }_{i j} \leq T_{j}+\left(1-X_{i, j}\right) * \text { BM3 } \quad \forall i \in I, j \in I, j \neq 1, i \neq j \\
T_{j} & \geq T_{i} \quad m \in M, i=\text { Orig }_{m}, j=\text { Dest }_{m} \\
T_{i} & \geq l b_{m} \quad \forall m \in M, i=\text { Orig }_{m} \\
T_{i} & \leq u b_{m} \quad \forall m \in M, i=\text { Dest }_{m},
\end{aligned}
Reduce Heuristic
Begin
Set \(V_{o}\) as the vehicles in the solution;
For each vehicle \(v_{o}\) in \(V_{o}\)
Set \(V_{p}\) as the set of smaller vehicles than \(v_{o}\) (sorted in increasing order of size);
For each vehicle \(v_{p}\) in \(V_{p}\)
Assign orders of \(v_{o}\) to \(v_{p}\) and check feasibility by solving the truncated model of Section 4.2.4;
If feasible
Permanently assign orders of \(v_{o}\) to \(v_{p}\) in the solution;
Continue;
End If
End For
End For
End
Merge Heuristic
Initialise parameter \(\xi\);
Begin
Set \(V_{o}\) as the vehicles in the solution;
While counter \(<=\xi\);
Select two vehicles \(v_{1}\) and \(v_{2}\) from \(V_{o}\);
Set \(V_{p}\) as the set of vehicles that are larger than or similar to the largest of \(v_{1}\) and \(v_{2}\) (in increasing order);
For each vehicle \(v_{p}\) in \(V_{p}\)
Assign orders of \(v_{1}\) and \(v_{2}\) to \(v_{p}\) and check feasibility by solving the truncated model of Section 4.2.4;
If compatible and feasible
Permanently assign orders of \(v_{1}\) and \(v_{2}\) to \(v_{p}\);
Set \(V_{0}=V_{0}-\left\{v_{1}, v_{2}\right\} \cup\left\{v_{p}\right\}\);
Break;
End If
End For
counter \(=\) counter +1 ;
End While
End
New Solution Generation (NSG) Algorithm
Begin
Set \(V^{t}\) as the vehicles in the parent solution;
Step 1 (inheritance phase)
For each vehicle \(k=1\) to \(\left|V^{t}\right|\)
Compute \(n_{k}^{t}=\left\lfloor 1-\operatorname{Beta}_{k}\left(\alpha^{t}, \beta\right)\left|v_{k}^{t}\right|\right\rfloor\);
Select \(n_{k}^{t}\) orders from \(v_{k}^{t}\) and assign them to set \(u_{k}^{t}\);
\(U^{t}=U^{t} \cup\left\{u_{k}^{t}\right\} ;\)
End
Set \(U^{t}\) as the vehicles in the offspring solution;
Step 2 (the post-assignment phase)
List the orders that has not been selected during Step 1 in an arbitrary order. Starting from the head
of the list, employ the best-fit/first-fit algorithm to assign the orders to currently available vehicles
in \(U^{t}\) or newly added vehicles to \(U^{t}\);
Grouping Evolution Strategy (GES) Algorithm
Initialise \(\alpha^{0}, \beta, a\)
Begin
\(t \leftarrow 0 ; \alpha \leftarrow \alpha^{0}\);
Create an initial solution \(V^{t}\) using the best-fit/first-fit algorithm;
While stopping criteria are not true
Given the parent solution \(V^{t}\), apply the NSG algorithm to obtain the offspring solution \(U^{t}\);
Apply Reduce improvement heuristic on \(U^{t}\);
If \(\operatorname{Obj}\left(U^{t}\right)<\operatorname{Obj}\left(V^{t}\right)\)
\(V^{t+1} \leftarrow U^{t} ;\)
\(\alpha \leftarrow \alpha / a ;\)
Else
\(V^{t+1} \leftarrow V^{t} ;\)
\(\alpha \leftarrow \alpha \times a ;\)
End if
\(t \leftarrow t+1\);
\(\alpha^{t} \leftarrow \alpha ;\)
End While
End
侯赛因扎德·卡尚,A.,A. A. A. Akbari 和 B. Ostadi。2015. “分组进化策略:对问题进行分组的有效方法。”应用数学建模 39 (9):2703-2720。doi:10.1016/j.apm.2014.11.001.
Jafari-Eskandari, M., S. J. Sadjadi, MS Jabalameli, 和 A. Bozorgi-Amiri。2009. “牛奶线问题的稳健优化方法(汽车行业供应链案例研究)”。计算机与工业工程国际会议,CIE 2009,1076-1081。doi:10.1109/ICCIE.2009.5223541.
Kilic, HS、MB Durmusoglu 和 M. Baskak。2012. “厂内循环取货配送系统的分类和建模。”国际先进制造技术杂志 62 (9-12):1135-1146。doi:10.1007/s00170-011-3875-4.
" SimMat "=[[,O1,O2,O3,O4,O5,O6],[O1,0,0.5796,0.9381,0.9646,0.4845,0.3418],[O2,,0,0.5221,0.5155,0.3418,0],[O3,,,0,0.9137,0.5387,0.3473],[O4,,,,0,0.5387,0.3142],[O5,,,,,0,0.5796],[O6,,,,,,0]]\text { SimMat }=\left[\begin{array}{ccccccc}
& O 1 & O 2 & O 3 & O 4 & O 5 & O 6 \\
O 1 & 0 & 0.5796 & 0.9381 & 0.9646 & 0.4845 & 0.3418 \\
O 2 & & 0 & 0.5221 & 0.5155 & 0.3418 & 0 \\
O 3 & & & 0 & 0.9137 & 0.5387 & 0.3473 \\
O 4 & & & & 0 & 0.5387 & 0.3142 \\
O 5 & & & & & 0 & 0.5796 \\
O 6 & & & & & & 0
\end{array}\right]
通过解决最大权重匹配问题的实例,根据相似度值对订单进行配对,将产生以下匹配项:
O4 与 O1 匹配,产生 O4-O1 对
O6 与 O5 匹配,得到 O6-O5 对
O3 与 O2 匹配,产生 O3-O2 对
现在我们计算由 O4-O1、O6-O5 和 O3-O2 组成的对之间的相似性。例如: SimOrig(O4-O1,O6-O5)=\operatorname{SimOrig}(O 4-O 1, O 6-O 5)=SimOrig(O4,O6)+SimOrig(O4,O5)+SimOrig(O1,O6)+SimOrig(O1,O5)=0.3142+0.5387+0.3418+0.4845=1.6792\operatorname{SimOrig}(O 4, O 6)+\operatorname{SimOrig}(O 4, O 5)+\operatorname{SimOrig}(O 1, O 6)+\operatorname{SimOrig}(O 1, O 5)=0.3142+0.5387+0.3418+0.4845=1.6792 .此步骤的整个相似性矩阵如下所示:
" SimMat "1=[[,O4-O1,O6-O5,O3-O2],[O4-O1,0,1.6792,2.9469],[O6-O5,,0,1.2279],[O3-O2,,,0]]\text { SimMat } 1=\left[\begin{array}{cccc}
& O 4-O 1 & O 6-O 5 & O 3-O 2 \\
O 4-O 1 & 0 & 1.6792 & 2.9469 \\
O 6-O 5 & & 0 & 1.2279 \\
O 3-O 2 & & & 0
\end{array}\right]
通过解决最大权重匹配问题的实例,根据其相似性值配对成对的订单,将产生以下匹配:
O3-O2 与 O4-O1 匹配,产生对 O3O2-O4O1
O6-05 与自身匹配,产生对 O605-0605,本质上是 O6O5。
现在我们计算由 O3O2-04O1、O6O5-O6O5 组成的对之间的相似性,如下所示: SimOrig(O3O2-O4O1,O6O5-O 605)=SimOrig(O3O2,O6O5)+SimOrig(O3O2,O6O5)+SimOrig(O4O1,O 605)\operatorname{SimOrig}(O 3 O 2-O 4 O 1, O 6 O 5-O 605)=\operatorname{SimOrig}(O 3 O 2, O 6 O 5)+\operatorname{SimOrig}(O 3 O 2, O 6 O 5)+\operatorname{SimOrig}(O 4 O 1, O 605)+SimOrig(O4O1,O6O5)=1.2279+1.2279+1.6792+1.6792=5.8142+\operatorname{SimOrig}(O 4 O 1, O 6 O 5)=1.2279+1.2279+1.6792+1.6792=5.8142.
" SimMat "2=[[,O3O2-O4O1,O6O5-O6O5],[O3O2-O4O1,0,5.8142],[O6O5-O6O5,,0]]\text { SimMat } 2=\left[\begin{array}{ccc}
& O 3 O 2-O 4 O 1 & O 6 O 5-O 6 O 5 \\
O 3 O 2-O 4 O 1 & 0 & 5.8142 \\
O 6 O 5-O 6 O 5 & & 0
\end{array}\right]