使用Python解决近似的不易腐烂的库存分配问题

问题描述

我正在寻找一种有效的算法,可以将多个商店中可用的有限数量的不易腐烂的库存(商品)大致或紧密分配给按以下顺序排列的订单列表: (a)订购日期,然后跟着 (b)为每个客户指定的优先顺序。

总体分配受到两个约束- (i)每个客户对可以订购的总库存有固定的限制,也称为订单配额和 (ii)每个商店的库存可用性(不能在任何两个商店中对库存进行混洗/移动)。

“近似”因子是订单的最终分配,大约为5000万个订单,不一定是最佳分配,也可以是一个大致数字。尽管这有待商discussion,但如果分配不当可能会加重总的估算数字。

让我给出上面的一个工作示例-

订单列表:

以正确的分配顺序排序的订单列表

enter image description here


订单配额:

每个客户的订单配额

enter image description here


商店库存:

每个商店的库存量

enter image description here


如上所示,当前放置了7个订单,按订单日期和客户优先级排序。
1.订单1被接受,因为朱莉已从商店编号A1(其中有200个单位)订购了100个单位,这低于她目前的250个单位的定额配额。分配之后,朱莉的配额减少到250-100 = 150单位,而商店A1中可用的总单位减少到200-100 = 100单位。
2.下一个下达订单2的安德鲁将得到处理,也将被分配,因为商店A1拥有100个单位,该数量大于订购的50个单位,而安德鲁的配额下降到150个单位。
3.同样,成功分配了直到130个单位的茱莉下的订单5为止的所有订单。
4.转到订单6(安德鲁下达40个单位的订单)将不会分配,因为他的订单配额(在此阶段为0)小于订购量(40)。
5.接下来是订单7,由于商店A1没有足够的库存(仅剩余50个单位),Timothy下达的100个单位的订单将不会分配。

目前,我正在使用PySpark在每个订单行上使用内部联接强力解决此问题,然后将订单量与配额和商店库存进行比较。

我不期望端到端的实现,而是想学习以最佳的精度解决此问题的最佳方法,也许使用一些适合此问题的数据结构。另外,我在这里标记pyspark,以了解是否可以通过分布式方式解决?长期阅读的歉意。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...