仓库出库算法的深度探讨(10分)

  • 主题发起人 主题发起人 青云
  • 开始时间 开始时间

青云

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在在做一个仓库出库的算法:
比如要求出100件货,仓库里现有货物,按入库时间顺序排列是: 20,50,15,30,20... ;
为了能够恰好满足100,那么就选20+50+30=100;
也就是跳过中间的15;
这个算法我已经实现了:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3927406
并开始投入使用,感觉不错;

但是有的时候发现,电脑会算死;

比如我要出库的数量在仓库里不满足,那么就相当于把所有的组合都要算一遍才能知道;
有一次,要出库10000件货;仓库里共有85个货位有满足条件的货,但是实际上是凑不出正好10000的,所以电脑就把所有的组合都算了一遍,等了半个小时,出不来;
我用概率论知识算了一下,呵呵,其组合数是2的85此方,大概是4*10的25此方;
这么大的组合,当然算不错来;
不过后来我发现,这85个货位里,有很多数量相同,比如 其中20个货位的数量是47,65个货位的数量是26 ;如果考虑到这种同数量的情况,我想组合的数量要大大降低;可能再用电脑就不会算死;

所以现在我有两个问题:
1.如果考虑同数量,算法该如何实现;
2.组合数的求解,如何求解,这是个数学问题,
类似我提的:
http://www.math.org.cn/forums/index.php?act=ST&f=17&t=64344&st=0#entry307625
 
http://club.pchome.net/topic_1_15_3179668__.html
 
有这样设计的吗,如果老不适合,旧货岂不是老买不去,仓库一般是先进先出,旧的先出
 
楼上的朋友,说的有点道理,不过有的产品,对日期不是很敏感,而且,我也是考虑了先进先出的因素。
或者就把它当个算法题也不错,我想在一些场合,还是有点小用的。
 
如果很多数字都存在重复,要避免重复计算,可以采用这个帖子给出的算法:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=555596
 
把重复的去掉,再组合
 
在什么情况下用自动计算出库数量???

其实不一定要结果100%正确,可以设定满意率,如95%,这样就会速度快一些。
 
后退
顶部