У меня есть сетевой граф из 200 человек, где каждый узел - это человек, ребро - это, если они когда-либо говорили раньше, а вес ребра - это то, как много они общаются, и мне нужно разбить их на 10 групп по 20 человек, чтобы мы минимизировать количество общения между группами. Чтобы прояснить это, мы хотим создать сетевую встречу, где каждый стол заполнен людьми, которые в прошлом мало разговаривали, чтобы улучшить сотрудничество.
Бонус
во время одной встречи будет 2 сетевых события, и каждый человек будет сидеть за 2 разными столами, поэтому нам нужно сделать это дважды, учитывая тот факт, что первая таблица повлияет на решение второй таблицы.
Для этого мы подсчитали промежуточность и получили значение для всех 200 человек. Я думаю, что если мы сможем создать группы, которые минимизируют сумму промежуточности, мы, по сути, создадим группы, которые, скорее всего, не взаимодействовали бы раньше (или столько же).
df = data.frame(id=1:200,measure=rnorm(200,mean=50,sd=10))
Я немного не понимал, как начать здесь, не прибегая к методу грубой силы и сначала заполняя каждый стол 20 лучшими людьми, а затем просто просматривая их один за другим. Есть ли другие предложения?