Algorithm 库存水平算法
我需要一个算法,在没有库存的情况下下达订单 每个订单可以有多个产品,每个产品都有自己的数量 根据库存水平,我想知道如何确定哪些订单要暂停。可能是最低的订单数量 为了使其更简单,以下是一个示例:Algorithm 库存水平算法,algorithm,Algorithm,我需要一个算法,在没有库存的情况下下达订单 每个订单可以有多个产品,每个产品都有自己的数量 根据库存水平,我想知道如何确定哪些订单要暂停。可能是最低的订单数量 为了使其更简单,以下是一个示例: Order #1 A 5, B 3, C 10 Order #3 A 1, B 2, C 3 Order #4 A 5, B 5, C 5 Order #5 A 1, B 1, C 1 **Stock Level** A = 5, B = 5, C = 5 显然,订单1需要暂停,因为我们没有1
Order #1
A 5, B 3, C 10
Order #3
A 1, B 2, C 3
Order #4
A 5, B 5, C 5
Order #5
A 1, B 1, C 1
**Stock Level**
A = 5, B = 5, C = 5
显然,订单1需要暂停,因为我们没有10个产品C。现在我可以完成订单5和3,或者只是订单4。为了使它更复杂,我需要这个功能或另一个释放的订单搁置,一旦我们有库存
这将以每天处理约3000份订单的规模实施
我的方法是得到所有没有足够库存的产品。然后找到要搁置的最小订单组合。可能会考虑那些订单中可能缺货的其他产品
希望你和我一样感兴趣这是一个例子。实际上,您希望减少任何订单的最大延迟。想想看:如果你有无限量的库存,订单就会源源不断,每个人都会很高兴
您可以采用以下原则:
- 每个订单都有优先级
- 刚进去的人的优先级最低
- 使用优先级函数
foo(订单)
- 每次您可以在
和j1
之间进行选择,并选择j2
,您就可以使用另一个优先级功能j1
bar(j2)
- 作业之间也存在自然排序
。这是一组工作之间的决定,而不考虑库存水平李>less(j1,j2)
现在,您可以根据具体情况进行调整。自然顺序可能是
FIFO
,先小后大。您可以设计优先级,以便在库存允许的情况下尽快处理缺货的订单。听起来像是一个家庭作业问题。我会尽量避免使用“尝试所有组合”程序,因为知道哪些订单将首先处理,并能够解释原因可能更为重要。因此,我会简化规则,并接受比最低限度稍多的搁置订单。基于此,我将尝试创建一个订购字段,告诉您哪些订单是“最好”首先完成的,然后尽可能按照订单的顺序执行。这在取消暂停时也会起作用,只需重新处理它们,看看它们是否能够实现。这是一个多维背包问题。您可能是指“没有10个产品C”。通常,订单具有优先级,或者以“先到先得”的方式处理。用成千上万的订单行优化3000个订单可能会花费很长时间。他不应该忘记处理并发编程问题。这更像是@eliasah的一个例子这是怎么回事?我不认为线程是这里的主要问题,但他没有说他没有使用线程。但我从来没说过这是个大问题。我刚把这个想法加入到书堆里