Задайте множество S
, разбейте его на k
непересекающихся подмножеств так, чтобы разница их сумм была минимальной.
скажем, S = {1,2,3,4,5}
и k = 2
, поэтому { {3,4}, {1,2,5} }
, так как их суммы {7,8}
имеют минимальную разницу. Для S = {1,2,3}, k = 2
будет {{1,2},{3}}
, так как разница в сумме 0
.
Проблема похожа на Проблему с разделами из Руководства по проектированию алгоритмов. За исключением того, что Стивен Скиена обсуждает способ решения этой проблемы без перестановки.
Я собирался попробовать имитация отжига. Так что мне интересно, если бы был лучший метод?
Заранее спасибо.