python 库存管理_Python中的零售库存管理

一家大型零售店有不同容量的货架来存放不同种类的商品。假设没有限制哪个商品去哪个货架,任何商品都可以放在任何货架上。目前的挑战是如何在货架容量不超过的每个货架上优化分配不同重量的商品。

所以,如果一个货架的容量是500kg,我们需要把不同重量的商品放在一起,这样n种商品的总重量之和为<=500kg。在

这可以看作是为一个预定义值寻找和组合的问题。我关注了this问题,得到了一个由thefourtheye编写的解决方案。在

下面是我使用的代码片段import pandas as pd

def a(lst, target, with_replacement=False):

def _a(idx, l, r, t, w):

if t == sum(l): r.append(l)

elif t < sum(l): return

for u in range(idx, len(lst)):

_a(u if w else (u + 1), l + [lst[u]], r, t, w)

return r

return _a(0, [], [], target, with_replacement)

commodity_weights = pd.np.array(retail_data.commodity_weights)

b = a(commodity_weights,1000000)

因此,100万是一个货架的目标容量,需要通过放置不同重量的商品来达到。运行上述代码,b提供的输出是

^{pr2}$

因此,这里我们只得到不同商品的权重,每个数组的和满足目标容量。在代码应该运行得更快,但是为了得到输出,我不得不等了将近2分钟。目标号码(1000000)是否导致延迟?或者还有其他有效的方法?在

这里我只知道商品的重量。retail_data有多个列,其中两个列是commodity_weights&amp;commodity_id。在上面显示的结果中,我们只能看到权重,但我也需要commodity_id。所以我的结果应该同时产生commodity_id和关联的commodity_weights。我怎么能得到那个?

从id和权重列表中,是否有任何方法可以在分配方面实现最佳化?在

提前谢谢!!在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值