АНАЛИЗ ДАННЫХ И ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ
ВИЗУАЛИЗАЦИЯ И АНАЛИЗ ГРАФОВ
БОЛЬШИХ РАЗМЕРОВ
М.И. КОЛОМЕЙЧЕНКО
выпускник магистратуры,
Национальный исследовательский университет «Высшая школа экономики» Адрес: 101000, г. Москва, ул. Мясницкая, д. 20 E-mail: [email protected]
А.М. ЧЕПОВСКИЙ
кандидат технических наук, доцент кафедры информационной безопасности, факультет бизнес-информатики, Национальный исследовательский университет «Высшая школа экономики»; профессор кафедры прикладной математики и моделирования систем, Институт коммуникаций и медиабизнеса,
Московский государственный университет печати им. Ивана Федорова Адрес: 127550, г. Москва, ул. Прянишникова, д. 2а E-mail: [email protected]
Задача визуализации графов больших размеров возникает в различных областях социологии и маркетинга. Актуальность данной работы определяется потребностью в программном комплексе для анализа и визуализации таких графов. В работе приводится анализ нескольких программных продуктов и выделяются их недостатки: отсутствие кроссплатформенности и специализированных графовых хранилищ, а также невозможность работы с графами больших размеров.
Приводится детальное описание общей архитектуры разработанного программного обеспечения и каждого модуля в отдельности, способы взаимодействия основных модулей. Для хранения графов используется разработанное специализированное графовое хранилище, позволяющее обрабатывать графы, имеющие порядка 100 миллионов вершин и нескольких миллиардов связей. Также представлено описание основных принципов организации хранилища. Использование собственной файловой системы обеспечивает отсутствие дополнительных системных вызовов при работе с хранилищем и отсутствие сложной системы адресации и лишних механизмов, что приводит к избавлению от дополнительных накладных расходов, связанных с организацией хранения данных.
Кроме того, присутствует описаниеметодикиработымодуля визуализации данных, используемых структур данных и алгоритмов машинной графики, которые позволяют работать с графами, состоящими из нескольких миллионов вершин, в режиме реального времени.
Отдельно стоит отметить широкий набор алгоритмов автоматического размещения графов: случайное размещение, круговое размещение, круговое покомпонентное размещение, размещение «павлиний хвост», размещения «одна и две линии темы», размещения, основанные на алгоритме выделения сообществ или на алгоритме оценки связности. Приводится детальное описание каждого приведенного выше алгоритма.
Особое внимание стоит уделить используемым методам анализа графа. Разработаны алгоритмы выделения сообществ в социальных сетях, оценки связности графа, поиск кратчайших путей между любой парой вершин, объединение и пересечение графов и многое другое.
Ключевой особенностью всех приведенных в работе алгоритмов является возможность работы с графами больших размеров.
у J
Ключевые слова: граф, анализ графа, визуализация графа, графовое хранилище, авторазмещение.
БИЗНЕС-ИНФОРМАТИКА №4(30)-2014 г
7
АНАЛИЗ ДАННЫХ И ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ
Введение
При анализе графов социальных сетей [1] возникает задача визуального представления их структур. Актуальность работы определяется потребностью в программном комплексе для анализа и визуализации графов больших размеров, возникающей в задачах социологического и маркетингового анализа.
Представленное программное обеспечение предоставляет широкие возможности для визуализации и анализа сетей больших размеров. Область применения обширна [5] и затрагивает многие смежные дисциплины, такие как социология, психология, политология, маркетинг и т.д. Существуют такие программные продукты для анализа графов, как i2 Analyst’s Notebook [9], Sentinel Visualizer [12], CrimeLink [8], Xanalys Link Explorer [14] и Tom Sawyer Software [13]. Несмотря на некоторые различия в деталях, по предоставляемой функциональности и назначению эти системы визуализации во многом схожи.
i2 Analyst’s Notebook, CrimeLink, Sentinel Visualizer и Xanalys Link Explorer являются программными продуктами, предназначенными для анализа систем взаимосвязанных объектов и изучения динамики последовательных событий. Tom Sawyer Software представляет собой набор библиотек для создания инструментов визуализации и анализа сетей из различных предметных областей.
В перечисленных выше системах наблюдается ряд недостатков: отсутствие платформенно-независимых решений, отсутствие собственных специализированных хранилищ, а также то, что системы не ориентированы на работу с графами больших размеров.
1. Архитектура программного комплекса анализа графов
Программный комплекс предназначен для визуального анализа графов взаимодействующих объектов (например, социальной сети) и автоматизированного размещения вершин и связей при визуализации в соответствии с задаваемыми изобразительными соглашениями.
Основные компоненты программного комплекса и взаимодействие модулей, составляющих программный комплекс, представлены на рис. 1.
Импорт данных в приложение осуществляется с помощью модуля конвертации данных. Реализо-
Рис 1. Архитектура программного комплекса
вана обработка данных из таблиц Excel, файлов с расширениями: doc, html, xml, реляционной БД, или текстовых файлов специального формата, содержащих структурированные данные. Конвертер выделяет из файлов табличные данные и преобразовывает их в граф, который сохраняется в файловой системе хранилища графа.
Принципиальной основой архитектуры программного комплекса является наличие двух режимов хранения графа:
♦ базовое хранение, предназначенное для хранения графов большого размера (миллионы вершин и ребер);
♦ локальное хранение, предназначенное для хранения графов, которые являются подграфами, полученными запросами к базовым графам и результатами обработки клиентским приложением.
В качестве базовой структуры хранилища используется специализированная файловая система [4]. Данная система реализуется внутри некоторого файла стандартной файловой системы компьютера, поэтому под логическим файлом будем понимать файл, принадлежащий данной специализированной системе и состоящий из записей переменной длины.
Использование собственной файловой системы обеспечивает отсутствие дополнительных системных вызовов при работе с файловой системой. Отсутствие сложной системы адресации (структуры каталогов) и лишних механизмов (права доступа) приводит к отсутствию дополнительных накладных расходов на организацию хранения данных.
8
БИЗНЕС-ИНФОРМАТИКА №4(30)-2014 г
АНАЛИЗ ДАННЫХ И ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ
Собственная файловая система позволяет организовывать управление буферизацией и хранением данных, которое не зависит от особенностей операционной системы.
Для более быстрого выполнения операций поиска вершин по конкретным значениям атрибутов в хранилище присутствует специализированный индекс по атрибутам вершин. Данный индекс также использует собственную копию специализированной файловой системы.
Используемые структуры данных позволяют проводить эффективные объединение и пересечение графов. Данная структура хранилища и предусмотренные операции были протестированы на графах, имеющих порядка 100 миллионов вершин и нескольких миллиардов связей.
К каждому конкретному сохраненному графу может быть привязано любое количество вариантов визуализации локального графа, которые сохраняются в хранилищах вариантов визуализации. Под вариантом визуализации понимается расположение вершин и связей между собой, иконки всех вершин, способы визуализации всех вершин, иконки всех атрибутов и их стили, стили всех связей и координаты их точек изломов.
Схема визуализации для графа сохраняется в бинарный файл. Сначала записывается строковый уникальный идентификатор хранилища для того, чтобы ввести однозначное соответствие схемы визуализации и графа. Затем в файл записывается вся коллекция иконок вершин в формате <имя иконки> <изображение иконки>. Далее в файл записывается вся коллекция типов атрибутов в формате <имя> <цвет> <флаг отображения> <имя иконки> <иконка> <порядковый номер при визуализации> <флаг отображения иконки> <флаг отображения имени> <тип выравнивания текстового значения> <тип хранимого значениях Затем в файл записывается вся коллекция типов связей в формате <имя типа связи> <цвет типа связи> <ширина линии> <стиль линии> <направление линии>. Далее записываются группировки вершин и связей: для каждой групповой вершины записывается ее идентификатор и массив идентификаторов вершин, из которых она состоит; для каждой групповой связи записывается ее идентификатор и массив идентификаторов связей, из которых она состоит. Запись групповых вершин и связей происходит с учетом последовательности и вложенности группировок. Затем последовательно сохраняется визуализация всех вершин в формате
<идентификатор вершины> <координата x> <координата y> <идентификатор способа визуального представления вершины> <дополнительные параметры конкретного визуального представления >. После сохраняется визуализация всех связей в формате <идентификатор связи> <идентификатор вершины начала> <идентификатор вершины конца> <стиль> <ширина> <отступ первого сегмента излома> <направление>. Далее идет запись всех изломов связей в формате <идентификатор вершины начала связей > < идентификатор вершины конца связей > <величина отступа между параллельно идущими связями> <количество изломов> <массив координат всех изломов>.
Ниже отдельно приведено описание модуля визуализации и модулей, реализующих алгоритмы авторазмещения и анализа графа.
2. Модуль визуализации графа
Спроектированы эффективные структуры данных, которые позволили создать развитую систему редактирования и анализа без ущерба производительности и с допустимым объемом занимаемой памяти. Для быстрого доступа к вершинам и связям используются сбалансированные бинарные деревья поиска. Для быстрого доступа к инцидентным связям вершины используется еще одна структура — сбалансированное бинарное дерево поиска, ключами в котором являются указатели на вершины, а хранимым значением для каждого ключа (вершины) — сбалансированное бинарное дерево поиска, ключами в котором являются указатели на связи. В данной структуре для каждой вершины хранится набор инцидентных связей. В табл. 1 приведен анализ эффективности базовых операций с выбранной структурой при работе с графом, полностью загруженным в оперативную память. Пусть V — множество вершин графа, E — множество ребер графа.
Таблица 1.
Асимптотика операций при работе с графом
Добавление связи O (log (|E |))
Удаление связи O (log (|E |))
Добавление вершины O (log (|V))
Удаление вершины O (log (|V))
Поиск вершины O (log (|V))
Поиск связи O (log (|E |))
Операция
Асимптотика операций
БИЗНЕС-ИНФОРМАТИКА №4(30)-2014 г
9
АНАЛИЗ ДАННЫХ И ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ
Обем занимаемой памяти: O (с1 | V | + с2 | E |), где
с= 2, с2= 3.
Так как все вершины и связи хранятся в бинарных сбалансированных деревьях поиска, все оценки времени работы и объема занимаемой памяти имеют логарифмическую сложность. Для хранения всей структуры графа используется три базовые структуры данных: множество всех вершин, множество всех связей и структура, сопоставляющая каждой вершине множество ее инцидентных связей. Константа с1 получена за счет двойного хранения каждой вершины в первой и третьей структурах. Константа с2 получена за счет хранения каждой связи во второй структуре и двойного хранения каждой связи в третьей структуре данных.
В вышеописанной структуре данных в каждой вершине хранится вся необходимая информация для визуализации. Со связями дело обстоит несколько иначе: данные по изображению связи в качестве ломаной линии хранятся в отдельной структуре данных.
Введем следующие структуры данных. Одна структура данных будет содержать пару указателей на вершины c заданной операцией сравнения. Другая структура содержит координаты ломаной линии, которая выступает в качестве направляющей при прорисовке всех связей между двумя объектами. Связь будет визуализироваться с тем же количеством сегментов, идущих параллельно направляющей линии, за исключением двух: первого и последнего. Кроме того, во второй структуре также будет храниться дополнительная информация о различных параметрах сдвигов относительно направляющей линии.
Более того, экземпляр класса будет содержать в себе сбалансированное бинарное дерево поиска, ключами в котором будут являться указатели на связи. Это сделано для того, чтобы иметь быстрый доступ ко всем объектам, которые должны быть визуализированы относительно заданной направляющей кривой, так как для каждой связи не подразумевается хранение координат ее прорисовки. Все координаты будут вычисляться во время выполнения программы. Тогда можно создать сбалансированное бинарное дерево поиска, ключами в котором будут структуры, содержащие пары вершин, а значением будет структура с координатами ломаной линии.
Таким образом, мы сможем сократить объем хранимой памяти, тем самым эффективно решать
задачу хранения прорисовки связей и их быструю визуализацию.
При работе с большими графами критичными являются не только все без исключения базовые операции, но и объем требуемой памяти. Разработанные структуры данных эффективно сочетают в себе оба требования.
В программном комплексе предусмотрено несколько изобразительных соглашений для вершин: иконки, линии темы, таблицы. Отдельно стоит отметить способ представления вершин в виде линии темы. Линия темы — это вершина, которая представляется в виде горизонтального отрезка с иконкой, которая может перемещаться по всей длине отрезка. Если инцидентные линии темы вершины находятся в вертикальной полосе, ограниченной концами линии темы, то все связи между такими вершинами и линией темы будут вертикальными и перпендикулярно соединяться с линией темы. Остальные инцидентные линии темы вершины будут соединяться с ближайшими концами линии темы и не будут вертикальными. Положение концов линии темы и ее длина может меняться. Использование данного способа представления позволяет эффективно решать задачу визуализации для некоторых графов. Доступна визуализация множественных связей с изломами между вершинами, с возможностью задания ширины, цвета и типа линии. Для атрибутов также предусмотрено множество способов и настроек отображения.
Помимо богатой функциональности отображения различных элементов графа, разработанный модуль визуализации позволяет манипулировать большими графами, размеры которых достигают миллиона вершин и нескольких миллионов связей, за счет специально разработанных и оптимизированных алгоритмов машинной графики.
3. Средства автоматического размещения при визуализации графов
Модуль автоматического размещения объектов предназначен для целей визуального анализа графа и реализует графические схемы [6, 10] типа павлиний хвост, линия темы, круговое размещение, покомпонентное круговое размещение, а также размещение, основанное на алгоритме выделения сообществ в сети.
Размещение вершин и связей является нетривиальной задачей и в ручном режиме может требовать значительных временных затрат уже для графов
10
БИЗНЕС-ИНФОРМАТИКА №4(30)-2014 г
АНАЛИЗ ДАННЫХ И ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ
с количеством порядка десяти. Поэтому наряду с возможностью ручного размещения вершин и связей предоставляет несколько вариантов автоматического размещения элементов.
3.1. Случайное размещение объектов
Для заданной сети подбирается прямоугольная область нужного размера. Затем в эту область случайным образом помещаются все вершины и их связи. Распределение вершин в заданной области является равномерным.
3.2. Круговое размещение объектов
Узлы равномерно располагаются по одной окружности. Распределение по окружности производится на основе структуры связей. Минимизация пересечений в круговом размещении является NP-трудной задачей [7].
Пусть G(V, E) — граф, где V — множество вершин, E — множество ребер, n = |V|, m = |E|. Используется двухфазный алгоритм [7] минимизации пересечений.
На первом этапе вершины добавляются в один их концов линейного размещения объектов. Пусть N (v) = {u vV: {u, v} е E} — множество смежных вершины для вершины v. Выбор первой добавляемой вершины определяется следующим образом: v0 = ar gmaxv V — вершина с максимальной степенью. Последовательность добавления остальных вершин определяется последовательностью обхода всех вершин начиная с вершины v0 алгоритмом обхода в ширину. После добавления всех вершин в линейное размещение оно естественным образом трансформируется в круговое путем соединения концов. Ассимптотическая сложность данного этапа O (n).
На втором этапе выполняется минимизация пересечения связей. Для каждой вершины v е Vпросматриваются все вершины и в N (v) и выбирается та, при перестановке с которой количество пере-
сечений максимально уменьшится, после чего выполняется перестановка. Для заданной вершины процедура продолжается до тех пор, пока нельзя будет найти соседнюю вершину, перестановка с которой минимизирует количество пересечений. Асимптотическая сложность данной процедуры O (nm). Экспериментальные результаты [7] показывают, что данную операцию достаточно сделать несколько раз для случайного набора вершин для достижения локального минимума функции количества пересечений.
3.3. Круговое покомпонентное размещение объектов
Сначала для исходной графа выполняется поиск всех компонент связности с помощью алгоритма обхода в ширину. В результате получено разбиение С графа G на непересекающиеся множества:
С={С1,...,С4|^1С|=К,ал?:1^Л9^*,/»5‘«,С,ПС^0}.
Затем узлы каждой компоненты с. располагаются по окружности на основе структуры их связей по алгоритму кругового размещения объектов. Центры окружностей размещаются на одной горизонтальной прямой. Пример представлен на рис. 2.
3.4. Размещение «одна линия темы»
Из сети выбирается вершина для представления в виде линии темы. Затем остальные вершины размещаются относительно заданной линии темы сверху и снизу последовательно друг за другом, то есть на каждом вертикальном уровне расположено не более двух вершин: одна сверху и одна снизу. Длина отрезка линии темы подбирается так, чтобы второстепенные объекты, соединенные с линией темы, соединялись с ней вертикальными связями. Порядок расположения вторичных объектов можно конфигурировать различными способами. Пример размещения представлен на рис. 3.
БИЗНЕС-ИНФОРМАТИКА №4(30)-2014 г
11
АНАЛИЗ ДАННЫХ И ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ
Рис. 3. Размещение «одна линия темы
3.5. Размещение «две линии темы»
Пусть G(V, E) — граф, где V—множество вершин, E — множество ребер, n = | V|, m = | E|.
Из сети выбираются два объекта для представления в виде линии темы V = {u1, u2}£ V. Назовем вершины из множества V\ V вторичными.
Для визуализации графа G предлагается использовать многополосное размещение [2]. Проиллюстрируем предлагаемый способ на примере, когда выделенное множество V содержит две вершины (рис. 4). Вершины выделенного множества u1, u2 представляются в виде горизонтальных линий. Пространство между этими линиями разделено на три полосы: средняя полоса используется для размещения пометок вторичных вершин, а крайние полосы — для размещения пометок на ребрах. В общем случае, если выделенное множество V содержит n вершин, то для размещения пометок вторичных вершин используется n+1 полоса, а для размещения пометок на ребрах — 2n полос соответственно. Для построения многополосного размещения предлагается использовать следующий алгоритм, состоящий из пяти шагов.
1. На выделенном множестве V фиксируется некоторый порядок u1, ..., un , задающий относительное расположение горизонтальных линий, соответствующих вершинам выделенного множества.
2. Определяется порядок добавления ребер между вершинами выделенного множества.
3. Для каждой вторичной вершины vе V\V выбирается полоса, в которой будет размещена пометка вершины v.
4. Определяется порядок добавления вторичных вершин Vp ..., vm .
5. Путем добавления ребер между вершинами выделенного множества и последующего добавления вторичных вершин с инцидентными им ребрами производится построение многополосного размещения, гарантирующее отсутствие пересечений между пометками.
Опишем общие принципы работы алгоритма. Из графа выбираются два объекта для представления в виде линии темы. Линии темы размещаются на заданном расстоянии друг от друга. Затем остальные объекты размещаются относительно заданных линий тем сверху и снизу последовательно друг за другом. Длины отрезков линий тем подбираются так, чтобы второстепенные объекты, соединенные с линиями темы, соединялись с ними вертикальными связями. Стоит заметить, что все вершины, расположенные над первой линией темы соединены только с ней и между собой; все вершины, расположенные под второй линией темы соединены только с ней и между собой; между двумя линиями темы отображаются их связи и объекты, имеющие связи с обеими линиями темы. Порядок расположения вторичных объектов можно конфигурировать различными способами, пример на рис. 4.
3.6. Размещение, основанное на оценке связности
Данное размещение отличается от кругового покомпонентного размещения объектов тем, что между выделенными компонентами могут быть связи. Общая схема работы данного алгоритма размещения следующая: сначала задается порог на количе-
12
БИЗНЕС-ИНФОРМАТИКА №4(30)-2014 г
АНАЛИЗ ДАННЫХ И ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ
Рис. 4. Размещение «две линии темы»
ство связей между вершинами. Множество ребер Е разбивается на два непересекающихся множества E = E1 U Е2 в соответствии с заданным порогом. Е1 — множество ребер, удовлетворяющих заданному порогу, Е2 — остальные. Далее применяется алгоритм выделения компонент связности на графе G — (V, Е1). В результате получено разбиение С вершин V исходного графа на непересекающиеся множества:
С = {Ci,Ск | Uf=1Ct = V, Зр, q:l<p,q<k,p^q,Cpf] СЦФ 0}.
Если количество связей между парой вершин ниже заданного порога, то они попадают в различные компоненты связности, иначе они попадают в одну компоненту связности. Затем узлы каждой компоненты C располагаются по окружности на основе структуры их связей по представленному выше алгоритму кругового размещения. Центры окружностей размещаются на одной горизонтальной прямой. На схеме также располагаются все связи графа, тем самым между вершинами различных компонент связности могут быть проведены связи.
3.7. Размещение, основанное на выделении сообществ
Реализован алгоритм автоматического выделения сообществ [3] c возможностью визуализации графа на основе полученного разбиения на сообщества.
Пример работы алгоритма выделения сообществ и применения размещения с использованием этого алгоритма представлен на рис. 5. Пусть L(M) — метрика качества полученного разбиения М.
L{M) = qH<S) + YllP,H{P,\ (1)
где M — разбиение сети на сообщества, m — количество сообществ, Н( Q) — энтропия переходов между сообществами, Н (P') — энтропия перемещения внутри сообщества i, q — вероятность перехода между сообществами на каждом шаге случайного блуждания, р. — вероятность остаться в сообществе i.
Метрика качества полученного разбиения может быть легко подсчитана для любого разбиения, обновление и пересчет этой метрики будет являться быстрой операцией.
C помощью алгоритма выделения сообществ все вершины разбиваются на непересекающиеся множества
Каждое множество вершин представляет сообщество. Затем узлы каждого сообщества располагаются по окружности на основе структуры их связей. Центры окружностей размещаются по окружности. На схемы так же располагаются все связи графа, тем самым между вершинами различных сообществ могут быть проведены связи. Пример представлен на рис. 5.
БИЗНЕС-ИНФОРМАТИКА №4(30)-2014 г
13
АНАЛИЗ ДАННЫХ И ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ
Рис. 5. Пример работы алгоритма выделения сообществ и размещения, основанного на этом алгоритме
3.8. Размещение «павлиний хвост»
Автоматическое размещение «павлиний хвост» базируется на методе физических аналогий. В качестве вершин выступают одинаково заряженные частицы, а в качестве связей — пружины. Отталкивающая сила вершин основывается на законе Кулона (2), описывающего силы взаимодействия между точечными электрическими:
«2
•П'П
(2)
где Fl2 — сила, с которой заряд 1 действует на заряд 2, q1, q2 — величины зарядов, г\2 — радиус-вектор (вектор, направленный от заряда 1 к заряду 2, и равный, по модулю, расстоянию между зарядами — г12), к — коэффициент пропорциональности.
Сила притяжения между связанными вершинами описывается законом Гука (3):
F = к А/,
(3)
где F — сила, которой растягивают (сжимают) пружину, Д/ — абсолютное удлинение (сжатие) пружины, к — коэффициент упругости.
Алгоритм авторазмещения является итерационным. Следовательно, алгоритм закончит свою работу либо в случае, когда было достигнуто максимальное количество итераций, либо когда динамическая система перешла в состояние равновесия.
4. Средства анализа графа
Модуль анализа графа предназначен для реализации алгоритмов и структур данных и позволяет про-
водить различные операции над графами. В данном модуле реализован алгоритм извлечения подграфов на основе поисков в ширину и на заданную в запросе глубину от заданной вершины, на основе используемых в запросах фильтров по атрибутам, на базе выделения кластеров. Предусмотрена возможность поиска объектов по заданным параметрам в соответствии с заданными алгоритмами. Кроме того, реализована функциональность поиска похожих вершин на основе структуры связей и значений атрибутов. Для более эффективного анализа графов реализованы алгоритмы объединения и пересечения графов. Также можно проанализировать кратчайшие пути между любой парой вершин в графе.
За счет связки с хранилищем графов удобно работать с огромными графами путем выгрузки подграфов по заданным фильтрам, объединения и пересечения графов. Стоит отметить, что за счет наличия модуля конвертации данных все графы хранятся в едином специализированном формате хранилища.
Аналитические инструменты позволяют проводить разнообразные исследования графа [11] и его структуры. Предусмотрен поиск и выделение вершин и связей по заданным атрибутам. Реализован подсчет метрик центральности для всех вершин и связей. Например, используется метрика связи — центральность по посредничеству (4) (betweenness centrality): количество кратчайших путей между всеми парами вершин, проходящих через заданную связь.
(4)
USt
где l — связь, для которой считается метрика, V — множество вершин графа, ая — количество кратчайших путей между вершинами s и t, ast(l) — коли-
14
БИЗНЕС-ИНФОРМАТИКА №4(30)-2014 г
АНАЛИЗ ДАННЫХ И ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ
чество кратчайших путей между вершинами 5 и t, проходящих через связь l.
При работе с большими графами для анализа структуры реализован алгоритм оценки связности, который позволяет для заданного порога по числу связей между парой вершин разбить граф на компоненты связности, выполнить размещение объектов с учетом полученных компонент и показать списки всех вершин для каждой полученной компоненты.
Заключение
Описанный программный комплекс реализован на языке C++. Реализация визуализации выполнена с использованием графической библиотеки
OpenGL. Интерфейс реализован с использованием библиотеки Qt. Все используемые средства реализации являются кроссплатформенными. Тем самым программный комплекс способен функционировать в различных операционных системах.
Предлагаемый в данной статье программный комплекс предоставляет широкую функциональность при работе с графами больших размеров. В данном программном обеспечении реализованы средства представления графов, позволяющие проводить анализ графа взаимодействующих объектов визуальными средствами после алгоритмической обработки. Данное средство предназначено для широкого круга аналитиков в областях информационной безопасности, маркетинга, социологических исследований. ■
Литература
1. Батура Т.В. Методы анализа компьютерных социальных сетей // Вестник НГУ, серия «Информационные технологии». 2012. Т. 10, вып. 4. С. 13-28.
2. Борисенко В.В., Лахно А.П., Чеповский А.М. Специальное представление графов и визуализация семантических сетей // Фундаментальная и прикладная математика. 2010. Т. 16, вып. 8. С. 27-35.
3. Коломейченко М.И., Чеповский А.А., Чеповский А.М. Алгоритм выделения сообществ в социальных сетях // Фундаментальная и прикладная математика. 2014. Т. 19, №1. С. 21-32.
4. Поляков И.В., Чеповский А.А., Чеповский А.М. Хранение и обработка графа социальных сетей // Вестник Новосибирского государственного университета. Серия: Информационные технологии. 2013. Т. 11, № 4. С. 77-83.
5. Чураков А.Н. Анализ социальных сетей // СоцИс. 2001. №1. С. 109-121.
6. Battista G., Tamassia R., Tollis I. Graph drawing: Algorithms for the visualization of graphs. Springer, 1999.
7. Baur M., Brandes U. Crossing reduction in circular layouts // Proceedings of the 30th International Conference on Graph-Theoretic Concepts in Computer Science (WG 2004). Bonn, Germany, 21-23 June 2004. P 332-343.
8. CrimeLink. URL: http://www.pciusa.us/Crimelink.aspx (дата обращения: 05.04.2014).
9. i2 Analyst's Notebook. URL: http://www-03.ibm.com/software/products/ru/analysts-notebook (дата обращения: 05.04.2014).
10. Kaufmann M., Wagner D. Drawing Graphs. Springer, 2001.
11. Newman M.E. Networks: An Introduction. Oxford, UK: Oxford University Press, 2010.
12.Sentinel Visualyzer. URL: http://www.fmsasg.com/Products/SentinelVisualizer (дата обращения: 05.04.2014).
13. Tom Sawyer. URL: http://www.tomsawyer.com (дата обращения: 05.04.2014).
14. XAnalys Link Explorer. URL: http://www.xanalys.com/solutions/linkexplorer.html (дата обращения: 05.04.2014).
БИЗНЕС-ИНФОРМАТИКА №4(30)-2014 г
15
DATA ANALYSIS AND INTELLECTUAL SYSTEMS
HUGE GRAPH VISUALIZATION AND ANALYSIS
Maxim KOLOMEYCHENKO
Graduate of MSc Program, National Research University Higher School of Economics Address: 20, Myasnitskaya street, Moscow, 101000, Russian Federation E-mail: [email protected]
Andrey CHEPO VSKIY
Associate Professor, Department of Information Security Management, Faculty of Business Informatics, National Research University Higher School of Economics;
Professor, Department of Applied Mathematics and Systems Modeling, Institute of Communications and Media Business, Moscow State University of Printing Arts Address: 2a, Pryanishnikova street, Moscow, 127550, Russian Federation E-mail: [email protected]
^UIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII///^
= The problem of huge graph visualization arises in various fields of sociology and marketing. The relevance of this work is = I determined by the need for the software package for analysis and visualization of such graphs. This paper introduces summary = = analysis of several software products and highlights their weaknesses: lack of cross-platform and specialized graph warehouses, = = inability to deal with huge graphs. =
= This paper presents a detailed description of the overall architecture of the software developed and each of its modules separately, = = as well as a procedure for communication between core modules. A special graph warehouse capable to process graphs having up to = I 100 million vertices and billions of links is used to store graphs. A description of main data warehousing principles is also introduced. | I The use of a proprietary file system ensures the absence of additional system calls when working with the warehouse and the lack = = of a complex addressing system and any excessive mechanisms, that enables to avoid any extra overhead costs associated with = I data warehousing. Furthermore, there is a description of a methodology for data visualization module, used data structures and | = computer graphics algorithms, that enable to handle graphs comprising up to millions of vertices on real time basis. |
I It is worth noting a wide range of algorithms for auto layout of graphs such as random layout, circular layout, circular component =
I layout, peacock tail layout, one or two themes layout, layout based on community detection and estimation of cohesion. This | i paper presents a detailed description of each of the layout mentioned above. i
= Special attention should be paid to the developed methods of graph analysis. Algorithms have been designed to detect = I communities in social networks, to evaluate graph cohesion, to find the shortest paths between any pair of vertices, graphs union Ё I and intersection, etc. |
= A key feature of all algorithms presented in this paper is their ability to handle huge graphs. f
^ .'t
Key words: graph, graph analysis, graph visualization, graph storage, software.
References
1. Batura T. (2012) Metody analiza kompjuternyh socialnyh setej [Methods of social networks analysis]. VestnikNGU, serija «Informacionnye tehnologii» [Information Technologies], no. 10 (4), pp. 13-28. (in Russian)
2. Borisenko V.V., Lahno A.P., Chepovskiy A.M. (2010) Specialnoe predstavlenie grafov i vizualizacija semanticheskih setej [Special graph representation and visualization of semantic networks]. Fundamentalnaya i prikladnaya matematika [Fundamental and Applied Mathematics], vol. 16, no. 8, pp. 27-35. (in Russian)
3. Kolomejchenko M.I., Chepovskiy A.A., Chepovskiy A.M. (2014) Algoritm vydelenija soobshhestv v socialnyh setjah [The algorithm for detecting communities in social networks]. Fundamentalnaya iprikladnaya matematika [Fundamental and Applied Mathematics], vol. 19, no. 1, pp. 21-32. (in Russian)
4. Poljakov I.V., Chepovskiy A.A., Chepovskiy A.M. (2013) Hranenie i obrabotka grafa socialnyh setej [Social networks storing and processing]. Vestnik NGU, serija «Informacionnye tehnologii» [Information Technologies], vol. 11, no. 4, pp. 77-83. (in Russian)
5. Churakov A.N. (2001) Analiz sotsialnykh setey [Social network analysis]. SotsIs, no. 1, pp. 109-121. (in Russian)
6. Battista G., Tamassia R., Tollis I. (1999) Graph drawing: Algorithms for the visualization of graphs. Springer.
7. Baur M., Brandes U. (2004) Crossing reduction in circular layouts. Proceedings of the 30th International Conference on Graph-Theoretic Concepts in Computer Science (WG 2004), WG 2004, Bonn, Germany, 21-23 June, 2004, pp. 332-343.
8. CrimeLink. Available at: http://www.pciusa.us/Crimelink.aspx (accessed: 05.04.2014).
9. i2 Analyst’s Notebook. Available at: http://www-03.ibm.com/software/products/ru/analysts-notebook (accessed: 05.04.2014).
10. Kaufmann M., Wagner D. (2001) Drawing Graphs. Springer.
11. Newman M.E. (2010) Networks: An Introduction. Oxford, UK: Oxford University Press.
12. Sentinel Visualyzer. Available at: http://www.fmsasg.com/Products/SentinelVisualizer (accessed: 05.04.2014).
13. Tom Sawyer. Available at: http://www.tomsawyer.com (accessed: 05.04.2014).
14. XAnalys Link Explorer. Available at: http://www.xanalys.com/solutions/linkexplorer.html (accessed: 05.04.2014).
16
BUSINESS INFORMATICS №4(30)-2014