Algorithm 铲斗中的重量分布,以便使用最少数量的铲斗

Algorithm 铲斗中的重量分布,以便使用最少数量的铲斗,algorithm,math,optimization,data-structures,Algorithm,Math,Optimization,Data Structures,我有n个权重,权重为{A1,A2,…,An},然后我必须将其划分为多个桶,这样就需要最小数量的桶,每个桶的最大容量为Cmax和Ai可悲的是,这是NP难问题,所以只有使用蛮力方法才能保证精确解-检查所有可能的变量。问题规模可能很小(n,bucket

我有n个权重,权重为{A1,A2,…,An},然后我必须将其划分为多个桶,这样就需要最小数量的桶,每个桶的最大容量为Cmax和Ai可悲的是,这是NP难问题,所以只有使用蛮力方法才能保证精确解-检查所有可能的变量。问题规模可能很小(
n,bucket<10..15
)-存在
n^bucket
变体

否则(通常在
n<100
的情况下),您可以尝试一些离散优化方法,如算法(当当前解决方案变得比已经找到的最佳解决方案更差时停止搜索)

{2,3,4,5} and Cmax=10
 So, result should be {{5,3,2},{4}} .