Сначала есть куча объектов. Каждый отдельный объект имеет атрибут, который сообщает типу групп, к которым хочет принадлежать. Группа - это контейнер для заданного количества объектов. Имеет тип.
Теперь я ищу комбинацию, в которой большинство объектов находятся в группе, которую предпочитал объект. Поскольку количество групп рассчитывается по формуле, которая дает наименьшее возможное число, существуют комбинации, где не все объекты входят в предпочтительный тип группы. Это нормально, потому что я ищу комбинации, в которых большинство объектов входят в предпочтительную группу.
Объект может использовать несколько типов групп, поэтому не имеет значения, к какой из этих групп принадлежит.
Тип группы можно свободно выбирать из запрошенных типов групп.
Есть ли алгоритм, который может решить эту проблему?
Пример
Есть пять объектов. Первым двум не важно, находятся ли они в группе типа A или B . Третий хочет быть в группе типа A , четвертый в группе типа C , а последний хочет быть в типе B .
Размер группы - два. Количество групп рассчитывается по формуле ниже.
Каждый тип группы может быть свободно выбран из запрошенных типов ( A, B или C ).
Редактировать
Подумайте о группах размером 6 и 12 объектов. Одиннадцать из них с предпочтительной группой типа А и один из них с предпочтительной группой типа В.
Для 12 объектов и размера группы 6 есть 2 группы. Лучшим решением было бы создать две группы с типом А. Тогда одиннадцать объектов находятся в предпочтительной группе, а один - в группе, которую он не предпочитал. Просто чтобы уточнить, каждый объект должен быть в группе.
Как найти лучшую комбинацию групповых типов? В этом примере, как я могу подключить объект с предпочтительным типом группы B к группе (на графике)? Насколько я понял, Форд Фулкерсон требует, чтобы типы групп уже были известны.