按订单算法组织存储

Organize storage by orders algorithm

假设我有很多产品的大存储空间,并且存储空间中的每个架子最多可以存储 k 个元素。我还有一长串包含订购详情的清单(每个订单都可以包含各种不同的产品)

现在我需要编写一个算法来获取订单列表详细信息作为输入,returns 组织存储的最佳方式。

算法必须遵循以下条款:

  1. 将我的产品拆分到货架上(子组大小 k)
  2. 通常放在同一个货架上的产品

我想到了双哈希图 > 当每个产品都有一个不同的哈希图,它包含它附带的所有产品并计算它附带的次数但我仍然找到它很难将其拆分为大小为 k 的子组。 你怎么看?是否有更好的算法来组织它,或者可能有这样的库?

这基本上是超图分区(具有连通性 objective 并且对每个部分中的节点数量有硬性限制,而不是对 k 个近似平衡的部分的需求)。这将优化每个订单所需的平均货架数量。有各种各样的图书馆; KaHyPar可能是目前最好的。