algorithm - 按订单算法组织存储
问题描述
假设我有很多产品的大存储空间,并且我存储空间中的每个架子都可以存储最多 k 个元素。我还有一个长长的订单清单(每个订单可以包括各种不同的产品)
现在我需要编写一个算法,获取订单列表详细信息作为输入,并返回组织存储的最佳方式。
该算法必须遵循以下条款:
- 将我的产品分成货架(子组大小 k)
- 通常放在同一个架子上的产品
我想到了双哈希图 <productName,<productName, counter>> 当每个产品都有一个不同的哈希图来保存它附带的所有产品并计算它附带的次数但我仍然发现很难将它拆分为子组大小 k。你怎么看?有没有更好的算法来组织它,或者可能是一个这样做的库?
解决方案
这基本上是超图分区(具有连通性目标和对每个部分中节点数量的硬性限制,而不是对 k 个近似平衡部分的需求)。这将优化每个订单所需的平均货架数量。有各种各样的图书馆;KaHyPar可能是目前最好的。
推荐阅读
- spring - 在所有 @Retryables 上执行的 RetryListenerSupport 处理程序
- php - 使用 php 在 mysql 数据库中添加用户名、电子邮件和密码时出错
- automation - 我可以使用什么编程语言和库来自动化这个 Blender 到 Unreal Engine 的管道?
- angular - 模拟服务中的方法被调用,但 toHaveBeenCalled() 在 Angular Jasmine 中失败
- sql-server - 使用“插入选择 IDENT_CURRENT()”和“从表中插入选择 IDENT_CURRENT()”时 IDENT_CURRENT() 的值
- git - ~/.ssh/config 正在导入
- python - AttributeError:“str”对象没有属性“configure”
- excel - 连续单元格的VBA部分匹配(值/字符串)
- javascript - 使用 Jquery 上下循环遍历 div
- android - Android 和 Windows 之间的 Socket 通信