问题描述
我有n个权重,称重{A1,A2,...,An},然后我必须将其划分为多个桶,以便需要最少数量的桶,并且每个桶的最大容量为Cmax和Ai 其他可能的解决方案是{5,4},{3,2},但这是不可接受的。
每个初始集合应尽可能接近Cmax {2,3,4,5} and Cmax=10
So,result should be {{5,2},{4}} .
解决方法
可悲的是,这是NP难题,因此只有通过蛮力方法才能保证确切的解决方案-检查所有可能的变体。问题大小可能很小(n,buckets < 10..15
)-有N^Buckets
个变体。
否则,(通常在n < 100
情况下,您可以尝试一些离散优化方法,例如Branch and bound算法(当当前解决方案变得比已经发现的最佳解决方案差时停止搜索)