Algorithm 调度:将一组整数划分为K个子集

Algorithm 调度:将一组整数划分为K个子集,algorithm,math,numbers,integer,scheduling,Algorithm,Math,Numbers,Integer,Scheduling,我正在使用任务调度器,面临以下问题(任务在处理器之间的分配): 有一组N个整数。如何将它们划分为K个不相交的子集,这些子集的和相差很小? 我正在寻找一个简单的启发式算法,它在N=100-500和K=10-20时具有合理的计算复杂度。不需要最优解(即最小可能的和差),粗略近似就足够了 提前谢谢。这是您要找的报纸,我想: 多路数字分区 理查德·科夫 计算机科学系 加利福尼亚大学,洛杉矶 加利福尼亚州洛杉矶90095korf@cs.ucla.edu 即使分割成2也是NP完全的。虽然可以使用伪多项式时间

我正在使用任务调度器,面临以下问题(任务在处理器之间的分配):

有一组N个整数。如何将它们划分为K个不相交的子集,这些子集的和相差很小?

我正在寻找一个简单的启发式算法,它在N=100-500和K=10-20时具有合理的计算复杂度。不需要最优解(即最小可能的和差),粗略近似就足够了


提前谢谢。

这是您要找的报纸,我想:

多路数字分区
理查德·科夫
计算机科学系
加利福尼亚大学,洛杉矶 加利福尼亚州洛杉矶90095korf@cs.ucla.edu


即使分割成2也是NP完全的。虽然可以使用伪多项式时间算法。如上所述,假设您有数字总和的上限。

结果表明,在这种情况下,简单的方法效果很好。

构造启发法或方法效果很好

对于第一次拟合减小,首先按减小的尺寸对零件进行排序(在下面的示例中:A、B、C、D),然后将它们逐个放入最佳剩余位置(X或Y)。在下面的示例中,忽略2个维度中的1个(例如,忽略CPU)


是的,尽管贪婪算法不是全局最优的,但它与启发式算法一起在实际系统中运行良好。在解决NP问题的速度方面,我们做得再好不过了。