仓库拣货路径优化
先说问题,最近看了一些仓库的拣货逻辑系统设置,发现用了最简单的逻辑来设置,就是做了个表格配置表,仓库全部库位做了拣货顺序,路径就按照拣货顺序进行排序。
这个逻辑的问题点在于路径是按照通道1/2/3/4/5...这样下去,假设每次拣货每个通道都会走一次,实际通道可能是1/3、2/3/5、3/5/7,中间一些通道是不需要经过的,所以会导致路径非最优问题
那么如何解决呢。小编假设了几个场景来讨论。
第1个场景:通道都竖着摆放
假设条件:
人和车拣货前都在1通道前面
库位编码按照S型从小到大
库位命名:库区-通道-排数-层/格
最短路径方案1 纯S走位:
第1步:开始通道为奇数,则开始通道按照排数正序拣货;开始通道为偶数,则开始通道按照排数倒序拣货
第2步:接下来通道,由前面通道决定,通道奇偶一样则相反排序,通道奇偶不一样则一致排序
结论1还有一个假设前提就是路径还是按照S型最优。实际有可能折返路径会更短,所以需要再增加一个判断,用最近邻点法是继续选择S路径还是折返到下一个通道最近的拣货排。
再做2个假设:
每个库位都一样宽假设为1这样才能算哪个路径更短。(不一样宽有参数也可以算)
货架/通道宽度算1个库位宽度(算几个实际对比是相冲抵的)
对比算法:
S路径到下一个库位距离S1=剩余排数+S路径到下个库位的排数+通道差
折返路径到下一个库位距离S2=折返排数+到下个库位的排数+通道差
说明:路径不同库位也不是一个,这里面的库位都是指到下个通道的第1个库位,且这个库位是这个通道该拣货任务中的两端库位
最短路径方案2 最近邻点:
第1步:开始通道为奇数,则开始通道按照排数正序拣货;开始通道为偶数,则开始通道按照排数倒序拣货
第2步:计算S=Min(S1,S2),若S=S1,则继续S型结论,否则按照折返路径;每到通道最后一个拣货排都进行一次判断
第3步:通道内顺序由命中的第一个库位做起点判断
说明:最近邻点包含了S路径和折返路径,折返路径对实操人员虽然路径可能短,但是落地会难会消化大脑,可能会用S型走法来走折返路线,反而抱怨路径不合理。这个需要做到每个人记住位置,自己能快速判断怎么走最近才合适。
结论:方案2可能路径更短,但是实操可能容易犯错导致路径更长,方案1更容易让人理解接受。
第2个场景:通道都竖着摆放 但是通道是多段
假设条件:常见情况下通道存在分为两段中间是过道,但是通道还算一个通道。(两段算一个通道还是两个通道核心看库位规划和拣货路径,要把它当成一个区域一起拣货就可以命名一个通道,否则就2个通道)
相比第1个场景区别点在于跨通道的时候路径选择更多,比如
方案1 纯S走位,可以走大S也可以走小S,能走小S路径会比大S短(这类布局是用空间换时间),但是不管走哪个库位推荐顺序不变,只是拣货人员看到下个库位的时候自己就知道走小S
方案2 最近邻点,S=Min(S1,S2,S3,S4),在场景1里面新增了2个路径,即从中间过道向上绕和向下绕两端拣货库位的距离。
结论:跟第1个场景一样
说明:不管哪种算法都是在算一个通道拣完后先拣下一个通道两端的哪个拣货排,这个位置定了库位推荐顺序也就定了
特别是通道多段的时候,拣货到下个通道的时候一定要自己判断下如何走更近更快
用S1/S2/S3/S4模拟路径最短会有个看起来违反常识就是路径很多会有重复,这个估计也会让操作人员不习惯
第3个场景:跨拣货区拣货
假如第2个场景,通道有过道我们算2个通道,就可以当成2个拣货区来计算。2个拣货区都拣货求解本质跟2个通道一样,就是算拣第2个拣货区时第1个拣货库位是哪个,后续就变成拣货区内如何拣货就跟场景1/2一样。
在第1个场景时候就做了一个假设:人和车都在1通道前面。但是在跨拣货区的时候人和车是有实际的位置定位即最后的拣货排。
布局为(区1-区2)计算步骤:
第一个通道肯定是在拣货区的两边,哪边由距离决定,距离其实就是库位宽度和通道宽度的倍数和比大小
第一个通道内的拣货排序类似场景1,奇数通道正序偶数通道倒序。然后剩下算法跟场景1/2一样
布局为(区2-区3)计算步骤:
第一个通道就是按照通道大小进行正向排序
第一个通道第一个拣货排肯定是在通道的两边,由距离决定,距离就是库位数比大小(假设库位一样宽)
然后就拣货区内拣货就跟场景1/2一样
说明,这个就需要做个区域关联关系的参数才能用来计算选择哪个计算步骤
综上,实际在计算路径时候,我们拆了3个单位:拣货区、拣货通道、拣货排(这里面层/格未讨论:层可以按照从上到下算、格类似排;有很多是层格就一个单位);拣货区可以按照库区规划按照顺序进行排序;跨拣货区重点判断第一个通道,跨通道重点判断第一个拣货排,第一个拣货排确定了就能确定这个通道的所有拣货排顺序。
最终把所有的拣货排按照顺序串连起来就是最终的拣货路径。这个路径要最短不一定全部是S型,符合简单操作S型最好。不管哪种选择,再换通道的时候要做到知道下个拣货位置在哪,自己判断最短路径走过去是最快的,特别是中间有过道的时候。