Java

Задача. Есть несколько множеств множеств с числом элементов от 1 до 3 - пересечения возможны. Далее внутри...

Вопрос. Как из этих множеств (или их подмн-в) выделить такие чтобы были: без пересечений, и чтобы они содержали ВСЕ элементы из данных множеств.
Понятно что можно выделить подмн-ва по одному элементу просто.
Но нужно чтобы они были максимальной длины.
Ну, пример
дано: {1,2,3}, {3,4,5}, {2,3,4}
Желательно получить: {1,2,3}, {4,5}
а не так: {1},{2,3,4}, {5}
т. е.:
A) 2+2 предпочтительнее 1+3
Б) 3 предпочтительнее 2+1
В) 2 предпочтительнее 1+1

ну, вот и алгоритм:

выписываем одноэлементные множества:
{1}, {4}, {5}, {3}, {2}

применяем правила и обрабатываем варианты.

группируем по два в соответствии с правилом В:
{1, 4} и {1, 5} не являются подмножеством ни одного множества, отбрасываем
{1, 3}, {1, 2}, {4, 5}, {3, 4}, {2, 4}, {3, 5}, {4, 2} являются подмножествами, обрабатываем каждый:
{1, 3}, {2}, {4}, {5}
{1, 2}, {3}, {4}, {5}
{4, 5}, {1}, {2}, {3}
{3, 4}, {1}, {2}, {5}
{2, 4}, {1}, {3}, {5}
{3, 5}, {1}, {2}, {4}
{4, 2}, {1}, {3}, {5}

рассмотрим, например, ветку {1, 3}, {2}, {4}, {5}
применяем правило В, получаем ветки
{1, 3}, {2, 4}, {5}
{1, 3}, {4, 5}, {2}
опять обрабатываем каждую.

для ветки {1, 3}, {2, 4}, {5} больше ни одно из правил не применимо.
подсчитываем рекорд: сумму отклонений размеров множеств от 3: 1+1+2 = 4

для ветки {1, 3}, {4, 5}, {2} применимо правило Б, получаем:
{1,2, 3}, {4, 5}
больше правила неприменимы, подсчитываем рекорд: 0+1=1
значит, этот результат предпочтительнее.

и т. д.
Евгений Захаров
Евгений Захаров
24 825
Лучший ответ
Valodissons Угрюмыйарехкхэмизерр Спасибо! Похоже на то что так можно получить нужное решение, сейчас попробую реализовать.
Правда элементов может быть больше чем 5, т. е. появится еще правильно 3+3 предпочтительнее чем 2+2, это же вроде не учтено?
Ну удали все что больше одного. но при этом оставь по одному, упорядчить любой сортировкой, и разбить на два массива делением длины напополам и округление к большему.
Valodissons Угрюмыйарехкхэмизерр начал не понимать с этого места
>Что имеется ввиду?