SlideShare a Scribd company logo
1 of 3
Download to read offline
ФОРМАЛЬНЫЕ ОСНОВЫ ИЕРАРХИЧЕСКОЙ
ЗАПИСИ ПРОИЗВОЛЬНЫХ ГРАФОВ
Блинов Р.В.
e-mail: r.v.blinov@mail.ru
Рассмотрен способ формального описания графов,
основанный на иерархическом представлении отношения
смежности вершин. Приведены примеры для различных
видов графов.
Ключевые слова: граф, каркас, остовное дерево,
сериализация, XML.
Метод записи основан на представлении исходного графа
G(V,E)1
с матрицей смежности [A] в виде суммы остовного
дерева и его дополнения до графа G.
Пусть [T]-матрица смежности остовного дерева(каркаса)
и [J]-матрица смежности частичного графа (кографа,
дополнения каркаса до исходного графа). Тогда
[A] = [T] + [J] (1)
Ниже приведены примеры сериализации матриц
смежности [T] и [J] в виде вложенных списков.
Неориентированные графы.
Рассмотрим неориентированный граф (рис.1) с
матрицей смежности [A]:
A=
(
0 1 0 1 1 0
1 0 1 1 1 1
0 1 0 1 1 0
1 1 1 0 1 0
1 1 1 1 0 1
0 1 0 0 1 0
).
рис.1
Для представления неориентированного графа
достаточно рассмотреть соответствующие
верхнетреугольные матрицы. Одна из сумм приведена
ниже.
(
0 1 0 1 1 0
0 0 1 1 1 1
0 0 0 1 1 0
0 0 0 0 1 0
0 0 0 0 0 1
0 0 0 0 0 0
)=
(
0 1 0 1 1 0
0 0 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 1
0 0 0 0 0 0
)+
(
0 0 0 0 0 0
0 0 0 1 1 1
0 0 0 1 1 0
0 0 0 0 1 0
0 0 0 0 0 0
0 0 0 0 0 0
)
Иерархическая запись представляет собой вложенные
списки вершин остовного дерева графа и их соединений.
1 V- множество вершин графа, E- множество рёбер графа
G(V,E)
Для поиска остовного дерева [T] может быть использован
любой известный алгоритм, см. [Л1]. Здесь и далее по
тексту каркасы получены методом поиска в глубину,
начиная с верхней строки матрицы смежности [A].
Рёбра, не принадлежащие каркасу, выносятся в матрицу
смежности частичного графа [J].
Уровни вложения вершин определяются при обходе
остова. Дополнительные соединения вершин остовного
дерева берутся из матрицы смежности частичного графа и
записываются вложенным списком с префиксами «J» для
соответствующей вершины каркаса.
Рассмотренная выше сумма порождает следующую
иерархическую запись:
(0 (1(2)) (3(J1)(J2)) (4(J1)(J2)(J3)(5(J1))) ), (2)
где уровни вложенности вершин 0-5 соответствуют
остовному дереву(каркасу) (0 (1(2)) (3) (4(5)) ) :
рис.2
и соединения J1-J3 позволяют описать частичный
граф(рис.3) в контексте найденного каркаса(рис.2):
рис.3
Порядок вложения соответствующих соединений для
записи (2), определяется столбцами матрицы смежности
частичного графа.
При просмотре матрицы смежности частичного графа по
строкам получим иерархическую запись на том же каркасе,
но другого вида:
(0 (1(J3)(J4)(J5)(2(J3)(J4))) (3(J4)) (4(5)) ). (3)
Легко проверить, что записи, полученные просмотром
матрицы смежности частичного графа по строкам (3) и по
столбцам (2) эквивалентны.
Каждое из полученных описаний графа является полным,
поскольку определяет все вершины и рёбра исходного
графа в силу построения.
Для определения числа возможных записей, рассмотрим
матрицу Кирхгофа исходного графа:
М =
(
3 −1 0 −1 −1 0
−1 5 −1 −1 −1 −1
0 −1 3 −1 −1 0
−1 −1 −1 4 −1 0
−1 −1 −1 −1 5 −1
0 −1 0 0 −1 2
)
Число возможных остовов графа, равное постоянной
матрицы Кирхгофа, составит 180. Учитывая, что для
каждого каркаса возможны 2 записи, всего существует 360
вариантов иерархической записи исходного графа (рис.1).
1 Блинов Р.В., 2012
Лицензия: http://creativecommons.org/licenses/by-nc-sa/3.0/
1 3 4
52
0
1 3 4
2
0
5
1 3 4
2
0
5
Ориентированные графы.
Пусть задан орграф:
рис.4
Используем следующее разложение на каркас и кограф:
(
0 1 0 0 1 0
0 0 1 0 0 1
0 0 0 1 1 0
1 1 0 0 1 0
0 1 0 0 0 1
0 0 0 0 0 0
)=
(
0 1 0 0 1 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 0 0
0 0 0 0 0 1
0 0 0 0 0 0
)+
(
0 0 0 0 0 0
0 0 0 0 0 1
0 0 0 0 1 0
1 1 0 0 1 0
0 1 0 0 0 0
0 0 0 0 0 0
)
Тогда иерархическая запись примет вид:
(0 (J3) (1(J3)(J4)(2(3))) (4(J2)(J3)(5(J1))). (4)
Ориентированные графы с кратными рёбрами
(мультиграфы).
Пусть задан мультиграф:
рис.5
Используем следующее разложение на каркас и кограф:
(
0 1 0 1 1 0
0 0 1 0 0 1
0 0 0 1 1 0
1 1 0 0 1 0
0 1 0 0 0 1
0 0 0 0 0 0
)=
(
0 1 0 1 1 0
0 0 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 1
0 0 0 0 0 0
)+
(
0 0 0 0 0 0
0 0 0 0 0 1
0 0 0 1 1 0
1 1 0 0 1 0
0 1 0 0 0 0
0 0 0 0 0 0
)
Тогда иерархическая запись примет вид:
(0 (J3) (1(J3)(J4)(2)) (3(J2)) (4(J2)(J3)(5(J1))) ). (5)
Ориентированные графы с кратными рёбрами и
петлями (псевдографы).
Пусть задан псевдограф:
рис.4
Используем следующее разложение на каркас и кограф:
(
0 1 0 1 1 0
0 0 1 0 0 1
0 0 0 1 1 0
1 1 0 0 1 0
0 1 0 0 0 1
0 0 0 0 0 1
)=
(
0 1 0 1 1 0
0 0 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 1
0 0 0 0 0 0
)+
(
0 0 0 0 0 0
0 0 0 0 0 1
0 0 0 1 1 0
1 1 0 0 1 0
0 1 0 0 0 0
0 0 0 0 0 1
)
Тогда иерархическая запись примет вид:
(0 (J3) (1(J3)(J4)(2)) (3(J2)) (4(J2)(J3)(5(J1)(J5))) ). (6)
XML-представление иерархической
записи графов.
Для записи произвольного неориентированного графа
достаточно следующего минимального определения:
<!DOCTYPE graph [
<!ELEMENT joined (node)>
<!ELEMENT node (#PCDATA|node|joined)*>
<!ELEMENT graph (node)>
]>
Запись (2) в xml-формате представлена ниже:
<?xml version="1.0"?>
<graph>
<node>0
<node>1
<node>2</node>
</node>
<node>3
<joined>
<node>1</node>
</joined>
<joined>
<node>2</node>
</joined>
</node>
<node>4
<joined>
<node>1</node>
</joined>
<joined>
<node>2</node>
</joined>
<joined>
<node>3</node>
</joined>
<node>5
<joined>
<node>1</node>
</joined>
</node>
</node>
</node>
</graph>
Иерархическая запись нечувствительна к
ordered/unordered режимам обработки XML.
Важнейшим достоинством иерархической записи
является возможность навигации по графу непосредственно
по осям XPath, без использования связывания сущностей по
атрибутам.
2 Блинов Р.В., 2012
Лицензия: http://creativecommons.org/licenses/by-nc-sa/3.0/
1 3 4
52
0
1 3 4
52
0
1 3 4
52
0
Заключение
Рассмотренный способ записи отличается от
исследованного в работах [Л2],[Л3] и заключающегося в
кодировании неповторяющихся простых цепей графа.
Представление графа в виде остовного дерева с
вложенными соединениями позволяет создать эффективные
спецификации хранения и обработки графов в
иерархических базах данных.
Существенно могут быть упрощены алгоритмы
перестроения графов. Более того, как отмечено в [Л1],
“наиболее эффективны методы генерации каркасов [Л4, Л5,
Л11] с использованием элементарных преобразований
каркасов, причём именно именно те из них, которые
основаны на преобразовании последнего построенного
каркаса. Возможность существования таких алгоритмов
вытекает из гамильтоновости графа каркасов данного графа
(см.разд.2.1.1)[Л1], исследованной в работах [Л6, Л7, Л8,
Л9, Л10, Л12].”
Список литературы.
[Л1] Касьянов В.Н., Евстигнеев В.А. Графы в
программировании: обработка, визуализация и
применениею-СПб., БХВ-Петербург, 2003.-1104 с.
[Л2] Мелентьев В.А. Скобочная форма описания
графов и её использование в структурных
исследованиях живучих вычислительных систем //
Автометрия. 2000. №4. С.36-52.
[Л3] Мелентьев В.А. Формальные основы скобочных
образов в теории графов // Труды II
Международной конференции "Параллельные
вычисления и задачи управления" PACO'2004
памяти Е.Г. Сухова, Москва, 4-6 октября 2004г.,
М.: Институт проблем управления им. В.А.
Трапезникова РАН. 2004, С. 694-706.
[Л4] Chen Wai-Kai, Li H.-C. Computer generation of
directed trees and complete trees // Int. J. Electronics.-
1973.-Vol.34.-P.1.
[Л5] Chen Wai-Kai. Applied graph theory.-Amsterdam,
North-Holland, 1971.
[Л6] Cummings R.L. Hamilton circuits in in tree graphs //
IEEE Trans. On Circuit Theory.-1966.-Vol.CT-13.-
P.82.
[Л7] Hakimi S.I., On trees of a graph and their generation //
J. Franklin Inst.-1961.-Vol.272, N 5.-P.347-359.
[Л8] Kamae T. The existence of Hamiltonian circuits in
tree graphs // IEEE Trans. Circuit Theory.-1967.-
Vol.CT-14.-P.279.
[Л9] Kishi G., Kajitani Y. On Hamilton circuits in tree
graphs // IEEE Trans. Circuit Theory.-1968.-Vol.CT-
15.-P.42.
[Л10] Kishi G., Kajitani Y. On the realization of tree
graphs // Ibid.-P.271.
[Л11] Mayeda W. et al Generation of complete trees // IEEE
Trans. Circuit Theory.-1968.-Vol. CT-15.-P.101.
[Л12] Shank H. Note on Hamilton circuits in tree graphs //
IEEE Trans. Circuit Theory.-1968.-Vol. CT-15.-P.86.
3 Блинов Р.В., 2012
Лицензия: http://creativecommons.org/licenses/by-nc-sa/3.0/

More Related Content

What's hot

своя игра геометрия 11кл.
своя игра геометрия 11кл.своя игра геометрия 11кл.
своя игра геометрия 11кл.
killaruns
 
Лекция 9: Графы. Поиск кратчайшего пути в графе
Лекция 9: Графы. Поиск кратчайшего пути в графеЛекция 9: Графы. Поиск кратчайшего пути в графе
Лекция 9: Графы. Поиск кратчайшего пути в графе
Mikhail Kurnosov
 
символы и строки
символы и строкисимволы и строки
символы и строки
tabargina_gv
 
связь криволинейныхю поверхностных и кратных интегралов
связь криволинейныхю поверхностных и кратных интеграловсвязь криволинейныхю поверхностных и кратных интегралов
связь криволинейныхю поверхностных и кратных интегралов
Lê Hoà
 
TMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry ZaitsevTMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry Zaitsev
Iosif Itkin
 
задания государственного экзамена по математике 15
задания государственного экзамена по математике 15задания государственного экзамена по математике 15
задания государственного экзамена по математике 15
svetlana
 
Структурные формулы и функциональные схемы
Структурные формулы и функциональные схемыСтруктурные формулы и функциональные схемы
Структурные формулы и функциональные схемы
aleksashka3
 

What's hot (20)

презентация к уроку2
презентация к уроку2презентация к уроку2
презентация к уроку2
 
своя игра геометрия 11кл.
своя игра геометрия 11кл.своя игра геометрия 11кл.
своя игра геометрия 11кл.
 
Proizvodnaya i grafiki_funkcii
Proizvodnaya i grafiki_funkciiProizvodnaya i grafiki_funkcii
Proizvodnaya i grafiki_funkcii
 
Урок на тему "Показательная функция"
Урок на тему "Показательная функция"Урок на тему "Показательная функция"
Урок на тему "Показательная функция"
 
Объекты алгоритмов
Объекты алгоритмовОбъекты алгоритмов
Объекты алгоритмов
 
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL ModelsTMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
 
Лекция 9: Графы. Поиск кратчайшего пути в графе
Лекция 9: Графы. Поиск кратчайшего пути в графеЛекция 9: Графы. Поиск кратчайшего пути в графе
Лекция 9: Графы. Поиск кратчайшего пути в графе
 
символы и строки
символы и строкисимволы и строки
символы и строки
 
связь криволинейныхю поверхностных и кратных интегралов
связь криволинейныхю поверхностных и кратных интеграловсвязь криволинейныхю поверхностных и кратных интегралов
связь криволинейныхю поверхностных и кратных интегралов
 
Matemaatikaeksam
MatemaatikaeksamMatemaatikaeksam
Matemaatikaeksam
 
Исполнитель чертежник.6 класс
Исполнитель чертежник.6 классИсполнитель чертежник.6 класс
Исполнитель чертежник.6 класс
 
Kak postroit grafik_funkcii_y_f_l_m_iz_grafika_fun
Kak postroit grafik_funkcii_y_f_l_m_iz_grafika_funKak postroit grafik_funkcii_y_f_l_m_iz_grafika_fun
Kak postroit grafik_funkcii_y_f_l_m_iz_grafika_fun
 
Задание 18 из Досрочного ЕГЭ
Задание 18 из Досрочного ЕГЭЗадание 18 из Досрочного ЕГЭ
Задание 18 из Досрочного ЕГЭ
 
TMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry ZaitsevTMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry Zaitsev
 
Задача с параметрами из Досрочного ЕГЭ
Задача с параметрами из Досрочного ЕГЭЗадача с параметрами из Досрочного ЕГЭ
Задача с параметрами из Досрочного ЕГЭ
 
задания государственного экзамена по математике 15
задания государственного экзамена по математике 15задания государственного экзамена по математике 15
задания государственного экзамена по математике 15
 
9893
98939893
9893
 
РАЦИОНАЛЬНЫЕ УРАВНЕНИЯ И НЕРАВЕНСТВА
РАЦИОНАЛЬНЫЕ УРАВНЕНИЯ И НЕРАВЕНСТВАРАЦИОНАЛЬНЫЕ УРАВНЕНИЯ И НЕРАВЕНСТВА
РАЦИОНАЛЬНЫЕ УРАВНЕНИЯ И НЕРАВЕНСТВА
 
лекция 6
лекция 6лекция 6
лекция 6
 
Структурные формулы и функциональные схемы
Структурные формулы и функциональные схемыСтруктурные формулы и функциональные схемы
Структурные формулы и функциональные схемы
 

Viewers also liked

Лекция 1: Амортизационный анализ (Amortized analysis)
Лекция 1: Амортизационный анализ (Amortized analysis)Лекция 1: Амортизационный анализ (Amortized analysis)
Лекция 1: Амортизационный анализ (Amortized analysis)
Mikhail Kurnosov
 
Лекция 5: Словари. Бинарные деревья поиска
Лекция 5: Словари. Бинарные деревья поискаЛекция 5: Словари. Бинарные деревья поиска
Лекция 5: Словари. Бинарные деревья поиска
Mikhail Kurnosov
 
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Mikhail Kurnosov
 
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Mikhail Kurnosov
 
Лекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыЛекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмы
Mikhail Kurnosov
 
Лекция 5: Бинарные деревья поиска
Лекция 5: Бинарные деревья поискаЛекция 5: Бинарные деревья поиска
Лекция 5: Бинарные деревья поиска
Mikhail Kurnosov
 

Viewers also liked (10)

JavaScript-библиотека
JavaScript-библиотекаJavaScript-библиотека
JavaScript-библиотека
 
Лекция 1: Амортизационный анализ (Amortized analysis)
Лекция 1: Амортизационный анализ (Amortized analysis)Лекция 1: Амортизационный анализ (Amortized analysis)
Лекция 1: Амортизационный анализ (Amortized analysis)
 
Лекция 5: Словари. Бинарные деревья поиска
Лекция 5: Словари. Бинарные деревья поискаЛекция 5: Словари. Бинарные деревья поиска
Лекция 5: Словари. Бинарные деревья поиска
 
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
 
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
 
Лекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыЛекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмы
 
Лекция 5: Бинарные деревья поиска
Лекция 5: Бинарные деревья поискаЛекция 5: Бинарные деревья поиска
Лекция 5: Бинарные деревья поиска
 
Лекция 4. Префиксные деревья (Tries, prefix trees)
Лекция 4. Префиксные деревья (Tries, prefix trees)Лекция 4. Префиксные деревья (Tries, prefix trees)
Лекция 4. Префиксные деревья (Tries, prefix trees)
 
Лекция 1. Амортизационный анализ (Amortized analysis)
Лекция 1. Амортизационный анализ (Amortized analysis)Лекция 1. Амортизационный анализ (Amortized analysis)
Лекция 1. Амортизационный анализ (Amortized analysis)
 
Векторизация кода (семинар 2)
Векторизация кода (семинар 2)Векторизация кода (семинар 2)
Векторизация кода (семинар 2)
 

Формальные основы иерархической записи графов

  • 1. ФОРМАЛЬНЫЕ ОСНОВЫ ИЕРАРХИЧЕСКОЙ ЗАПИСИ ПРОИЗВОЛЬНЫХ ГРАФОВ Блинов Р.В. e-mail: r.v.blinov@mail.ru Рассмотрен способ формального описания графов, основанный на иерархическом представлении отношения смежности вершин. Приведены примеры для различных видов графов. Ключевые слова: граф, каркас, остовное дерево, сериализация, XML. Метод записи основан на представлении исходного графа G(V,E)1 с матрицей смежности [A] в виде суммы остовного дерева и его дополнения до графа G. Пусть [T]-матрица смежности остовного дерева(каркаса) и [J]-матрица смежности частичного графа (кографа, дополнения каркаса до исходного графа). Тогда [A] = [T] + [J] (1) Ниже приведены примеры сериализации матриц смежности [T] и [J] в виде вложенных списков. Неориентированные графы. Рассмотрим неориентированный граф (рис.1) с матрицей смежности [A]: A= ( 0 1 0 1 1 0 1 0 1 1 1 1 0 1 0 1 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 1 0 0 1 0 ). рис.1 Для представления неориентированного графа достаточно рассмотреть соответствующие верхнетреугольные матрицы. Одна из сумм приведена ниже. ( 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 )= ( 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 )+ ( 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 ) Иерархическая запись представляет собой вложенные списки вершин остовного дерева графа и их соединений. 1 V- множество вершин графа, E- множество рёбер графа G(V,E) Для поиска остовного дерева [T] может быть использован любой известный алгоритм, см. [Л1]. Здесь и далее по тексту каркасы получены методом поиска в глубину, начиная с верхней строки матрицы смежности [A]. Рёбра, не принадлежащие каркасу, выносятся в матрицу смежности частичного графа [J]. Уровни вложения вершин определяются при обходе остова. Дополнительные соединения вершин остовного дерева берутся из матрицы смежности частичного графа и записываются вложенным списком с префиксами «J» для соответствующей вершины каркаса. Рассмотренная выше сумма порождает следующую иерархическую запись: (0 (1(2)) (3(J1)(J2)) (4(J1)(J2)(J3)(5(J1))) ), (2) где уровни вложенности вершин 0-5 соответствуют остовному дереву(каркасу) (0 (1(2)) (3) (4(5)) ) : рис.2 и соединения J1-J3 позволяют описать частичный граф(рис.3) в контексте найденного каркаса(рис.2): рис.3 Порядок вложения соответствующих соединений для записи (2), определяется столбцами матрицы смежности частичного графа. При просмотре матрицы смежности частичного графа по строкам получим иерархическую запись на том же каркасе, но другого вида: (0 (1(J3)(J4)(J5)(2(J3)(J4))) (3(J4)) (4(5)) ). (3) Легко проверить, что записи, полученные просмотром матрицы смежности частичного графа по строкам (3) и по столбцам (2) эквивалентны. Каждое из полученных описаний графа является полным, поскольку определяет все вершины и рёбра исходного графа в силу построения. Для определения числа возможных записей, рассмотрим матрицу Кирхгофа исходного графа: М = ( 3 −1 0 −1 −1 0 −1 5 −1 −1 −1 −1 0 −1 3 −1 −1 0 −1 −1 −1 4 −1 0 −1 −1 −1 −1 5 −1 0 −1 0 0 −1 2 ) Число возможных остовов графа, равное постоянной матрицы Кирхгофа, составит 180. Учитывая, что для каждого каркаса возможны 2 записи, всего существует 360 вариантов иерархической записи исходного графа (рис.1). 1 Блинов Р.В., 2012 Лицензия: http://creativecommons.org/licenses/by-nc-sa/3.0/ 1 3 4 52 0 1 3 4 2 0 5 1 3 4 2 0 5
  • 2. Ориентированные графы. Пусть задан орграф: рис.4 Используем следующее разложение на каркас и кограф: ( 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 )= ( 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 )+ ( 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 ) Тогда иерархическая запись примет вид: (0 (J3) (1(J3)(J4)(2(3))) (4(J2)(J3)(5(J1))). (4) Ориентированные графы с кратными рёбрами (мультиграфы). Пусть задан мультиграф: рис.5 Используем следующее разложение на каркас и кограф: ( 0 1 0 1 1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 )= ( 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 )+ ( 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 ) Тогда иерархическая запись примет вид: (0 (J3) (1(J3)(J4)(2)) (3(J2)) (4(J2)(J3)(5(J1))) ). (5) Ориентированные графы с кратными рёбрами и петлями (псевдографы). Пусть задан псевдограф: рис.4 Используем следующее разложение на каркас и кограф: ( 0 1 0 1 1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 )= ( 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 )+ ( 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 ) Тогда иерархическая запись примет вид: (0 (J3) (1(J3)(J4)(2)) (3(J2)) (4(J2)(J3)(5(J1)(J5))) ). (6) XML-представление иерархической записи графов. Для записи произвольного неориентированного графа достаточно следующего минимального определения: <!DOCTYPE graph [ <!ELEMENT joined (node)> <!ELEMENT node (#PCDATA|node|joined)*> <!ELEMENT graph (node)> ]> Запись (2) в xml-формате представлена ниже: <?xml version="1.0"?> <graph> <node>0 <node>1 <node>2</node> </node> <node>3 <joined> <node>1</node> </joined> <joined> <node>2</node> </joined> </node> <node>4 <joined> <node>1</node> </joined> <joined> <node>2</node> </joined> <joined> <node>3</node> </joined> <node>5 <joined> <node>1</node> </joined> </node> </node> </node> </graph> Иерархическая запись нечувствительна к ordered/unordered режимам обработки XML. Важнейшим достоинством иерархической записи является возможность навигации по графу непосредственно по осям XPath, без использования связывания сущностей по атрибутам. 2 Блинов Р.В., 2012 Лицензия: http://creativecommons.org/licenses/by-nc-sa/3.0/ 1 3 4 52 0 1 3 4 52 0 1 3 4 52 0
  • 3. Заключение Рассмотренный способ записи отличается от исследованного в работах [Л2],[Л3] и заключающегося в кодировании неповторяющихся простых цепей графа. Представление графа в виде остовного дерева с вложенными соединениями позволяет создать эффективные спецификации хранения и обработки графов в иерархических базах данных. Существенно могут быть упрощены алгоритмы перестроения графов. Более того, как отмечено в [Л1], “наиболее эффективны методы генерации каркасов [Л4, Л5, Л11] с использованием элементарных преобразований каркасов, причём именно именно те из них, которые основаны на преобразовании последнего построенного каркаса. Возможность существования таких алгоритмов вытекает из гамильтоновости графа каркасов данного графа (см.разд.2.1.1)[Л1], исследованной в работах [Л6, Л7, Л8, Л9, Л10, Л12].” Список литературы. [Л1] Касьянов В.Н., Евстигнеев В.А. Графы в программировании: обработка, визуализация и применениею-СПб., БХВ-Петербург, 2003.-1104 с. [Л2] Мелентьев В.А. Скобочная форма описания графов и её использование в структурных исследованиях живучих вычислительных систем // Автометрия. 2000. №4. С.36-52. [Л3] Мелентьев В.А. Формальные основы скобочных образов в теории графов // Труды II Международной конференции "Параллельные вычисления и задачи управления" PACO'2004 памяти Е.Г. Сухова, Москва, 4-6 октября 2004г., М.: Институт проблем управления им. В.А. Трапезникова РАН. 2004, С. 694-706. [Л4] Chen Wai-Kai, Li H.-C. Computer generation of directed trees and complete trees // Int. J. Electronics.- 1973.-Vol.34.-P.1. [Л5] Chen Wai-Kai. Applied graph theory.-Amsterdam, North-Holland, 1971. [Л6] Cummings R.L. Hamilton circuits in in tree graphs // IEEE Trans. On Circuit Theory.-1966.-Vol.CT-13.- P.82. [Л7] Hakimi S.I., On trees of a graph and their generation // J. Franklin Inst.-1961.-Vol.272, N 5.-P.347-359. [Л8] Kamae T. The existence of Hamiltonian circuits in tree graphs // IEEE Trans. Circuit Theory.-1967.- Vol.CT-14.-P.279. [Л9] Kishi G., Kajitani Y. On Hamilton circuits in tree graphs // IEEE Trans. Circuit Theory.-1968.-Vol.CT- 15.-P.42. [Л10] Kishi G., Kajitani Y. On the realization of tree graphs // Ibid.-P.271. [Л11] Mayeda W. et al Generation of complete trees // IEEE Trans. Circuit Theory.-1968.-Vol. CT-15.-P.101. [Л12] Shank H. Note on Hamilton circuits in tree graphs // IEEE Trans. Circuit Theory.-1968.-Vol. CT-15.-P.86. 3 Блинов Р.В., 2012 Лицензия: http://creativecommons.org/licenses/by-nc-sa/3.0/