1. 引言
仓库运营包括接收、存储、拣货、打包和运输等活动,这些操作通常属于劳动密集型工作中心,是现代物流的重要组成部分,通常占物流总成本的20%至25% [1] [2]。A公司计划对其仓库进行升级和扩建。为评估新的仓库设计方案,并支持高效且灵活的仓库规划、管理和决策,当前正在开发一个仿真模型。仿真作为一种有效且必不可少的工具,能够分析复杂系统的不同配置及其他运营流程。仿真并非用于获得最优解,而是通过仿真模型测试不同决策结果的工具[3]。作为一种重要的分析工具,仿真能帮助评估复杂系统不同配置下的运营流程优化方案。通过仿真模型,能够在实际系统发生之前,预测潜在的风险因素并进行相应的优化调整。
Burinskiene [3]开发了一个仿真模型,用于研究叉车在仓库内行驶的距离,并得出结论:实施基于射频的流程能够显著减少行驶距离。他们还探讨了库存准确性如何影响这一距离。Burinskiene等人[4]提出了另一个仿真模型,用于研究仓库内拣货员行驶路径的影响。Yafei等人[5]基于FlexSim提出了一种仓库物流仿真与优化研究方法,通过仿真分析并结合实际数据,深入探讨了仓库物流问题,并制定了科学有效的优化方案。Jiao等人[6]利用多种群遗传算法解决了自动化仓库的多目标存储位置分配问题,并通过实际数据验证了算法的有效性。Muller等人[7]通过建立基于遗传算法的自动化洗衣仓库规划与优化模型,展示了仿真模型在早期规划过程中的应用。Pan等人[8]利用遗传算法和仿真技术优化了仓库布局,提出了一种两阶段优化方法,从而避免了传统系统布局规划方法中的人为干扰。然而,据作者所知,现有文献中尚未通过参数拟合使仓库仿真模型更加贴近实际的相关研究。
验证和确认是仿真模型开发与应用中的关键步骤,能够显著提高模型的可靠性和接受度[9] [10]。验证的目的是确保模型无错误并被正确实现,而确认则评估模型是否忠实于真实系统,并能产生与现实观察一致的结果。这两个过程对于确保仿真模型及其结果的可靠性和可信性至关重要,从而使它们成为决策和问题解决的有力工具。
例如,Balci和Sargent等学者[11] [12]提供了框架并讨论了指导分析员完成验证过程的技术。模型验证指标则为评估具有功能性输出的模型有效性提供了技术支持。Oberkampf和Barone [13]探讨了将计算结果与实验测量进行定量比较的重要性,并提出了验证指标。常见的验证指标形式是衡量系统输出与模型输出之间的差异,有时被称为误差指标。正如多位学者所指出的[14] [15],统计检验(如假设检验和置信区间)可用于验证和确认子模型及整体模型。本文将通过统计检验方法来验证仿真模型。
本研究不仅填补了现有文献中的空白,也为仓库规划和运营优化提供了一种新的思路和方法,有助于提高仓库管理的效率和灵活性。在未来的研究中,可进一步探索更复杂的优化算法和实时数据应用,以推动仓库管理向更加智能化和精准化的方向发展。
2. 仿真模拟方法
为了更好地理解仓库流程,我们使用AnyLogic开发了一个仿真模型。离散事件仿真(Discrete Event Simulation)是一种用于决策支持系统的虚拟方法,广泛应用于物流系统的规划与控制[16]。由于其在建模和可视化物流系统各组成要素方面的灵活性,离散事件仿真方法在多个领域和学科中得到了广泛应用。在本研究中,我们采用了这一方法。所开发的模型旨在捕捉货物在仓库中的流转过程以及任务执行的动态特性,以实现运营流程的持续优化。该模型通过将实际系统与虚拟系统相连接,构建了一个可用于分析和改进仓库操作的仿真平台[17]。
Figure 1. Warehouse operation process
图1. 货仓运营流程
仿真的目标是构建物理系统的虚拟模型,用于再现和分析其行为。这些系统,包括流程、产品等有形组件,通过数字化仿真来探索和优化其性能,从而突破了物理限制。在实际应用中,系统会受到不确定性因素的影响,并需遵循物理规律和规则,以确保其可靠性和一致性[18]。本研究围绕两个主要焦点对现有仓库进行建模:仓库的物理对象和运营流程。前者包括对仓库物理布局和配置的精确表示,涵盖存储区域、过道、货架、工作站以及其他基础设施元素的空间布局;后者则专注于建模仓库内的各类运营流程和工作流程,包括接收、存储、拣货、打包和运输。图1展示了仓库中典型的入库和出库流程概览。
将可配置的操作效率数据作为输入参数纳入仿真模型,对于准确模拟仓库操作至关重要。这些参数通常来源于经验数据,或通过时间–动作研究量化每个步骤所需的时间。
本文结合经验数据、曲线拟合和机器学习方法对模型进行验证,以确定工作效率参数。模型的成功验证不仅证明了所提方法的可行性,也表明结合历史数据分析与预测技术的方式,是可靠且有效的仓库操作建模与优化手段。
本文的创新之处在于利用历史运营数据挖掘每项操作的时间数据。然后,通过曲线拟合和机器学习等回归预测方法,根据每项操作的内在特性预测处理时间。这种方法提供了一种数据驱动的操作时间估计方式,使得模型能够更好地考虑真实环境中的不确定性及人为行为的随机性[19]。
3. 构建仿真实验
仿真是一种灵活、可靠且可重复使用的决策支持方法,它能够在不干扰真实系统的情况下测试不同的解决方案,帮助感知当前流程以及这些流程变化如何在整个系统中反映出来。为了提升A公司仓库中心的运营效率,首先进行了第一阶段的研究,收集了相关数据。这些数据涵盖了多个方面,包括A公司仓库的布局、工作站的安排、进出货物的详细信息、订单信息、人员调度情况以及拣货数据等。这些全面的数据集不仅为建模仓库提供了必要的信息,还包括了验证模型准确性所需的关键组成部分,如周期时间和关键绩效指标(KPIs)。
在此基础上,我们利用AnyLogic开发了A公司仓库的仿真模型。该模型结合了离散事件建模与代理建模两种方法。进出库流程通过离散事件建模实现,而基于代理的仿真则用于管理具有复杂自主控制的工作主体,如拣货员、叉车操作员和分拣合并员等。该模型模拟了仓库在不同参数设置下的运作。通过分析仿真结果并与基准数据进行比较,我们能够获得合适的模型参数设置,从而为管理者提供评估各种拣货策略的可行参考。
Figure 2. Steps of model establishment and verification
图2. 模型建立与验证步骤
随后,通过将仿真结果与实际数据进行比较,验证了模型的准确性。在定义问题范围后,项目团队深入分析了仓库的运营流程,并手动选择并开发了一个模块化的订单结构。图2展示了模型开发的主要步骤。
3.1. 数据收集与分析
仓库由人员、叉车、产品、存储位置、工作站以及用于收集产品的空托盘/箱组成。仿真建模的初步阶段需要收集全面的研究信息和数据,以确保与仿真目标的一致性。数据收集过程通过使用A公司的实际仓库来构建仿真模型,涵盖了与产品订单及出入库物流相关的数据。通过对仓库经理的深入访谈,我们进一步了解了仓库操作的复杂性,包括流程规范、操作约束和劳动力调度等细节。收集到的综合数据集包含了关键的仓库信息,如产品信息、尺寸规格、位置数据、数据收集机制以及与生产相关的其他信息,这些数据随后被用于在AnyLogic中构建仿真模型。因此,仿真模型中使用的数值来源于多个数据源和考虑因素。
Table 1. Description of Lines data in the order
表1. 订单中Lines数据说明
Lines |
Description |
count |
34,026 |
mean |
2.79 |
std |
6.53 |
min |
1 |
25% |
1 |
50% |
1 |
75% |
1 |
max |
179 |
通过分析A公司某仓库两个月的订单数据,可以发现订单中所包含的订单行数(Lines)差异较大,最小为1行,最大可达179行。了解订单数量的这种可变性对于优化仓库操作和资源分配至关重要,尤其是在处理不同复杂性订单时。订单中包含的订单行数的统计描述见表1。
3.2. 系统建模与参数设置
选择AnyLogic作为仿真平台,并采用离散事件和基于代理的仿真方法。这种简化的建模方式使得模型更加实用,集中关注系统的关键要素,避免在不增加系统分析价值的细节上浪费时间[20]。仓库系统包括人员、叉车、机器人、产品、存储位置以及用于收集产品的空托盘/箱等组成部分。当入库运输到达仓库时,系统会分配一个可用的拣货员来卸载包含特定类型产品的集装箱。随后,拣货员将产品搬运至所需的存储位置,直到集装箱清空。当接收到客户的发货订单时,订单会被分解为多个任务列表。每个任务列表随后分配给可用的拣货员,由其将全托盘的产品搬运到合并/分拣站。包装完成后,物品将被引导到出库运输流程中。
为了在AnyLogic中模拟这一过程,我们使用了各种标准软件对象,如源、工人、服务器、合并器和汇合器,并根据需要补充了额外的自定义逻辑流程。这种方法使我们能够详细且高效地建模仓库运营中涉及的各种活动。
3.3. 替代方法选择
仓库的总成本受到高物料处理需求的显著影响,尤其是拣货操作,这些操作通常由人工完成[21]。因此,本文主要研究拣货阶段的替代方法,类似的方法也可以扩展应用到其他阶段的优化。
多种参数会影响仓库仿真系统的整体效率。在物料搬运和运输过程中,仓库中可用叉车的数量至关重要。拣货员的数量及其排班安排直接影响订单拣货的速度和准确性。高效的排班能确保足够的拣货员及时处理到达的订单。此外,叉车操作员和拣货员在货架或存储位置准确选择和检索物品方面的工作效率也具有决定性作用。
通过仿真,可以测试各种场景和配置,从而确定最适合仓库运营的参数组合。这些变量参数的校准对模型整体的准确性有重要影响。表2列出了影响模型效率的主要输入参数。
在所有可配置参数中,对整体拣货效率影响最显著的参数是与拣货相关的设置。准确地定义拣货过程的效率对模型的有效性至关重要。研究结果表明,工人的体重、行走速度、行进距离和目标区域显著影响人体能量消耗(HEE)、休息配额和吞吐量[22]。
在本文中,我们旨在进行专门聚焦于拣货过程的替代实验。我们的目标是评估不同的拣货效率设置方式如何影响模型的整体性能和有效性。
Table 2. Input parameters to the model
表2. 模型的输入参数
parameters |
Description |
number of forkliftt |
A fixed number |
number of picker |
According to shifting table |
walk speed |
3.5 m/s |
forklift speed |
10 m/s |
picking time |
The time required to pick up the specified goods |
sort and merge time |
A fixed data for sort and merge according to history data |
3.3.1. Time-Motion Study
Time-motion study是一种商业效率技术,结合了Taylor F.W.的时间研究工作以及Neuhauser D.和Frank、Lillian Gilbreth的动作研究成果[23] [24]。在最基本的层面上,时间研究是通过使用秒表详细观察工人,进而确定完成特定任务所需的时间。
记录和分析拣货时间的过程包括通过一个月的现场记录,仔细审视拣货操作。这种方法旨在解构拣货操作的各个环节,从而精确衡量执行每个步骤所需的时间。拣货操作的记录通过摄像机或其他记录设备进行。这些记录捕捉了整个拣货过程,包括仓库人员执行的动作,如定位物品、从货架上取物和准备物品进行运输。在拣货过程的每个阶段,我们记录了所需的时间,并取其平均值作为最终的时间数据。表3展示了一些拣货动作的研究数据。
Table 3. Time study on existing picking actions
表3. 现有的Picking动作时间研究
Actions |
Time1 |
Time2 |
Time3 |
Avg_Time |
Deaccelerate and turn |
8 |
10 |
9.5 |
9.2 |
Lifting one level |
2.5 |
2 |
2.8 |
2.4 |
Picking one item |
3.5 |
4 |
4 |
3.8 |
Placing |
3 |
2.7 |
3.3 |
3 |
Turn and accelerate |
8 |
10 |
9.5 |
9.2 |
观察发现,每次拣货操作都有一个基础准备时间,表示启动拣货过程所需的正常时间。这个准备时间包括寻找正确的拣货区域和准备开始拣货等活动。分析还考虑了影响拣货时间的多个因素,如在特定操作中需要拣取的订单行数以及需要从中取货的货架层级。这些因素对拣货过程的整体效率具有显著影响。通过分析这些影响因素,并将时间–动作研究数据与经验数据相结合,得出了以下叉车作业时间的近似计算公式:
(1)
公式(1)中“
”表示每多拣取一个物品所需的额外时间,假设每多取一个物品需要增加5个时间单位。公式“
”表示从更高的货架或存储位置拣货所需的额外时间,假设从更高的位置拣货需要更多的时间,每提高一层增加30秒。
类似地,对于人工拣货,公式如下:
(2)
由于在1.7米以下的高度,拣货员无需借助梯子即可直接拣货,因此货物所在的层级对拣货时间的影响非常小,可以基本忽略。然而,如果需要使用梯子进行拣货,则可能会增加最多120秒的额外时间。通过在AnyLogic中设定这个公式,我们可以计算每个拣货员完成每次拣货所需的时间。然而,这一设置的局限性在于,它未能考虑不同工人之间的差异。为了应对这一挑战并构建更准确的仿真模型,将历史数据和实证观察纳入其中,将有助于考虑这些变异,从而提高模型的真实性和准确性。
3.3.2. Curving Fitting
个人的生产力水平通常存在差异,而基于代理的仿真方法能够克服这一限制。该方法允许模型开发者专注于研究组织内外个体的独特行为及其相互之间的互动。在本研究中,我们通过历史数据获取了工人拣货活动的时间戳,并应用曲线拟合方法来调整公式(1)和公式(2)的系数,从而更精确地表示拣货时间。为此,我们使用了SciPy工具包进行曲线拟合,SciPy是一个强大的Python库,支持线性规划、约束和非线性最小二乘优化、根求解以及曲线拟合等任务。经过调优后的公式如下:
(3)
(4)
在实验中,公式(3)与公式(4)被设置到AnyLogic中,用于计算拣货的处理时间。
3.3.3. Machine Learning
在机器学习部分,我们所使用的数据与曲线拟合中采用的数据一致。在本研究中,我们系统地探索了多种机器学习技术,包括线性回归、随机森林和AdaBoost,来进行时间预测。随后,我们进行了系列实验,并得出了多组实证结果。
4. 模型验证与结果
建模的主要目标是建立模型与真实系统之间的对应关系,并确保两者之间保持一致。模型的验证过程包括分析和评估系统与仿真模型的关键绩效指标(KPI)数据是否在统计上具有等效性。如果观察到这种统计等效性,则认为模型有效地代表了系统;反之,如果发现统计上显著的差异,则表明模型无效
该过程利用检验统计量来评估原假设,原假设假定历史数据与模型数据集之间没有统计上可辨别的差异。这种方法是一种有效的手段,用于统计验证或反驳模型的准确性和适用性。
4.1. Cycle Time结果
Cycle time (周期时间)表示从订单到达时刻到订单准备好发货时刻之间的持续时间。它包括多个环节的累计时间,涵盖了运输区域内的时间、拣选动作的时间,以及与合并和包装过程相关的等待时间。
本研究通过比较三种替代方法计算的Cycle time数据的统计特征,作为研究的起点。表4展示了基准数据和使用三种替代方法计算的Cycle time数据的统计分析结果。从统计分析中可以明显看出,所得数据的分布较为均匀。统计结果表明,这些数据的特征相似,且机器学习得到的均值更接近实际数据,因此可以认为机器学习方法取得了更好的仿真结果。
Table 4. Experimental results of three alternative methods
表4. 三种替代方法实验结果
数量 |
True data |
Time study |
Curve fitting |
Machine learning |
Mean |
804.8389754 |
361.72 |
368.15 |
542.6898 |
Standard Error |
3.082820361 |
1.9 |
2.05 |
3.065651 |
Median |
221 |
99 |
100 |
109 |
Mode |
127 |
43 |
44 |
44 |
Standard Deviation |
957.695896 |
591.77 |
636.42 |
952.3622 |
Sample Variance |
917181.4293 |
350186 |
405030.6 |
906993.7 |
Kurtosis |
627.1245813 |
8.14 |
12.67 |
5.563359 |
Skewness |
9.312951029 |
2.68 |
3.16 |
2.427384 |
Range |
81196 |
4371 |
5278 |
5554 |
Minimum |
1 |
17 |
17 |
19 |
Maximum |
81197 |
4388 |
5295 |
5573 |
Sum |
77,672,595 |
34,908,819 |
35,529,286 |
52,373,368 |
Count |
96,507 |
96,507 |
96,507 |
96,507 |
Cov |
1.19 |
1.64 |
1.73 |
1.75 |
4.2. Pick表现结果
在证明了真实值与仿真值之间的相似性之后,进行了额外的验证,以确保不仅数据相似,且真实样本的收集值能够在仿真数据中得到体现。On-Time in Full (OTIF)本质上是评估订单是否符合预定的准时性和完整性标准的指标。该指标通常用于整个供应链过程,并且作为供应链的最后阶段,产品交付给客户时既能准时又能完整地交付,便成为评估供应链整体绩效的标志性指标。在本研究中,我们使用历史数据计算了OTIF率,并在对三种替代方法进行仿真实验后,同样计算了这三种替代方法的OTIF率。
Table 5. Shapiro test of three alternatives vs. true data
表5. 三种替代方法与历史数据的Shapiro检验
Shapiro test |
Statistics |
p value |
Formula vs history data |
0.844 |
0.001 |
Curve vs history data |
0.504 |
2.77e−8 |
ML vs history data |
0.67 |
1.89e−6 |
随后,我们将三种替代方法计算得到的OTIF率与实际数据中观察到的OTIF率进行对比。Shapiro-Wilk检验是常用于频率统计检验中的一种方法,用于测试数据的正态性。表5展示了三种替代方法和基准数据的Shapiro-Wilk检验结果。检验结果表明,数据不符合正态分布。因此,针对这种情况,我们选择使用Wilcoxon符号秩检验进行进一步分析。
由于两组值之间的差异不符合正态分布,我们采用了Wilcoxon符号秩检验。表6列出了三种替代方法和基准数据的检验结果。Wilcoxon符号秩检验的p值小于0.05,表明结果具有统计显著性。这意味着两种方法产生的结果存在显著差异。当p值大于0.05时,我们接受原假设,表明测试数据集之间没有显著的统计学差异。
Table 6. Wilcoxon signed rank test of three alternatives vs. history data
表6. 三种替代方法与历史数据的Wilcoxon符号秩检验
Wilcoxon Signed Rank Test |
statistic |
p value |
Formula vs history data |
140.5 |
0.394 |
Curve vs history data |
137 |
0.34 |
ML vs history data |
146 |
0.468 |
为了进一步验证测试数据集的统计稳定性,我们进行了Pearson相关系数检验。表7列出了三种替代方法和基准数据的Pearson相关系数检验结果。Pearson相关系数的p值小于0.001,证明了两组数据之间存在统计学显著的相关性。这一额外的证据支持了以下结论:方法A和B之间观察到的差异表现出一致的稳定性,且不应归因于随机事件。
Table 7. Pearson correlation coefficient test of three alternatives vs. history data
表7. 三种替代方法与历史数据的Pearson相关系数检验
Wilcoxon Signed Rank Test |
statistic |
P value |
Formula vs history data |
0.865 |
1.21e−8 |
Curve vs history data |
0.736 |
1.79e−5 |
ML vs history data |
0.805 |
7.22e−7 |
经过上述检验后,我们可以确认,三种设定模型输入参数的替代方法是有效的。历史数据挖掘和预测方法的应用,不仅大大减少了时间–运动研究所需的时间,而且得出的结果与传统的时间–运动研究方法相当。这一点对现代仓储管理至关重要,因为仓库操作的效率直接影响到整体运营绩效。因此,采用数据驱动的方法进行优化,可以显著提高效率,并为仓库运营提供更加精准的决策支持。
5. 结论与未来研究
Time-motion study、Curve fitting和Machine learning与基于这些参数计算的关键绩效指标(KPIs)相比,显示出与公司A历史数据的显著相似性。这一结果确认了这三种仿真方法在建模公司A仓库中的有效性和可靠性,表明它们能够准确地反映仓库运营的实际情况,并为优化仓库操作提供有力的支持。
因此,未来的研究可以考虑以下几个方向:
a) 采用多种回归方法用于其他操作阶段,如运输和包装时长。
b) 探索增强的数据挖掘方法,以提高参数数据的真实性。
c) 使用仿真工具研究仓库布局设计,并在此基础上运用动态现实的参数。
d) 将第a)、b)、c)点的研究扩展到仓库员工调度的优化分析。
基金项目
国家自然科学基金资助项目(72071139);四川省科技厅(S01)-重点研发计划项目(2022YFWZ0007)。
NOTES
*通讯作者。