№ 6(30) 2010
А. П. Лахно, А. М. Чеповский, В. Б. Чернобай
Визуализация связей выделенного множества объектов семантической сети
В семантической сети выделяется множество объектов, представляющих интерес для анализа. Элементом визуализации является подсеть, индуцированная множеством связей, инцидентных объектам выделенного множества. Предлагается метод построения компактного размещения таких подсетей, при использовании которого гарантированно исключаются пересечения между линиями связей, а также взаимное перекрытие подписей к объектам и связям.
Введение
Семантические сети являются естественным способом представления информации о взаимосвязях между объектами. С математической точки зрения семантическая сеть — граф с помеченными вершинами и ребрами. Вершины графа соответствуют объектам, а ребра — связям между данными объектами. Пометки задают описания соответствующих объектов и связей. В рамках статьи рассматривается задача визуализации связей выделенного множества объектов. Подсеть, индуцированная этими связями, включает в себя как сами объекты выделенного множества, так и объекты, непосредственно с ними связанные.
Задача плоского размещения достаточно хорошо изучена для графов без пометок. Описание основных результатов, имеющихся в этой области, можно найти в [1, 4]. При визуализации семантических сетей возникает необходимость размещения подписей к объектам и связям. В работах [5, 6] рассматривается двухступенчатый подход, в рамках которого на первом шаге строится размещение графа без учета пометок, а на втором шаге построенное размещение корректируется с целью устранения перекрытий между подписями. Достоинством такого подхода является возможность использования существующих схем размещения гра-
фов без пометок применительно к семантическим сетям. Предложенные в [5, 6] алгоритмы корректировки не поддерживают размещения подписей на ребрах и в общем случае не могут гарантировать сохранения необходимых свойств размещения, построенного на первом шаге. Тем не менее идея двухступенчатого подхода представляется продуктивной и существенным образом используется в данной статье.
Для визуализации связей выделенного множества объектов семантической сети предлагается метод многополосного размещения. Построение размещения проводится в два этапа: на первом осуществляется минимизация ширины размещения без учета подписей, на втором — построение окончательного размещения с учетом подписей.
Многополосное размещение
Входными данными рассматриваемой задачи визуализации связей выделенного множества объектов являются:
• граф G0 = (V0,E0), где V0 — множество вершин; Е0 — множество ребер. Граф G0 не содержит петель, но может иметь кратные ребра. Наличие ориентации ребер несущественно;
• пометки на вершинах и ребрах, задаваемые размерами объемлющих прямоугольников: w{v), h{v) для у eV0 и w{e), h{e)
№ 6(30) 2010
для е е Е0, где — ширина прямоугольников; Л — высота;
• выделенное множество вершин V 'с К,
Объектом визуализации является подграф в = (у,Е) графа индуцированный множеством ребер, инцидентных вершинам выделенного множества V':
Е = {е е Е0 I ребро е инцидентно некоторой вершине и е V'};
V = {у еК0 I вершина V инцидентна некоторому ребру е е Е}.
Граф й содержит вершины выделенного множества, атакже вершины, непосредственно с ними связанные. Будем называть вершины множества V \ V' вторичными. В графе й не может быть ребер между вторичными вершинами, поскольку каждое ребро е е Е инцидентно некоторой вершине и еУ'. Таким образом, каждое ребро графа й соединяет либо пару вершин и1, и2 выделенного множества V', либо вершину
I 1 ............I........' I- 1 р- / ^...... ' к в
........ „ч._____________ .....ч..... ...... .....1.....ч.....
1 1 г
1 1 1 А | 4 1
; V
з:;..... г- В „
I 1 г ч У
выделенного множества и еУ 'и вторичную вершину V е V\ V'.
Для визуализации графа в предлагается использовать многополосное размещение. Проиллюстрируем предложенный способ на примере, когда выделенное множество V' содержитдве вершины (рис. 1). Вершины выделенного множества и1, и2 представляются в виде горизонтальных линий. Пространство между этими линиями разделено на три полосы:
• полоса /4 используется для размещения пометок вторичных вершин
• полосы В' и В" — для размещения пометок на ребрах.
В общем случае, если выделенное множество V' содержит п вершин, то для размещения пометок вторичных вершин используется п +1 полоса, а для размещения пометок на ребрах — 2п полос соответственно (рис. 2): А1, /42,... — полосы для пометок вторичных вершин; б1, б2,... — полосы для пометок на ребрах. Для построения многополосного размещения предлагается применить Алгоритм 1, состоящий из пяти шагов.
Рис. 1. Пример многополосного размещения графа
№ 6(30) 2010
Вг
бз
В4
Рис. 2. Полосы размещения
Алгоритм 1.
1. На выделенном множестве V' фиксируется некоторый порядок и1.....ип, задающий относительное расположение горизонтальных линий, соответствующих вершинам выделенного множества.
2. Определяется порядок добавления ребер между вершинами выделенного множества.
3. Для каждой вторичной вершины
V е V \ V' выбирается полоса Л,-, в которой будет размещена пометка вершины V.
4. Определяется порядок добавления вторичных вершин ^.....ут.
5. Путем добавления ребер между вершинами выделенного множества и последующего добавления вторичных вершин с инцидентными им ребрами производится построение многополосного размещения, гарантирующее отсутствие пересечений между пометками.
Итоговая ширина размещения существенным образом зависит от результатов работы второго (рис. 3) и четвертого (рис. 4) этапов алгоритма.
Для минимизации ширины размещения при последовательном добавлении ребер между вершинами выделенного множества V' используется следующий подход. Каждому ребру е = (и,,и]), где и(,и] е^', ставится в соответствие множество пересекаемых им полос размещения:
С(е) = {Д I в е [т1п(/,у) + 1,тах(/,у)]}и ^ и {б, 1[Г е 2 • 1гт(/,у), 2 • тах(/,у) -1]}.
При заданном порядке добавления ребер е1.....ек между вершинами выделенного множества V' ширина размещения определяется как
1Ж = тах( х{е8 )1 э = \к), (2)
где х{е8)=1, если множество пересекаемых ребром е8 полос размещения не содержит ни одной из полос, пересекаемых ранее добавленными ребрами: С(е3)пС(е,)=0 , Г=1,э-1
1......................] а) '......................' б)
Рис. 3. Ширина многополосного размещения в зависимости от порядка добавления ребер между вершинами и1, и2, и3 выделенного множества V'
№ 6(30) 2010
Рис. 4. Ширина многополосного размещения в зависимости от порядка добавления вторичных
вершин а, Ь, с и инцидентных им ребер
и х{е8) = тах(х(е, )1С(е. )пС(е,) )+1 —в противном случае. Требуется определить порядок добавления ребер е1.....ек между вершинами выделенного множества V', минимизирующий ширину размещения 1Ж. Пронумеруем все полосы размещения числами от 1 до Зп +1 в соответствии с их относительным расположением (см. рис. 2):
А, е1,в2, АД, е4. А,— (3)
Тогда множество пересекаемых ребром е полос С(е) в этой нумерации задается некоторым отрезком индексов 1{е) = [/',у], 1 < /<у<Зп +1, а проверка пересечения множеств С(е3) и С(е,) сводится к проверке пересечения соответствующих отрезков /(е8) и /(е,).
Алгоритм нахождения оптимального порядка добавления ребер между вершинами выделенного множества основан на следующем конструктивном подходе. Для каждого ребра е в процессе работы алгоритма будет определено значение х(е), задающее абсциссу ребра при оптимальном порядке до-
бавления, минимизирующем ширину размещения 1Ж. Сам порядок добавления е1.....ек
может быть восстановлен в результате сортировки ребер по возрастанию найденных значений х{е). Начала и концы отрезков 1{е) упорядочиваются по возрастанию координат а1.....а2к. В случае равенства координат
начала располагаются раньше концов. При обработке получившейся последовательности поддерживается множество значений
абсцисс X = {1.....}, приписанных хотя бы
одному ребру. Изначально множество X пусто. Каждое х е X может быть задействовано или свободно. Если очередное обрабатываемое значение а( является началом отрезка, то из множества X выбирается произвольное свободное х, которое и используется для ребра е, соответствующего а;, в качестве абсциссы х{е). Значение х при этом помечается как задействованное. Если во множестве X = {1.....м} нет свободных значений, то в него предварительно добавляется новый элемент +1 или 1, еслиХ пусто. В случае, когда очередное обрабатываемое значение а( является концом отрез-
№ 6(30) 2010
ка, абсцисса х(е) соответствующего а( ребра помечается как свободное. В результате обработки последовательности а1.....а2к каждому ребру е будет приписано некоторое значение х{е), задающее абсциссу е при оптимальном порядке добавления.
Аналогичное построение может быть использовано для определения порядка добавления вторичных вершин ^.....чт с инцидентными им ребрами. Каждой вторичной вершине V е V \ V' ставится в соответствие множество затрагиваемых при ее размещении полос С{у). Данное множество включает в себя соответствующую вершине у полосу размещения А1, выбранную на втором шаге алгоритма построения многополосного размещения, а также множество полос, пересекаемых инцидентными у ребрами.
Проанализируем пятый шаг Алгоритма 1. Построение размещения с учетом подписей производится в два этапа: сначала последовательно добавляются ребра между вершинами выделенного множества, затем — вторичные вершины с инцидентными им ребрами. Для каждой из полос размещения поддерживается профиль, задающий границу между занятым и свободным пространством (рис. 5).
Определение положения очередного ребра е между вершинами выделенно-
I I
---------.................
I
Рис. 5. Профиль полосы
го множества в процессе добавления производится, исходя из ограничений, накладываемых профилями полос С{е), пересекаемых данным ребром. После добавления ребра соответствующие профили обновляются. При добавлении вторичной вершины у е V \ V 'с инцидентными ей ребрами положение элементов размещения определяется, исходя из ограничений, накладываемых полосами множества C(v). Обработка этих ограничений происходит согласно Апгорит-му2в три этапа.
Алгоритм 2.
1. Вычисляются независимые ограничения на размещение вершины у и каждого из инцидентных ей ребер.
2. На основе вычисленных ограничений определяется порядок добавления инцидентных вершине у ребер, после чего производится их добавление.
3. Размещение вершины у согласуется с размещением инцидентных ей ребер, вносятся необходимые коррективы в ранее вычисленные значения координат.
Апробация метода
Для апробации предложенного метода визуализации был разработан плагин к аналитическому пакету ¡2 Analyst's Notebook1, производящий автоматическое построение многополосного размещения. Этот плагин протестирован на ряде примеров, подготовленных на основе материалов австралийского представительства компании ¡2, а также материалов, входящих в стандартный комплект примеров пакета ¡2 Analyst's Notebook. В процессе тестирования рассмотрена задача размещения для сети контактов абонентов мобильной связи. Объекты сети соответствуют абонентам, а связи — звонкам и SMS-сообщениям. Анализ подобного рода сетей активно используется, например,
1 ¡2 Analyst's Notebook / URL: http://www.i2group. com/us/products-services/analysis-product-line/analysts-notebook (дата обращения: 30 июня 2010 г.).
№ 6(30) 2010
Рис. 6. Размещение схемы контактов абонента мобильной связи, предложенное пакетом ¡2 Analyst's Notebook
для выявления преступных групп в ходе криминальных расследований [2, 3, 7]. Визуализация связей выделенного множества объек-
| тов в данном случае позволяет проанализи-
>s ровать контакты интересующей группы або-
S нентов.
<и
g В результате практических испытаний | разработанного плагина удалось автомати-g зировать и в десятки раз сократить время § выполнения стандартной задачи аналитики ка — размещения на схеме значительного о количества объектов и связей между ними fl без их перекрытия. Так, при размещении | схемы контактов абонента мобильной свя-| зи пакет ¡2 Analyst's Notebook предлагает g вариант, изображенный на рис. 6. Для уст! ранения перекрытий значков и подписей Ц пользователю приходится вручную переЦ размещать объекты и связи. Специалист с опытом работы может разместить на схеме S формата АО до 600 объектов в течение од-£ ного рабочего дня. Использование плаги-=| на, реализованного на основе приведенного | в статье алгоритма построения многополос-S. ного размещения, позволяет полностью ав-оо томатизировать процесс и сократить время
размещения до 7 мин при 600 объектах на схеме. Результат авторазмещения показан на рис. 7и8.
Заключение
В данной статье был предложен алгоритм построения многополосного размещения, который может использоваться для визуализации связей выделенного множества объектов семантической сети. В рамках описанного подхода для объекта визуализации удается получить компактное представление, в котором гарантированно исключаются пересечения между линиями связей, а также взаимное перекрытие подписей к объектам и связям. Одним из основных качественных показателей алгоритмов визуализации при работе с семантическими сетями является наглядность. В соответствии с этим требованием алгоритм построения многополосного размещения хорошо подходит для визуализации связей небольшого (порядка десяти) числа объектов выделенного множества. При этом количество вторичных объектов с точки зрения нагляд-
№ 6(30) 2010
Рис. 7. Размещение схемы, полученное в результате работы плагина
Рис. 8. Увеличенный фрагмент размещения, полученного в результате работы плагина
"jjiî tj| IP »loiftajSiglaHi^ IBS'а ь l в^НВд o<> the & л a .... ™.=|а.я j
11
ности размещения существенным образом не ограничено. Для апробации предложенного метода визуализации был разработан плагин к аналитическому пакету ¡2 Analyst's Notebook, производящий автоматическое построение многополосного размещения. Данный плагин позволяет автоматизировать процесс размещения на схеме объектов и связей без их перекрытия при необходимости визуализации связей выделенного множества объектов.
Описок литературы
1. Касьянов В. Н., Евстигнеев В. А. Графы в программировании: обработка, визуализация и применение. СПб.: БХВ-Петербург, 2003. С. 335-448.
2. Рабинович Б. И. Кластерный анализ детализаций телефонных переговоров // Системы и средства информатики. Ин-т проблем информатики РАН. Вып. 17 / Отв. ред. И. А. Соколов. М.: Наука, 2007. С. 52-78.
3. Йозе С., Эссейва П., Рибо О., Вейерманн С., Англада Ф., Лосисиро С., Айо П., Баэр И., Гacre Л., Терретта-Зюфферей А.-Л., Делапорт С., Марго П. Создание оперативной системы составления профилей наркотических средств: опыт Швейцарии // Бюллетень по наркотическим средствам. Управление организации объединенных наций по наркотикам и преступности. Вена, 2005. T. LVII, №1,2. С. 121-148.
4. Di Battista G., Eades P., Tamassia R., Toll-is I. G. Graph drawing: algorithms for the visualization of graphs. Prentice Hall, 1999.
5. Dwyer T., Marriott K., Stuckey P. J. Fast node overlap removal // In Proc. 13th Intl. Symp. Graph Drawing (GD '05). Lecture Notes in Computer Science. 2006. Vol. 3843. P. 153-164.
6. Marriott K., Stuckey P., Tam V., He W. Removing node overlapping in graph layout using constrained optimization // Constraints. 2003. Vol. 8. P. 143-171.
7. Xu J., Chen H. Criminal network analysis and visualization: a data mining perspective // Communications of the ACM. 2005. Vol. 48. P. 100-107.