Научная статья на тему 'Визуализация кооперативных схем: гибридный эвристический алгоритм для минимизации количества пересечений ребер при укладке графа'

Визуализация кооперативных схем: гибридный эвристический алгоритм для минимизации количества пересечений ребер при укладке графа Текст научной статьи по специальности «Математика»

CC BY
412
75
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
НАПРАВЛЕННЫЙ ИЕРАРХИЧЕСКИЙ АЦИКЛИЧЕСКИЙ ГРАФ / ЧИСЛО ПЕРЕСЕЧЕНИЙ РЕБЕР ГРАФА / ЭВРИСТИЧЕСКИЕ МЕТОДЫ / КЛАСТЕРИЗАЦИЯ / DIRECTED HIERARCHICAL ACYCLIC GRAPH / EDGE CROSSING / HEURISTIC ALGORITHMS / CLUSTERING

Аннотация научной статьи по математике, автор научной работы — Васильев Юрий Михайлович, Фридман Григорий Морицович

В статье предложен новый метод (гибридный алгоритм) для минимизации пересечений ребер иерархического графа посредством определения порядка расположения вершин на его слоях, с учетом верхней границы по времени счета. Проведены массовые расчеты, которые продемонстрировали существенное снижение числа пересечений ребер графов с широким набором характеристик.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

A new method (hybrid algorithm) is advocated in the paper for edge crossing minimization problem in graph drawing taking into account the upper boundary for computing time. Systematic numerical calculations demonstrated significant reduction for edge crossing number for a wide range of graph characteristics.

Текст научной работы на тему «Визуализация кооперативных схем: гибридный эвристический алгоритм для минимизации количества пересечений ребер при укладке графа»

Васильев Ю.М., Фридман Г.М.

ВИЗУАЛИЗАЦИЯ КООПЕРАТИВНЫХ СХЕМ: ГИБРИДНЫЙ ЭВРИСТИЧЕСКИЙ АЛГОРИТМ ДЛЯ МИНИМИЗАЦИИ КОЛИЧЕСТВА ПЕРЕСЕЧЕНИЙ РЕБЕР

ПРИ УКЛАДКЕ ГРАФА

Аннотация. В статье предложен новый метод (гибридный алгоритм) для минимизации пересечений ребер иерархического графа посредством определения порядка расположения вершин на его слоях, с учетом верхней границы по времени счета. Проведены массовые расчеты, которые продемонстрировали существенное снижение числа пересечений ребер графов с широким набором характеристик.

Ключевые слова. Направленный иерархический ациклический граф, число пересечений ребер графа, эвристические методы, кластеризация.

Vasiliev Yu.M., Fridman G.M.

COOPERATION SCHEME VISUALIZATION: A NEW HYBRID ALGORITHM FOR EDGE CROSSING MINIMIZATION IN GRAPH DRAWING PROBLEM

Abstract. A new method (hybrid algorithm) is advocated in the paper for edge crossing minimization problem in graph drawing taking into account the upper boundary for computing time. Systematic numerical calculations demonstrated significant reduction for edge crossing number for a wide range of graph characteristics.

Keywords. Directed hierarchical acyclic graph, edge crossing, heuristic algorithms, clustering.

Введение

Визуализация информации применяется в системах поддержки принятия решения для интерактивной работы с данными, в частности для упрощения процесса изучения и усиления познавательной способности [1]. Использование графической информации позволяет человеку обрабатывать большие объемы данных, структурируя информацию. Визуальный анализ данных представлен, в частности, в таких областях, как информационные системы и программное обеспечение [2]. В финансовом анализе, при визуализации социальной сети, визуализация структуры программного обеспечения и ряде других приложений используются графы [3]. Граф - это абстрактный математический объект, который создан для описания отношений между объектами. Проблема размещения графа - это задача определения наилучшего способа укладки графа на плоскости для улучшения восприятия содержащейся в нем информации человеком.

ГРНТИ 28.17.19

© Васильев Ю.М., Фридман Г.М., 2017

Юрий Михайлович Васильев - аспирант Санкт-Петербургского государственного экономического университета. Григорий Морицович Фридман - доктор технических наук, профессор Санкт-Петербургского государственного экономического университета.

Контактные данные для связи с авторами (Фридман Г.М.): 191023, Санкт-Петербург, Садовая ул., д. 21 (Russia, St. Petersburg, Sadovaya str., 21). Тел.: +7 (931) 2208151. E-mail: grifri@finec.ru.

Одним из последних примеров по применению визуального анализа данных является создание единой информационной системы в РФ. 29 июня 2015 г. подписан Федеральный закон Российской Федерации № 159-ФЗ, предусматривающий, в числе прочего, создание единой информационной системы (ЕИС) контроля исполнения государственного оборонного заказа [4]. Этот закон направлен на создание системы контроля за использованием бюджетных средств при размещении и выполнении государственного оборонного заказа. На едином дне приемки военной продукции 16 июля 2015 года заместитель Министра обороны РФ Шевцова Т.В. предоставила информацию по работе ЕИС ГОЗ.

Система работает по следующему принципу: используя поступившие от банков данные об актах приёма-передачи, она автоматически визуализирует степень исполнения контракта. Это позволяет заказчику видеть риски срыва сроков государственного оборонного заказа и принимать необходимые меры. На схеме также обозначены денежные потоки, вышедшие из системы отдельных счетов по разрешённым операциям. Программа автоматически формирует графическую схему кооперации, которая часто оказывается чрезвычайно насыщенной. Так, у корпорации «Иркут» на первых трёх уровнях кооперации насчитывается порядка 1100 исполнителей.

На основе этой схемы, используя различные цветовые маркеры, можно увидеть все проблемные участки. Минобороны России, как государственному заказчику, данный инструмент позволит:

• проводить более взвешенную авансовую политику с учётом производственно-технологического цикла изготовления продукции, включая переход на этапное авансирование платежей;

• определять степень готовности продукции по государственному контракту, обеспечить информированность военных представительств о фактическом расходовании денежных средств в рамках каждого государственного контракта;

• оценивать финансовые риски, возникающие при выполнении государственного контракта;

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

Главным критерием оценки качества методов визуализации является как можно более точное соответствие изображения заданному типу информации [5]. Учитывая структуру формирования кооперативной схемы, можно уверенно сказать, что она представляет собой иерархический граф. Информация, соответствующая вершинам и ребрам, может быть передана посредством названий, подписей, различного местоположения объектов, различных цветов, толщиной линий, размером вершин, направлением ребер и т. д.

Для комфортной работы аналитиков необходимо, чтобы граф прорисовывался за время, позволяющее работать с данными без пауз. При этом, ввиду закрытости информации по ГОЗ, размер графов, которые будет изображать информационная система, заранее не известен. Алгоритм, который хорошо размещает граф относительно небольшого размера, совершенно необязательно будет эффективен при работе с относительно большим графом. При этом необходимо выполнять высокие требования к укладке графа, изображение должно быть «читаемым» и информативным для эффективной работы аналитиков. Таким образом, время на укладку графа ограничено сверху, и чрезвычайно важно, не нарушая поставленных временных границ, получить оптимальную визуализацию данных с учетом бизнес-требований.

Хорошая визуализация информации помогает пользователю быстро находить нужный элемент в иерархии, понимать отношение элемента к его контексту и обеспечивать возможность прямого доступа к информации при вершинах [6]. Наиболее известный метод для размещения иерархических графов - это метод Сугиямы, включающий 5 этапов:

1. Исключение циклов из графа.

2. Распределение вершин по слоям. Поскольку распределение вершин по слоям может быть получено в соответствии со временем появления контрагента в кооперативной схеме, данный этап не выполняется.

3. Определение порядка расположения вершин на слое с целью минимизации пересечений ребер.

4. Определение координат вершин на слое.

5. Прорисовка ребер.

Для формализации схемы кооперации используются понятия: головной исполнитель, контрагент и суммарный денежный поток между двумя контрагентами (или головным исполнителем и контраген-

том). Предполагается, что на первом слое иерархического графа всегда располагается вершина «головной исполнитель». От данной вершины идут денежные потоки к вершинам - контрагентам второго слоя, а от вершин второго слоя - к контрагентам следующего слоя и т.д. В настоящей статье предложен и апробирован новый метод (гибридный алгоритм) для определения порядка расположения вершин на слое с целью минимизации пересечений ребер с учетом верхней границы по времени. Математическая формулировка задачи

Для произвольного натурального числа к определим - слойный граф С = (V, Е, X) как иерархический ациклический направленный граф С = (У,Е), где V - множество его вершин, Е - множество его ребер.

Для каждой вершины графа иЕУ обозначим через у(и) = {рЕ VI (и,р) Е Е] множество смежных ей вершин, а через Л(и) - оператор (функционал), который ставит в соответствие вершине иЕУ натуральное число Л(и), 1<Л(и) <к, т.е. номер слоя, на котором эта вершина находится. Тогда, естественно, вершины графа, расположенные на одном слое, характеризуются одинаковым значением функционала А(и).

Будем рассматривать графы, для которых выполняется равенство Я(у) — Л(и) = 1, V (и, р) Е Е. Это условие обеспечивает существование в графе исключительно ребер, соединяющих вершины соседних слоев (отсутствуют так называемые «длинные» ребра), а также естественную нумерацию слоев графа сверху вниз, от 1 до к.

Поскольку при размещении графов, соответствующих кооперативным схемам, разбиение вершин по слоям фактически задано, то первая задача, которую необходимо решить - это минимизация пересечений ребер графа с помощью определения наилучшего порядка расположения вершин (перестановки вершин А_1(0 = {и Е VIЯ(и) = 1)) в ранжированных слоях с номерами I Е {1,...,к}. Таким образом, для графа С требуется найти набор перестановок его вершин П(С) = {Л,_1(0 | 1 < I < к}, который минимизирует число пересечений его ребер.

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

Задачу минимизации пересечений ребер графа можно сформулировать, как задачу целочисленного программирования [7], которая является КР-сложной, поэтому точный подход к ее решению может использоваться лишь для относительно небольших графов. Как следствие, на практике широкое распространение получили эвристические алгоритмы, которые зачастую дают результат, отличный от оптимального, но за приемлемое расчетное время.

В работах [8; 9; 10] даны рекомендации по составлению последовательностей неточных алгоритмов для получения улучшенного результата. В данной статье авторами предложен метод составления последовательностей неточных алгоритмов (гибридный алгоритм) для обучающей выборки графов, который позволяет получить число пересечений ребер по крайней мере на 10.9% меньше, чем эвристические алгоритмы по отдельности. Метод составления гибридного алгоритма

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

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

Пусть дано множество неточных алгоритмов А и некоторая обучающая выборка графов И. Гибридный алгоритм представляет собой последовательность следующих шагов:

1. Для каждого алгоритма аЕ А определяется функция £а(С), которая, в зависимости от характеристик графа СЕЙ, оценивает верхнюю границу времени работы алгоритма а. Процесс построения функции £а(С) описан в следующем разделе.

2. Множество графов И разбивается на кластеры С; по следующим характеристикам графов: число слоев, среднее количество вершин в слое, максимальное количество вершин в слое, среднее количество ребер между двумя соседними слоями, максимальное количество ребер между двумя слоями.

3. Для каждого кластера С[ сО выбирается подмножество алгоритмов Ас. сЛ, таких, что прогнозируемое время их работы £а(С) с графами Сё С; не превосходит заданной величины т:

Ас. = {аеА | Са(С)<т, V СёС1 }.

4. Для каждого кластера с; строится множество цепочек из алгоритмов а ё Ас., при этом каждой цепочке сопоставляются две характеристики: общее число пересечений ребер для всех графов Сё с; после применения к ним этой цепочки и максимальное время счета цепочки, примененной к графам Сё С[. Цепочка включается в множество (является допустимой), если ее вторая, временная, характеристика не превосходит т.

5. Для каждого множества допустимых цепочек из алгоритмов а ё Ас. определяется эффективная цепочка, которая позволяет получить минимальное общее число пересечений ребер для всех графов из кластера Сг. Поиск эффективной цепочки проводится, если это возможно, методом полного перебора.

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

1. Алгоритмы а ё Ас. применяются ко всем графам из кластера с;, выбираются те, время работы которых ни для одного графа не превышает величины т; в результате создается множество «начальных» допустимых цепочек алгоритмов для кластера С;, а также определяются их характеристики.

2. Выбирается цепочка («текущая эффективная цепочка»), которая дает наименьшее общее число пересечений ребер всех графов из С;; если таких цепочек несколько, то выбирается та, которая достигает результата за наименьшее время счета (обозначим временную характеристику текущей эффективной цепочки - ¿о^).

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

4. Все оставшиеся цепочки, включая текущую эффективную, разбиваются на подмножества по временной характеристике. Попадание в подмножество определяется принадлежности временной характеристики цепочек к одному из промежутков:

{[^Г^Г' -Д); -Д; ^ -2 Д); -2 Д; ^ -3 Д); ...}, где Д= т^аЁЛС£ таХСЁС1

5. Для каждого подмножества определяются цепочки с наименьшим общим числом пересечений; отобранную цепочку будем называть «потенциальной», при условии, что количество пересечений, характеризующее ее, меньше, чем в отобранных цепочках из других подмножеств с меньшей временной характеристикой.

6. Строится новое множество допустимых цепочек:

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

• текущая эффективная цепочка включается в новое множество только если она остается в нем лучшей с точки зрения первой своей характеристики (общего числа пересечений ребер графов из кластера).

7. Совершается переход к пункту 2.

8. Алгоритм завершает свою работу, если на некоторой итерации множество потенциальных цепочек содержит лишь один элемент (текущую лучшую цепочку предыдущей итерации).

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

Детализация гибридного алгоритма

На практике существует богатый выбор эвристических методов, используемых для минимизации пересечений ребер в иерархических графах. В основе большинства этих эвристик лежит идея разделения графа на множество двух- или трехслойных подграфов, составленных из соответствующего числа соседних слоев исходного и последовательной минимизации числа пересечений ребер этих подграфов. Если используются двухслойные подграфы, то они составляются из 1-го и 2-го слоев, 2-го и 3-го и т.д., а для трехслойных берутся слои с 1-го по 3-й, затем со 2-го по 4-й, с 3-го по 5-й и т.д.

В настоящей статье рассмотрены следующие эвристические методы:

1. Эвристики для двухслойных и трехслойных подграфов, основанные на методе барицентров (метод барицентров, медиан и взвешенных медиан) [11];

2. Методы сортировки для двухслойных и трехслойных подграфов (сортировка простыми обменами, быстрая сортировка и сортировка вставками) [12].

Используя каждый отдельный метод для двухслойных или трехслойных подграфов, можно сформировать четыре алгоритма из множества алгоритмов А:

• применение метода для исходного графа при обходе от его головной вершины к листьям;

• применение метода для исходного графа при обходе от листьев к его головной вершине;

• применение метода для графа, уже «обработанного» цепочкой алгоритмов минимизации числа пересечений ребер, при обходе от его головной вершины к листьям;

• применение метода для графа, уже «обработанного» цепочкой алгоритмов минимизации числа пересечений ребер, при обходе от листьев к его головной вершине.

В таблице собраны данные по временной сложности указанных итерационных методов в зависимости от числа вершин в нефиксированном слое и числа ребер |Е'| между соседними слоями.

Таблица

Временная сложность итерационных методов

Метод Временная сложность

барицентров 0(|Уп^|Уп?| + |Е'|)

медиан 0(|УпИ + |Е'|)

взвешенных медиан 0(КИ + |Е'|)

сортировки простыми обменами 0(1^|2)

быстрой сортировки 0(|Уп^|Уп?|)

сортировки вставка

Таким образом, множество алгоритмов А состоит из 48-и элементов. Например, алгоритмом будем называть метод взвешенных медиан для трехслойного подграфа, который применяется для исходного графа при обходе от его головной вершины к листьям.

Обучающая выборка И формируется из графов, которые обычно используются в рассматриваемой предметной области, например, для визуализации кооперативных схем ЕИС ГОЗ. Если выборка недостаточно велика, следует использовать различные инструменты генерирования случайных графов с аналогичными характеристиками [11].

Каждый граф выборки И разбивается на двуслойные и трехслойные подграфы, состоящие из двух (или, соответственно, трех) соседних слоев исходного графа. Эти графы формируют множества и . Поскольку некоторые алгоритмы должны быть применены к уже «обработанным» графам, то к каждому графу из и применим случайно выбранный из множества А алгоритм и полученные множества графов обозначим и Д(З').

В работе предложен следующий метод построения функции £а(С), которая оценивает верхнюю границу времени работы алгоритма а для графа С по обучающей выборке:

й* Е {Я^,^3),^2'),^3')} : 1. Исходя из аргументов функции временной сложности алгоритма (см. табл.), каждому графу из Б* сопоставляется набор характеристик (например, для метода барицентров для двуслойных графов

такими характеристиками служат величины |Vnf| log|Vnf| и |E'|), и все графы ранжируются по евклидовой норме этих характеристик;

2. Алгоритм а применяется к каждому графу поочередно, по возрастанию нормы характеристик, до тех пор, пока время работы алгоритма на некотором графе не превысит величины т. В результате формируется набор точек, координатами которых служат характеристики графа и время работы алгоритма а;

3. Выбирается точка с наибольшим временем счета t™ax, и для всех точек с более высокими нормами характеристик время счета заменяется на ;

4. Для полученного множества точек строится минимальная выпуклая оболочка, и в ней выбираются грани (симплексы) с внешними нормалями, лежащими в третьем или четвертом октантах, либо с вертикальными нормалями. Обозначим функцию, описывающую эту кусочно-заданную поверхность через t^n(C), где G' - подграф, состоящий из набора соседних слоев графа G, количество которых определяется вариантом эвристического алгоритма;

5. Определяется уравнение плоскости t%ut(G'), проходящей через точку с наибольшим временем счета и имеющую нормаль, рассчитанную как средневзвешенный вектор нормалей симплексов поверхности t£n(G'). Весовые коэффициенты рассчитываются в зависимости от нормы характеристик точки;

6. Оценка времени работы алгоритма а по графу G вычисляется как совокупное время работы алгоритма по множеству подграфов:

G'QG

где функция ta(G') задана следующим образом:

it™ (G'), если набор харакетристик G' лежит внутри области определения функции; t%ut(G'), в обратном случае.

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

При проведении числовых расчетов на базе предложенного гибридного алгоритма время счета для решения задачи минимизации пересечений ребер было ограничено сверху параметром т = 0.25 секунды. В качестве компьютерного инструмента применялась математическая среда Wolfram Mathe-matica (см. http://www.wolfram.com). Для оценки эффективности алгоритмов использовалась выборка из 2000 тестовых графов с различным числом вершин по слоям и с вариацией насыщенности слоев. Количество слоев варьировалось от 5 до 20, а количество вершин на слое от 1 до 500, число входящих ребер в вершину менялось от 1 до 50.

Массовые расчеты показали, что любые отдельные эвристические методы минимизации числа пересечений ребер для каждого кластера дают результаты, худшие по сравнению с гибридным алгоритмом. Гибридный алгоритм позволяет уменьшить число пересечений ребер на 10.9% по сравнению с лучшим отдельным эвристическим методом для каждого графа. В случае сопоставления с каждым методом раздельно суммарное число пересечений ребер оказывается меньше от 13.3% до 47%.

На основании выполненных массовых расчетов были сделаны следующие выводы:

1. Точное решение оптимизационной задачи неприменимо в общем случае;

2. Для всех рассмотренных графов гибридный алгоритм является лучшим из всех эвристических методов с точки зрения и качества решения, и временных затрат на его получение.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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

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

5. Для успешного использования гибридного алгоритма к заданному графу следует сопоставить этому графу набор числовых характеристик и отнести его граф к одному из заранее построенных подмножеств (кластеров) обучающей выборки.

Заключение

В статье предложен и апробирован метод (гибридный алгоритм) для минимизации пересечений ребер иерархического графа посредством определения порядка расположения вершин на его слоях, с учетом верхней границы по времени счета. Проведенные массовые расчеты продемонстрировали, что использование гибридного алгоритма приводит к уменьшению числа пересечений ребер графа на 10.9%.

ЛИТЕРАТУРА

1. Battista G.D., Gard A., Liotta G., Tamassia R., Tassinari E., Vargiu F. An experimental comparison of four graph drawing algorithms // Computational Geometry. 1997. Vol. 7. P. 303-325.

2. Sugiyama K. Graph drawing and applications for software and knowledge engineers // World Scientific, series on software engineering and knowledge engineering. 2002. Vol. 11.

3. Michalak K., Korzczak J. Graph mining approach to suspicious transaction detection // Proceedings of the Federated Conference on Computer Science and Information Systems, 2011. P. 69-75.

4. Федеральный закон «О внесении изменений в Федеральный закон «О государственном оборонном заказе» и отдельные законодательные акты Российской Федерации» от 29.06.2015 г. № 159-ФЗ.

5. Sugiyama K., Tagawa S., TodaM. Methods for visual undertanding of hierarchical systems // IEEE Transactions on Systems, Man, and Cybernetics. 1981. Vol. SMC-11. № 2. Р. 109-125.

6. Апанович З.В. Методы навигации при визуализации графов // Вестник НГУ, серия: Информационные технологии. 2008. Том 6, вып. 3. С. 35-47.

7. Healy P., Nikolov N.S. Hierarchical drawing algorithms// Handbook of Graph Drawing and Visualization. 2005. Vol. 1, chapter 13. Р. 409-454.

8. Eades P., Kelly D. Heurisitcs for reducing crossings in 2-layered networks // Ars Combin. 1986. Vol. 21. Р. 89-98.

9. Junger M., Mutzel P. Two-layer straightline crossing minimization: performance of exact and heuristic algorithms // Journal of graph algorithms and applications. 1997. Vol. 1. Р. 1-25.

10. Бабурин Д.Е. Иерархический подход для автоматического размещения ациклических графов // Современные проблемы конструирования программ, 2002. С. 7-37.

11. Alaa A.K. Ismaeel. Dynamic Drawing of Hierarchical Graphs // PHD thesis, Karlsruher InstitutsTechnologie, 2012.

12. Gansner E.R., Koutsofios E., North S.C., Vo K.-P. A technique for drawing directed graphs // At&T Bell Laboratories. 1993. Vol. 19. Р. 214-230.

i Надоели баннеры? Вы всегда можете отключить рекламу.