4

Я облицовочный Тхо следующая проблема:
Скажут ˙U является пользователем социальной сети, и как таковые имеют список друзей, F (и). a перегородка - это функция F-> G, где G представляет собой набор таких групп, как школа, университет, работа и т. д. '.
мне нужно придумать алгоритм дольных F:категоризации друзья в социальных сетях

  • вход F, а также F (е) для каждого ф в F (список друзей для каждый из u - друзья).
  • во время запуска алгоритм разрешается задавать вопросы u (например, «какая лучшая группа для определенного пользователя v?»).
  • Сумма вопроса должна быть сведена к минимуму (минимально это не очень четкое число, но я бы сказал, что 5% от числа друзей кажется правильным).

Очевидно, что результирующий раздел не был бы оптимальным, но он должен быть приемлемым в качестве отправной точки для последующих уточнений.

любые мысли были бы весьма признательны

редактировать: нет, это не домашнее задание. я считаю, что домашнее задание будет иметь более четкие требования и целевую функцию. во всяком случае нет, это на самом деле проблема реального мира, с которой я сталкиваюсь.

также я, возможно, упростили его немного, но на самом деле пользователь может быть частью многих групп (так это больше похоже F-> P (G), где P (G) является группа питания если G), поэтому лучший алгоритм сможет это сделать.

+0

Это домашнее задание? Если это так, то это должно быть отмечено как таковое. –

ответ

3

Основная идея заключалась бы в том, чтобы попытаться разбить их на группы, основываясь на том, кто из ваших друзей дружит друг с другом.

Например, если вы Боб, и вы знаете, что Салли и Ларри, а Салли и Ларри знают друг друга, они, вероятно, находятся в одной и той же «группе». Вы еще не знаете, что это за группа, но поскольку вы все знаете друг друга, вы, вероятно, встречались в одном месте - будь то работа, университет и т. Д.

Вы можете реализовать это как ориентированный граф, узлы - это люди, а кромки - это соединения. Затем вам необходимо объединить эти узлы в зависимости от того, насколько они хорошо связаны.

После того, как вы создали группы, это просто вопрос запроса образца из групп и потенциально неоднозначных узлов, чтобы выяснить, что представляют собой группы.

Звучит как домашнее задание, поэтому я не буду отдавать ничего другого, но это должно заставить вас начать.

+0

Я только что нашел алгоритм для кластера диаграммы здесь, очень интересный в том, что он кажется довольно эффективным: http://www.internetmathematics.org/volumes/1/4/Flake.pdf –

Смежные вопросы