Выбрать оптимальное подмножество пользователей

Бюджет: по договоренности
Добрый вечер!

Имею множество пользователей из 200 тысяч пользователей ВКонтакте, которые выбраны в это множество потому что состоят в группах определенной тематики. Множество выгружено через VK API в локальную базу данных.
У каждого из них есть "друзья". Мне нужно выбрать из 200 тысяч пользователей 1-2 тысячи так, чтобы количество друзей этих пользователей в моем множестве было максимальным с учетом пересечений друзей. 

К примеру: есть пользователи A, B, C и D. Мне нужно выбрать двух пользователей из них по заданному выше условию. Пользователь A имеет 100 друзей, из которых 50 состоят в моём множестве (то есть 50 друзей пользователя A, также, как и сам пользователь A состоят в этом множестве). Пользователь B – 200, из них – 20. Пользователь C – 150, из них 50. Пользователь D – 50, из них 30.

Если просто отсортировать их по убыванию количества друзей в моём множестве, то мне нужно взять A и C (вместе без учета повторений у них 100 друзей в множестве). Но мне-то нужно не просто "максимум суммы", мне нужно с учетом повторений пользователей. То есть с учетом ситуации, когда друзья у них одинаковые состоят в моём множестве. 

Практическое применение: понять, каким пользователям ВК писать с определенным предложением, чтобы получить максимальный охват среди всего 200-тысячного множества.
Опубликован 02.11.2015 в 22:05

Выберите способ верификации:

Обновите страницу после прохождения верификации.