【发布时间】:2016-04-12 00:10:20
【问题描述】:
在资源分配问题中,我有 n 个桶大小和 m 个资源。资源应该以这样的方式分配给存储桶,以使利用率最大化。我需要在 Node js
问题来了:假设我有 2 个桶,分别是 50 号和 60 号。资源大小为 20、25、40。以下是可能解决方案的更合适的表示:
解决方案 1:
|铲斗尺寸 |分配的资源 |利用率 |
| 50 | 20, 25 | 45/50 = 0.9 |
| 60 | 40 | 40/60 = 0.667 |
在这种情况下,总利用率 >1.5
解决方案 2:
|铲斗尺寸 |分配的资源 |利用率 |
| 50 | 25 | 25/50 = 0.5 |
| 60 | 20, 40 | 60/60 = 1.0 |
在这种情况下,总利用率为 1.5
推理:
-- 背包方法将返回解决方案 2,因为它会根据更高的存储桶大小进行优化。
-- Brute-Force 方法将返回两种解决方案。我对这种方法的一个担忧是;鉴于我必须使用 Node js 并且它是单线程的,我对 n(桶)和 m(资源)非常大时的性能持怀疑态度。
蛮力会做得很好,还是有更好的方法/算法可以解决这个问题?另外,我上面提到的担忧在任何意义上都有效吗?
【问题讨论】:
标签: node.js algorithm optimization brute-force knapsack-problem