[转帖]求 仓库取货 的合理算法 ?
我一直在做仓库运作管理软件(WMS),目的就是通过运用运筹优化理论,使仓库运作低成本,高效率;
但是有一个看似简单的运筹问题,就是如何合理的从仓库里一堆货里合理去取货, 我考虑多年始终没有能力得到好的处理方法;
比如:仓库里只有一种商品,有一组货架,货架上有若干货位,每个货位上放一个托盘,由托盘存放商品,每个托盘上的商品最大数量为10箱,取货指令由电脑控制,叉车工根据指令进性取货作业
现在比如有个客户要5箱货,此时仓库里有若干托盘,各个托盘上的商品数量为 1,1,1,1,1,2,3,5,7,10....
这时候有很多取货方法,比如
方法一:
电脑指示从小到大取货,那么
叉车工开着叉车把仓库里把那些商品数量为1的托盘全拿走,送到出库口,这样要来回5次,显然这样很浪费人工,也浪费叉车的汽油。
方法二:
电脑指示从大到小取货,那么
叉车工开着叉车把仓库里那个商品数量为10的托盘拿走,送到出库口,取下5个,托盘上还剩下5个,所以叉车工还得把该托盘从出库口送回货架上;
方法三:
电脑指示按照最接近取货数量的方法取货,那么
叉车工开着叉车把仓库里那个商品数量为5的托盘拿走,送到出库口,取下5个,这时候,该托盘正好空了,没有必要再回到货架上,既省人力,又多腾出一个货位;
根据以上现象,于是得到这个结论:按照最接近取货数量的方法取货 最合理。
果真合理吗?
再举个例子,比如客户要8个商品, 此时各个托盘上商品数量分别为 4,4,5,7,10....
按照最接近取货数量的方法,先取商品数量为7个的那个托盘,然后再在商品数量为4的托盘上取1后,取完后,还剩3个,这样就需要把把剩余3个商品的托盘从出库口送回货架;
实际上,此方法不是最合理的,这里凭感觉都能看出,实际上把那两个商品数量为4的托盘取出最合理,因为同样都是取两次,后者没有剩余,不需要把最后一个托盘送回去;
合理的方法,怎么去实现呢。需要什么知识做指导呢,如果有现成的数学公式最好,如果没有,通过一些算法实现也行,比如贪婪(背包)算法;
当然我这里只是考虑取货的效率和人力,还要考虑商品的生产日期,先进先出,货位承受等等问题做一个合理的均衡;
这里我们暂时就先不考虑这些;
希望能够和大家就该问题做些探讨.
分配货位时需要同时考虑货架稳定性和出入库操作的效率,将这一问题描述为一个组合多目标优化问题,采用遗传算法对这一问题进行了求解,对交叉算子进行了改进,得到的解可兼顾两个优化目标。仿真实验表明这一方法可较好地解决货位分配问题。
http://www.agzo.cn/html/2005/object/891w63...d7s80y00q45870/
关于这个算法,具体不是很了解。但是在两个比较优秀的WMS(MK,EXE)里,已经有实现的了。
推荐到鲜果: 查阅更多相关主题的帖子: 仓库取货 仓库管理



评论
发布者 匿名用户
2008-7-24 14:23:13
发布者 匿名用户
2008-8-8 13:02:07