鉴于:
- 一组物品,每个物品都有放入给定容器类型的成本。
- 一组容器类型,每个类型都有许多可用容器。
例子:
数量*容器类型:5 * A、3 * B、2 * C
项目(成本):
3 * X (A=2, B=3, C=1)
2 * Y (A=5, B=2, C=2)
1 * Z (A=3, B=3, C=1)
问题:
找到物品在容器中的最佳放置位置,以使成本最小化。为简单起见,仅将项目放入单一类型的容器中。
我尝试了匈牙利方法来解决这个问题,但是运行时间为 O(n³),对于大型问题(例如,100000 个项目)来说,这是非常令人望而却步的。
我目前的解决方案是一种贪婪的方法,它只是按成本 (asc) 对项目容器组合进行排序,并分配第一个容器,并在 O(n log n) 中剩余足够的数量。
有更好的解决方案吗?