Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 库存水平算法_Algorithm - Fatal编程技术网

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的一个例子这是怎么回事?我不认为线程是这里的主要问题,但他没有说他没有使用线程。但我从来没说过这是个大问题。我刚把这个想法加入到书堆里