Я пытаюсь найти хорошее (и быстрое) решение следующей проблемы:Объединение группировки в двудольные графы?
У меня есть две модели, с которыми я работаю, назовем их игроками и командами. Игрок может быть в нескольких командах, а команда может иметь несколько игроков). Я работаю над созданием элемента пользовательского интерфейса в форме, которая позволяет пользователю выбирать несколько команд (флажки). Когда пользователь выбирает (или отменяет выбор) команды, я бы хотел отобразить команды, сгруппированные игроками.
Так для примера:
Если выбранные команды нет игроков, которые пересекаются, каждая команда будет иметь свой собственный раздел.
Если пользователь выбирает две команды и у них одни и те же игроки, будет один раздел, содержащий имена двух команд и всех игроков.
Если у TEAM_A есть игроки [1, 2, 4, 5] и TEAM_B, игроки [1, 3, 5, 6]. Там бы следующие разделы: SECTION_X = [TEAM_A, TEAM_B, 1, 5], SECTION_Y = [TEAM_A, 2, 3], Раздел _z = [TEAM_B, 3, 5]
Я надеюсь, что это ясно , По сути, я хочу найти команды, которые есть у всех игроков и группы. Я думал, может быть, есть способ сделать это, проводя двудольный граф? Не совсем точно, как бы и я мог бы переусердствовать. Я надеялся сделать это, создав некоторую структуру данных на сервере и используя ее на клиенте. Я хотел бы услышать ваши предложения, и я ценю любую помощь, которую вы можете дать!
Вы можете получить множество разделов. Рассмотрим, например, 4 команды, каждый из которых состоит из 8 из 15 игроков: A = [1,2,3,4,5,6,7,8], B = [1,2,3,4,9,10,11,12] , C = [1,2,5,6,9,10,13,14], D = [1,3,5,7,9,11,13,15].Теперь каждый из этих игроков находится в другом подмножестве команд, и, если я правильно вас понимаю, каждый из них должен получить свой раздел. Это предназначено? –