我发现了一些已知的分区问题,但似乎没有一个非常适合以下问题。
问题:
你有一个数组 A N 正整数,你需要将它分成 M 个连续的段。有一个给定的限制,每个段的总和不得超过, A< = limit 中的每个整数 n 。我想找到满足限制条件的最小段数。此外,这些段应该很好地平衡,以便最小化所有段总和之间的差异。
示例:
A = { 2, 3, 5, 5 }, limit = 6
solution => M=3, partitions={2,3},{5},{5}
A = { 3,3,3,4,4,4,4,4,2,2,2 }, limit = 12
solution => M=4, partitions={3,3,3},{4,4},{4,4},{4,2,2,2}
在第二个例子中,我们还可以找到M = 4个分段的分段 {3,3,3},{4,4,4},{4,4,2,2},{2},但所有段之和的差异大于之前的解决方案。
这是一个已知问题,是否存在复杂度较低的解决方案(或者如果最优解决方案的成本太高,则为任何近似值)?
修改:查找最少量的细分具有优先级。在所有最小的M解决方案中,我想找到最平衡的(或接近它的一个)