前文的数字化仓储文章中提到了对数字化仓的理解与规划的步骤,整个步骤可以看作为黑匣子,并不是说需要一步一步的去完成,而是输入参数,设定目标函数,在最理想状态下可以得到最优的仓储场景建议。后续我们也将继续对里面的步骤与模块进行一一阐述。本篇文章主要以分拣模式的最优化判定为例,对分拣模块的内部逻辑进行说明,此方法同样可以用于对于仓储中缓存区的规划。
部分:数字化仓储的基础环境说明;
第二部分:数字化仓储规划分拣模式优化与判定的方法和逻辑;
第三部分:算法样本的编写与代码实现。
在整个系列文章中阐述的用数字化方式进行仓储规划的完整应用功能,将陆续部署在“数字化决策平台”的在线应用中。另外,也将继续招聘两名有经验的的规划人员,有兴趣请关注近期公众号的招聘信息。
为了更好的理解数字化的规划方法,我对基础部分做一些说明,先从总体来看数字化方式规划仓储的环境。对于数字化仓的规划,我整体采用matlab(数学建模工具)进行算法实现与三维模型的数字化呈现。
首先,用数字化的方式构建仓储,是在一个三维坐标系中进行呈现,下图是构建的一个工厂的工业园内的设施环境。里面的不同色块代表不同的设施功能,比如有生产厂房,也有仓储,还有员工宿舍,是以实际的尺寸比例构建,并且可以用热力图表现实体中的物流量关系(可参考后面的热力图)。三维模型的构建方法在两年前的文章中有阐述。
附上部分用matlab编写仓储三维模型的代码示意,代码中的参数变量可以供数字化模拟的时候进行调用运算,并寻优后返回,已达到模拟运算的效果(如何用matlab构建数字化的三维模型,有兴趣可以在评论中留言)。
然后,在整个坐标系下进行规划,规划中的每一个元素都是由数据进行记录,这里与传统的方式不同的核心在于,对于场景进行初始化之后,仓储中的每一个设施功能区都是可以被优化,也就是说,传统的方式最多做到模拟方案优劣,而在数字化的场景下可以“寻优”方案,多者可以模拟几十万种方案的可能性。
如图中,整个仓储的空间都用数字化进行记录(rgb的颜色可以代表不同的数据参数),也就是说,空间中的每一个网格,都有属性,所谓的属性可以理解为频次、数量、尺寸等,同时对功能区构建属性,两者进行匹配寻优,便可以构建最优化的仓储场景,具体的方法在布局的模块文章中阐述。
再者,我们将流程在实体功能区中进行串联,构建成仓储的网络图,流程初分为“入、存、拣、包、出”,当然还可以细分到检验、复核等,具体流程可在初始化场景中组织。每个功能区都是一个服务台,这个服务台是由三类资源:“设施、设备、人员”构成,在建模中也可以看成是作业流程的函数运算中去调用这些资源,然后通过目标函数来进行寻优,找到最优的资源配置。后续的文章中也会对此进行详细阐述,主体逻辑结构如图。
方法与逻辑
前述作为铺垫,下面具体来看分拣模式的判定方法。
几乎所有的物流规划范畴内的要素都和时间空间两个维度有关,每个功能区都有各自的特征,也都有输入、输出和内部逻辑,而且整个仓储的作业,基本上都可以看成“拆分、组合、运动和静止”,静止的时候就是存储或者是缓存、运动的时候就是搬运或者分拣等基本活动。然后再对活动进行绩效分析,投入产出分析,把这些内容转换为数字化的方式,也就做到数字化方式的仓储规划。
那么以这样的方式理解分拣的流程,也就是从物料存储的区域将物料拣出,如果是合并拣选那么还需要进行一次二次分拣,并缓存,等待打包、复核或者是装车,而二次分拣和缓存的区域也都可以理解为二次分拣区。
|模拟逻辑
,对于二次分拣区的模拟同样是在三维坐标系中进行模拟,人员、设施、设备以及物料搬运轨迹,都将在整个坐标系中提取数值;
第二,交付周期作为约束,决定了批次划分的时间上限,所有订单必须在交付周期内完成,交付周期也可以按整个仓作业作为一个交付周期,也可以按流程进行切割;
第三,存储区中的拣选路径决定了拣选时间这个变量,因此,拣货路径可以作为一个单独的方法模块输出拣选时间t(i),同时也作为该模型中的输入变量。同时,货位设计也在很大程度上影响了拣货路径和时间,所以abc分析可以作为拣货路径的一个重要输入,在之前的文章中提到,物料的存储位置是物料在数字化模拟中的一个重要属性,用于参数的取值,在布局模块中也将详细阐述。目前拣货路径的方法在本文中未作构建,仅用参数值作为变量的输入;
第四,订单和物料的特征,是作为分拣模式中寻优的重要参数,分拣模式的选择也就是根据订单的不同批次组合下所使用的人员、设施、设备各种资源的数量与时间组合。所以,在数字化模式的规划中,将eiq作为模拟寻优的参数,而非人工经验与量化判定的计算方法,这是一个重要的逻辑变化;
第五,批量与批次可以作为数字化模拟的输出,也就是本文中阐述的数字化方法模块中的输出,可以是计算机模拟,按照目标函数的判定进行寻优,得到最优结果。但由于仓储规划还是用于管理决策,属于“软系统方法”,因此,在当前的构建中,是将可行范围的结果组合进行输出,然后再结合计算机进行人为干预判断,找出最优的批量与批次;
第六,人员、设施和设备,作为仓储规划与运作中的主要资源,在该模拟中作为调用的对象,而这些资源都有各自的属性,比如速度、作业能力、物理尺寸等,同时这里人员和部分设备的属性相同,可以进行替代,设备资源在模拟中替换了人员,也就是自动化环境下的无人作业;
第七,二次分拣区模拟规划输出的面积或者是空间数据,将作为功能区布局中的重要输入。
对分拣模式的判定,本文里作以下前提说明:
|模块在数字化仓规划系统中的目的
,将波次定义为每天分拣截单的批次,对于订单分拣批次寻优,找到最优的订单批次组合;
第二,分拣模式分为按单拣选、合并物料拣选和两者结合的模式,对于拣选模式寻优,找出最优的拣选模式;
第三,在两者结合的拣选方式中对订单的en(订单行中物料的数量)合理取值的寻优,找出订单拣选模式区分的最优en值。
|模块的寻优判定方式
,仓储的交付时间为当天完成订单出库;
第二,人员或者设备的组合最优;
第三,分拣区的设施面积大小最优。
|输入数据
零售行业的企业模拟数据,日均订单量左右,下图为部分字段代码。
我用matlab对以上步骤进行了计算过程的编写,用于展示该种方法的过程和效果,其中构建了四个子函数和一个主函数,子函数中分别包含了,en的计算方法,iq的计算方法,按单拣选方法和合并拣选方法,主函数中以上八个主要步骤进行逻辑运算。此次的测试算法的编写做了一定程度的简化。其中对日均批次按2-6个批次进行模拟,en的取值为5-20之间进行模拟,输出矩阵的组合为90组。另外,子函数中比如en、iq等方法的分析要素可根据需求进行扩展。
|主要逻辑
,订单分批切割,每天可以分为1-n个批次,循环模拟;
第二,组建“订单-物料-数量-距离-物料单位面积”的矩阵;
第三,对订单进行合并,用于en取值的查询;
第四,在该批次下对大于z的en取值订单进行按单拣选模拟,调用en方法函数和按单拣选方法函数;
第五,在该批次下对小于z的en取值订单进行合并拣选模拟(暂未模拟合并拣选后的播种),调用iq方法函数和合并拣选方法函数;
第六,输出不同z取值下的人员/设备、设施面积的向量组;
第七,输出不同批次下的人员/设备、设施面积的矩阵;
第八,按目标函数进行判定,输出最优的资源组合。
算法样本编写与代码实现