python - 如何计算盒子分类/包装问题中所需的队列数?
问题描述
我需要确定一个盒子分类系统的大小,让盒子排队直到达到包装数量。然后他们都以固定的速度离开队列。
这是通过生产实时完成的。我可以估计每个 SKU 的数量,但我无法预测它们到达分类/分拣设施的顺序。但是我可以查看以前的制造数据来测试算法。
关键是您将如何估计完成排序所需的箱/队列(最小化“所有队列使用”条件)
我想到了队列理论,但我想用已知数据(数据不是完全随机的)运行一些模拟,并且我搜索的大部分内容都假设随机进入队列。
我开始编写一个 python 脚本来自己建模队列行为,并使用给定的固定时间进行队列疏散。
有什么建议么?
提前致谢。
理想情况下应该是基于python的
预期的输出应该是使用的队列与时间的关系,在队列数量有限的情况下,“丢弃”的盒子数量与时间的关系
解决方案
你的问题令人沮丧地模糊。我想我理解你的要求,但更多细节会有所帮助。
据我了解,您有类似订单处理设施的东西,其中每个订单都是一个队列,您在其中持有物品,直到订单的所有物品都到达。然后你以某种速率释放该队列(每个项目 x 秒,或类似的东西)。
您需要的队列数量取决于:
- 预期交货率:您每分钟要完成多少个订单?称之为
OPM
:每分钟订单。 - 队列的平均生存时间。也就是说,从第一个项目到达队列到最后一个项目离开的时间。
QLT
: 队列生命周期
您需要的队列数是OPM * QLT
。如果您想每分钟交付 100 个订单,平均队列寿命为 3 分钟。您将需要 300 个队列。如果平均队列寿命为 30 秒,那么您只需要 50 个队列。
队列生存期是填充队列所需时间和清空队列所需时间的组合。调用那些QFT
和QET
。QET
很简单:订单中的平均项目数除以队列空率。您说项目以固定速率从队列中释放。如果平均订单大小为 5 件,并且您以每分钟 12 件的速度清空队列,则清空队列需要 5/12 分钟(25 秒)。
QFT
(队列填充时间)取决于平均订单大小和物品被拣选并交付到队列所需的平均时间。如果你不能从你的制造数据中得到它,那么你将不得不自己估计它。
通过这些计算,您可以很好地估计您的系统平均应该如何反应。然后,您可以使用这些数字构建一个简单的模拟,并开始改变一个或多个参数。例如,如果每个订单的平均商品数量在一段时间内变大或变小,会发生什么情况。如果它变得更大,那么QLT
可能会增加。如果它变小,QLT
将会减少,但您可能会有更多并发订单(因此需要更多队列)。
推荐阅读
- javascript - 对 getElementById 使用字典键
- angular - 在 Ionic 4 中传递 Iframe src 值
- azure - 无法通过 azure 函数填充自定义 azure B2C 属性
- android - 包含片段的 setContentView 布局上的 android.view.InflateException
- go - 为什么golang时间功能在某些日期会失败
- php - 制作一个多线程 websocket
- python - 如何在ROS中用Kinova Jaco2画一个圆?
- listview - 有没有办法改变 Flutter 上 ListTile 的领导背景?
- c# - C# List.AddRange in Parallel.For 发生 ArgumentException
- firebase - Google Cloud Platform 网络控制台 - 云功能指标图表未显示