Как сделать выборку безмасштабного графика - PullRequest
2 голосов
/ 29 октября 2010

Учитывая большой безмасштабный график (график социальной сети), каков наилучший способ его отбора, чтобы образец сохранил приемлемую абстракцию свойств оригинала?

У меня большой график(Набор данных Твиттера Мунмун, если вы это знаете).Но мне нужен подключенный образец этого графика с достаточно большим диаметром (tl; dr ... причины, почему по запросу ... диаметр 10 будет хорошим).

Проблема заключается в том, что любой поиск в ширину всегда может встретить некоторые массивно связанные узлы.Поэтому я начинаю такой поиск, заводя друзей всех узлов, с которыми сталкиваюсь.Я неизбежно сталкиваюсь с некоторыми узлами, связанными с массой, и должен найти всех своих друзей.Это проблема, потому что я получаю большое количество узлов, которые находятся близко друг к другу в графе.Чтобы сделать программный анализ осуществимым, я должен ограничить количество узлов (и ребер).Весь смысл этого упражнения в том, чтобы найти кратчайшие пути между узлами, поэтому меня, как правило, интересуют ВСЕ соседние узлы.И это проблема.

Один из способов - ограничить макс.количество узлов, подключенных к интересующему меня пользователю. Например, если я сталкиваюсь с @barackobama в ходе поиска в ширину, я гарантирую, что я принимаю лишь небольшую часть его друзей и игнорирую остальные.Но стоило ли этот взломанный граф, или я теряю слишком много информации с точки зрения поиска кратчайших путей ??

Надеюсь, что имеет смысл ...

Ответы [ 3 ]

1 голос
/ 13 июня 2013

Существует несколько методов выборки, выбор одного из которых зависит (помимо прочего) от свойств, которые вы хотите сохранить.Я нашел обзор литературы (раздел 3) в диссертации Выборка и вывод в сложных сетях [Maiya '11] очень информативным, если на то пошло.

Но вы, кажется, нашли способвыборки вашей сети, и теперь вы хотите выяснить, является ли выборка представителем всего графа с точки зрения кратчайших путей.Вы можете попытаться взглянуть на этот документ: Сложные сетевые измерения: оценка релевантности наблюдаемых свойств [Latapy & Magnien '08].Они описывают метод оценки репрезентативности образца относительно различных классических топологических свойств.Чтобы подвести итог их подхода, они изначально имеют доступ ко всей изученной сети и моделируют некоторый процесс выборки на этих данных с увеличением размера выборки.Они отслеживают, как свойства развиваются в зависимости от размера выборки, и определяют подходящий размер, когда интересующие свойства достаточно стабильны.Их инструмент свободно доступен онлайн .

Редактировать: единственный готовый инструмент, который я могу найти в Интернете, это Альбатрос .Соответствующая статья Выборка альбатросов: надежная и эффективная гибридная выборка вершин для социальных графов [Jin и др. '11] также содержит хороший обзор существующих методов выборки, некоторые из которых реализованыв исходном коде, который они предоставляют.

Редактировать 2: Мне нужно было использовать Albatross в системе Linux, поэтому я сделал порт Java.Это очень сырой, но, кажется, работает нормально.Он доступен на GitHub: https://github.com/vlabatut/Albatross

0 голосов
/ 27 сентября 2016

Возможно, вы захотите проверить следующее: Gscaler: https://github.com/jayCool/Gscaler Это недавний инструмент, который создает синтетические масштабированные графики.

Содержит файл jar и соответствующий документ для справки.

0 голосов
/ 29 октября 2010

Я не уверен, правильно ли я понимаю ваш вопрос. Я думаю, что у вас есть главный вопрос: как вы можете вычислить кратчайший путь из двух узлов в гигантском ориентированном графе? Создание подобразца графика, кажется, ваша попытка создать эффективное решение. (Но я, вероятно, неправильно вас понял.)

Возможно, этот SO-вопрос имеет несколько указателей для вас: Эффективное нахождение кратчайшего пути на больших графиках

Графики в этом вопросе, похоже, значительно меньше.

...