Я бы начал с графа пересечения A, который имеет элементы узлов A и ребра, когда два узла имеют непустое пересечение.Каждый связный компонент этого графа должен содержаться в одном P (i) для некоторого i.
Пусть C (1), ..., C (k) будут связными компонентами графа.Пусть
size(j)=|union(a in C(j))|
Теперь вы можете переписать задачу в терминах значений размера (i) с i = 1 ... k.А именно, даны положительные целочисленные значения s (1), .., s (k).Для подмножества P из [1, .. k] мы определяем s (P) = sum (j в P) s (j).
Мы хотим найти разбиение P '= (P' (1).), ..., P '(m)) of [1, .., k] с условием, что оно минимизирует значение:
max s(P'(j)) - min s(P'(j))
Следовательно, нам действительно нужно знать не вероятные размерыэлементов A, но вероятные размеры связанных компонентов графа, чтобы придумать «лучший» алгоритм.