【发布时间】:2014-11-30 08:57:19
【问题描述】:
我有一个N_w 权重w_i 的列表,其中不同的权重(不一定)相等。这个列表需要均匀分布在N_b有序的bin中,其中N_b N_w,同时保持顺序。
示例
权重列表(1,2,1,5,3) 可以分配到3 箱中,如(1,2,1)、(5)、(3)。虽然不均匀,但这是在保序约束下的最优分布。
有没有什么实用的算法可以解决这个问题(除了暴力破解),我可以看看吗?
更新
权重数量N_w 为O(1e6)。如果 bin 的数量为O(1e5)。我正在寻找一种理想的算法,最糟糕的是O(N log N)。
【问题讨论】:
-
没有“保留顺序”的约束,这是一个称为 k 分区的强 NP-Hard 问题。我相信对于这种保持顺序的变化,有一个多项式,或者至少是伪多项式解决方案。另请注意,这里的蛮力是
O(N_w^N_b)。你的问题有多大? -
@amit 我已经更新了问题,感谢您的提示。
-
最优到底是什么意思?
-
标签: algorithm sorting distribution