我需要一种算法来暂停没有库存的订单。
每个订单可以有多个产品,每个产品都有自己的数量。
根据库存水平,我想知道如何确定哪些订单被搁置。可能是订单数量最少的。
为了简单起见,这是一个例子:
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个订单的规模实施的。
我的方法是获得所有订单中没有足够库存的产品。然后找到要保留的最小订单组合。可能会考虑其他可能在这些订单中缺货的产品。
希望你发现它和我一样有趣
答案 0 :(得分:0)
这是scheduling algorithm的一个实例。实际上,您希望减少任何订单的最大延迟。想想看:如果你有一个无限的股票,订单会随着他们的到来而变得每个人都会高兴。
您可以调整Multilevel feedback queue:
的原则foo(order)
j1
和j2
并选择j1
,您可以使用其他优先级函数j2
来提高bar(j2)
的优先级less(j1,j2)
。这是在不考虑库存水平的情况下在一组工作之间做出的决定。 现在您可以根据具体情况进行调整。自然顺序可能是FIFO
,smaller first
,bigger first
。您可以设计优先级,以便在库存允许的情况下立即处理包含缺货商品的订单。