35
САНКТ–ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Л. М. Новожилова КОНЕЧНЫЕ ГРАФЫ Основные структуры Учебное пособие САНКТ–ПЕТЕРБУРГ 2017

КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

С А Н К Т – П Е Т Е Р Б У Р Г С К И Й Г О С У Д А Р С Т В Е Н Н Ы Й У Н И В Е Р С И Т Е Т

Л. М. Новожилова

КОНЕЧНЫЕ ГРАФЫ

Основные структуры

Учебное пособие

САНКТ–ПЕТЕРБУРГ

2017

Page 2: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

2

1G

2G

3G

4G

5G

6G F

7G

8G

9G

1. Графы. Орграфы направленные и смешанные. Типы графов

Граф — это точки и кривые, связывающие их; точки называются узлами

(вершинами), а кривые — связями (ребрами, дугами) *)

.

Рис. 1. Изображения графов.

Фигура F графом не является

Граф G=(X, A) порядка n состоит из конечного непустого множества X,

содержащего n узлов, и множества A из m неупорядоченных пар различных узлов,

называемого множеством ребер графа**)

.

Ребра отображают реальные связи пар вершин графа. Различают односто-

ронние и двусторонние связи узлов графа. Односторонние связи ориентированы,

это — дуги. Дуга имеет стрелку. На рис. 1 графы G7–G

9 ориентированные. Двусто-

ронние связи могут быть как ориентированными, так и неориентированными. Раз-

личают симметрические и асимметрические ориентированные двусторонние связи.

Двусторонние неориентированные связи — ребра (звенья).

Геометрический граф в n–мерном евклидовом пространстве есть конечное

множество точек X и конечное множество простых кривых A, таких, что:

каждая замкнутая кривая содержит только одну точку;

каждая незамкнутая кривая содержит ровно две точки, которые являются

ее граничными точками;

кривые не имеют общих точек кроме точек из X, и эти точки соответствуют

узлам графа, а кривые, соединяющие пары точек, — ребрам (или дугам).

––––––––––––––– *)

Определения на естественном языке имеют метку , на формальном — . **)

При таком определении исключаются петли и кратные ребра. Если A=(A, r) — мульти-

множество на множестве A, где r — функция, задающая кратность элементов A, то G =(X, A) —

мультиграф.

Page 3: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

3

Размеры точек, длина, толщина и кривизна линий не существенны. Не разли-

чаются графы G1–G

4, а также G

5–G

6 на рис. 1.

Число узлов графа есть его порядок. Порядок графа обозначается G=n.

Граф конечен или бесконечен вместе со своим порядком. Число ребер графа —

G= m. На рис. 2 — G=5, G=6.

И узлы, и связи графов можно идентифицировать (помечать) натуральными

числами или буквами, с индексами и без индексов. Графы на рис. 2 помеченные и

все различные. После снятия меток графы станут неразличимыми.

Рис. 2. Графы G , F , H

Обозначения ребер {x, y}, (x, y), x, y и xy равнозначны.

Ребро и его концевые узлы инцидентны.

Концевые узлы x и y ребра xy смежны. Ребра xy и yz смежные, если x≠z.

Отметим свойства обыкновенного графа: конечность множеств X и A,

связи — только ребра, отсутствие петель и кратных ребер. [1]

Граф, в котором есть дуги, — ориентированный граф (кратко — орграф).

Орграф, имеющий только дуги, — направленный (d–орграф).

Направленный граф Ḡ=(X, Ā) порядка n состоит из конечного непустого

множества X, содержащего n узлов, и множества m дуг графа Ā — упорядо-

ченных пар различных узлов множества X, с двумя отображениями init: Ā→X и

term: Ā→X, приписывающими āĀ начальную вершину init (ā) и конечную вер-

шину term (ā), такими, что если ā=xy, то x= init (ā)y= term (ā) и дуга ā исходит

из x и заходит в y. Орграф, имеющий и односторонние, и двусторонние ориенти-

рованные связи, — смешанный (h–орграф)*). На рис. 3 справа — h–орграф.

––––––––––––––– *)

Орграф — oriented graph, направленный орграф — directed graph, смешанный орграф —

hybrid graph.

x2 x5

x3 a1

a3

a4 3 1

2

a1

5

a2 a4

a5

a6 a3

a2

x1

x4 a5 a6

F H

z

x

w

a

u

b c

d

e f

y G 4

Page 4: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

4

b

c z

ηy

xa

2 3

45

1

Рис. 3. G=(X, A) и h–граф G = (X, Ā)

Узел x=init(ā) — исток дуги ā (вносит), y=term(ā) — сток (забирает).

Дуги ā и ū смежны, если term(ā)=init(ū)init(ā) term(ū).

Дуга и ее концевые узлы инцидентны. Концевые узлы дуги смежны.

В графах на рис. 3 — по четыре узла; в орграфе Ḡ — две дуги и четыре ребра.

Орграф Ḡ=(X, Ā) можно задать отображением Г множества X в X: Ḡ =(X, Г);

Для всех узлов множества Г(x) узел x — исток, а само Г(x) — множество стоков

дуг, исходящих из x. Если yГ(x), говорят, что из x в y можно «попасть» за один

шаг. Из x каждый узел Гk(x)=Г(Г

k–1(x)) достижим за k шагов. Для всех узлов об-

ратного отображения Г–1

(x) узел x является стоком; узел x — чистый исток, ес-

ли Г(x)≠∧Г–1

(x)=, и чистый сток, если Г(x)=∧Г–1

(x)≠.

На рис. 4 Г()={a, b, c} — прямое, Г–1

() ={x, y, z} — обратное отображение

узла ; x, y, z — чистые истоки, a, b, c — чистые стоки, а — транзитный узел.[2]

Один из объектов социологического исследования — сетевая модель обмена

частными трансфертами между домохозяйствами. К трансфертам относят четыре

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

сурсов выделены следующие типы домохозяйств: 1) донор, который только отдает

данный ресурс и ничего не получает, 2) реципиент — только получает данный ре-

сурс и ничего не отдает, 3) обмен — и получает и отдает данный трансферт, 4) не-

зависимый, который вообще не участвует в обмене данным ресурсом. В граф–

модели донор — чистый исток, реципиент — чистый сток (тупик), обмен — тран-

Рис. 4. d–граф

Рис. 5. h–граф

G

x3

x4

G

x1

x3

x1

x4

x2 x2

Page 5: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

5

зитный узел, а независимый — изолированный узел. Изучение сетей в социальных

науках имеет сравнительно короткую историю. Власть, иерархия, дифференциа-

ция, интеграция, стратификация, конфликт и многие другие концепты социологи-

ческой теории органично интерпретируются в терминах теории графов.

В середине прошлого века Д. Картрайт и Ф. Харари исследовали баланс в

группах, состоящих более чем из трех индивидов, на ориентированном графе.

Число ребер, инцидентных узлу i — степень (валентность) узла — degi.

Если узел i изолированный, то degi =0.

Теорема Эйлера. degi =2m.

Теорема 1. В графе число узлов с нечетными степенями четно.

Согласно теореме Эйлера, сумма слева может включать четные и нечетные

сла-гаемые. Сумму четных слагаемых вычтем из обеих частей равенства. Слева

останутся нечетные слагаемые, а справа — число 2m–2k =2(m–k). *)

В орграфе число дуг, исходящих из узла i, — полустепень исхода degi

+,

degi

+=Г(i), а заходящих — полустепень захода deg

i

–, deg

i

=Г–1

(i).

Корректное определение условий завершения итерационных алгоритмов

компьютерного решения задач на графах потребовало введения ряда понятий:

нуль–графа (X, );

тривиального графа порядка 1;

пустого графа (, ). [3]

Подграф — часть графа, являющаяся графом.

Граф Ğ=(Ž, Ď) — подграф графа G=(X, A), если ŽX ∩ ĎA.

Различают остовные, порожденные и просто подграфы.

Из связного графа G=(X, A) удалим некоторые ребра: Подграф Ğ=(X, Ă)

остовный, если ĂA. Матрица смежности остовного подграфа Ğ содержит n2 эле-

ментов, но менее плотная по сравнению с матрицей смежности графа G.

––––––––––––––– *)

Знак заменяет «необходимость», — «достаточность», — «что и требовалось до-

казать».

Page 6: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

6

x

Y={x, y, z}

H=(Y, B)

y y

z

Рис. 6. Граф связный (а); связный остовный подграф (б);

несвязный остовный подграф (в)

Из связного графа (X, A) удалим некоторые узлы вместе с инцидентными им

ребрами так, чтобы другой концевой узел каждого удаляемого ребра оставался в

графе. Сохраненные узлы и ребра образуют подграф (Y, B), называемый подгра-

фом графа G, порожденным подмножеством узлов YX (рис. 7).

Моделируя социум как сеть (X, A) k взаимодействующих семейных анклавов,

мы сопоставляем каждому из них подграф (Yi, B

i), порождаемый i–м анклавом.

Подграф графа, порожденный узлами конечной последовательности смеж-

ных ребер, — маршрут. Подграф ориентированного графа, порожденный узлами

конечной последовательности смежных дуг, — путь. Найдите в графе на рис. 7

маршрут (x, y, z, x, w, y, z).

G=(X, )

Рис.7. Граф G и его порожденный подграф H=(Y, B)

Остовный маршрут связывает все узлы графа (см. рис. 6, б).

Остовный путь связывает все узлы орграфа. [2]

А. Существует великое множество разновидностей графов: обыкновенные,

орграфы, деревья и леса, мультиграфы, гиперграфы и пр. Среди обыкновенных

графов и орграфов различают двудольные графы, полные, асимметричные, пла-

нарные и, леса и деревья.

А.1. Тип графов, известный приложениями в теории систем, — двудольные

графы. Предположим, что множество узлов графа допускает разбиение на два не-

пересекающиеся и взаимно дополняющие друг друга до X подмножества R и L.

) б) в)

Page 7: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

7

Определим H(R, L) — множество ребер, имеющих один конец в R, другой — в L. Ес-

ли H(R, L) =A, то граф двудольный, а R и L — его доли (рис. 8).

Рис. 8. Две пары двудольных графов

Теорема Кëнига. Связный неориентированный граф двудольный, если и

только если в нем нет циклов нечетной длины.

Предположим, что — цикл нечетной длины Перечислим его узлы и реб-

ра. Пусть x0L — его начальный (и конечный) узел. Два следующих узла x

1 и x

2

должны принадлежать: первый — доле R, второй — L. По ребру x0x

1 мы перешли

из доли L в долю R, а по ребру x1x

2 из доли R в долю L.

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

индексами обязаны принадлежать доле L, а с нечетными — доле R, во–вторых, цикл

должен окончиться ребром x –1

x

и =2k+1, причем, именно узел x

замыкает

цикл , поэтому должен принадлежать доле L. Противоречие введенного порядка

помечивания узлов результатам его применения доказывает необходимость.

Разобьем множество узлов графа на два непересекающиеся взаимно до-

полняющие друг друга до X подмножества так, чтобы концы каждого ребра при-

надлежали: один — доле L, а другой — R. Для этого выберем произвольный узел

графа x, отметим его знаком «+», построим Г(x) и отметим все его узлы знаком «–

». Для каждого из них повторим эти действия с той разницей, что их образы обо-

значим плюсами. Если какой–либо узел уже отмечен, присвоим ему новую метку.

Как только все узлы будут отмечены, отнесем узлы с меткой «+» к доле L, а с мет-

кой «–» — к доле R. Докажем, что метки концевых узлов каждого ребра разные.

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

одинаковыми метками концов, например, u+v

+. Значит, в графе есть два связанных

этим ребром пути четной длины, а именно, x+u

+ и x

+v

+, которые вместе с ребром

Page 8: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

8

u+v

+ образуют цикл нечетной длины, поскольку выражение 2k+2l+1=2r+1 есть

формула нечетного числа. Получено противоречие.

Приложения разнообразны: от экономики до электроники и нано технологий.

В экономике — сети обмена ликвидностями [4], в технике — вычислительные сети.

А.2. Граф Kn полный или n–клика — все его узлы попарно смежны (рис. 9);

матрица смежности A=Е–I, где E={eij}, e

ij=1, I — единичная диагональ.

А.3. Орграф асимметричный, если любой паре его вершин инцидентно не

более одной дуги. Полный асимметричный орграф называется турниром.

В турнире состязаний T данный состав игроков (команд) ведет игру, прави-

лами которой запрещен ничейный исход (рис. 9). Игроки — это узлы, дуга идет от

победителя к побежденному. Каждый игрок встречается с соперником точно один

раз, и точно один из них одерживает победу. [3]

Рис. 9. Полный граф K8 (а), A=E–I, и турнир T

8 (б), A

T+A

T

*=E–I

А.4. Граф планарный, если его можно изобразить на плоскости так, чтобы

ребра пересекались только в узлах. Конкретное представление планарного графа в

плоскости называется плоским графом.

В теории и приложениях важно установить топологические свойства графа,

определяющие возможность поместить его в плоскость. Задача характеризации

планарных графов решается при проектировании проводящих трасс в электронных

устройствах, где, независимо от используемой технологии монтажа (печатный или

нано уровневый), нужно чередовать слои схемных соединений и изоляции. Не пла-

а) б) в)

8K

T

1

Page 9: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

9

нарные графы схем разбивают на планарные подграфы [2, 5]. Другая область при-

ложений —многоуровневые транспортные развязки.

А.5. Ациклический граф или лес — граф без циклов. Связный лес — дере-

во. Компоненты леса — леса и деревья (рис. 10 [3]).

A.6. Кактус (рис. 11) — связный граф, в котором каждое ребро принадле-

жит не более, чем одному простому циклу (см. стр. 15).

Б. Типы графов, интерпретирующих структуры сложных дискретных си-

стем, различают по разнообразию узлов. Гиперграфы определяют на одном базис-

ном множестве и различают по свойствам узлов. Для определения гипер–окрашен-

ных графов используют несколько базисных множеств; вершина каждого базисно-

го множества такого графа, обозначается цветом этого базисного множества. Раз-

нообразие гипер–хромграфов образуется всеми комбинациями гиперграфов и ги-

пер–окрашенных графов (см. рис. 12).

Среди прочих типов графов нам встретятся:

En — безреберный граф на n вершинах или n–груда;

Ğn=(X, Ӑ

n) — дополнение графа G

n=(X, А

n) до K

n, где Ӑ

n=X \ Аn;

Cn — простой цикл на n вершинах, n–угольник

*);

Zn — n–цепь;

––––––––––––––– *)

Определения цикла и цепи см. на стр 15.

Рис. 10. Лес. Его связные компоненты —все деревья порядка не выше пяти Рис. 11. Кактус

а) б) в) г)

Рис. 12. Части графов: графа (а), гиперграфа–1 (б),

гиперграфа–2 (в), и гиперхромграфа–3 (г)

Page 10: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

10

2

5

3

1

4

2. Матричные модели графов

Один и тот же граф можно представить (моделировать) по–разному (рис. 13).

а) б) в) г)

Рис. 13. Разные представления одного и того же непомеченного графа

Модель графа определяется областью приложений и прикладной задачей,

стоящей перед исследователем.*)

Математические модели графов разрабатывают-

ся применительно к конкретной области приложений. Созданы разные стили мо-

делирования химических соединений, молекулярных структур, социальных

групп, транспортных сетей и электронных схем. Их авторы руководствуются соб-

ственными принципами «рациональности». В этом разделе мы рассмотрим мате-

матические варианты представления графов.

На рис. 1 (стр. 3) фигура H и — стилизованная модель графа. В известном

смысле моделирование — это искусство. Создание математической модели содер-

жит этап разработки структуры данных и правил их преобразования, таких, чтобы

решение задачи требовало минимума ресурсов.

Далее мы увидим, как отображают графы на бумаге и как — в памяти ЭВМ.

Самый простой и безыскусный способ представления графа — списками имен уз-

лов и связей. Так граф на рис. 4 можно lописать так: G=(X, A), X={a, b, , c, x, y, z},

A={x, y, z, a, b, c}.

А. Обозначим узлы натуральными числами. Зададим

граф лексикографической последовательностью n множеств,

каждое из которых соответствует одному и только одному узлу

графа и включает имена всех смежных с ним узлов. Граф на

рис. 14

Рис. 14. Граф

представим пятеркой множеств: {2, 3}, {3, 4}, , {5}, .

––––––––––––––– *)

Моделирование — создание образа объекта исследования. Конкретное представление

определяется выбором языковых средств его описания.

Page 11: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

11

1

3

4 5

2

2 3

4 5

1

Б. Представим h–граф порядка n на рис. 15 квадратной матрицей D: если

узел jГ(i), то di j=1, иначе d

i j=0. D — матрица смежности орграфа. Изобра-

зим ее на рисунке в «шахматном» стиле черно–белыми шашечками: ячейки табли-

цы, соответствующие ненулевым значениям, затеним, а прочие — оставим пусты-

ми. D — матрица стоков, DT — матрица истоков орграфа G .

*)

Рис. 15. Смешанный граф G и его «шахматные» матрицы D и DT

Преобразуем направленный орграф G в неориентированный, заменив каж-

дую дугу ребром. Получим обыкновенный граф G — основание орграфа G .**)

Вычислим А=D + DT, nn, : если узлы i, j смежны, то a

i j=1, иначе ai j=0.

Матрица A={ai j

} — матрица смежности графа G. A отображает связи узлов

графа (рис. 16).

Рис. 16. Граф G и две его матрицы смежности — «шахматная» и двоичная, A=AT

Д. Матрица инциденций B={bi j

}, mn, графа отображает соответствие

ребер графа его узлам: если узел i инцидентен ребру j, то bi j

=1, иначе bi j

=0. Эта

матрица обладает рядом замечательных свойств:

в каждом столбце матрицы B — точно два ненулевых элемента;

сумма по mod 2 элементов каждой ее строки есть нуль–строка;

определитель B равен нулю, столбцы линейно зависимы. –––––––––––––––

*) Мы часто будем использовать «шахматную» форму двоичной матрицы.

**) Основание ориентированного графа — его неориентированный двойник.

D =

1 2 3 4 5

, DT =

1 2 3 4 5

1 1

2 2

3 3 . 4 4

5 5

A =

1 2 3 4 5

1 0 | | 0 0

2 | 0 | | 0

3 ,

A

=

| | 0 0 0

4 0 | 0 0 |

5 0 0 0 | 0

Page 12: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

12

1

5 3

2 6 b a

c d e f

g 4

a

e

d c b

14

4

12 11

10

13

8,9 6,7

5 3

2

1

Троичная матрица инциденций B={bi j} орграфа, nm, отражает соответ-

ствие узлов и дуг орграфа:

Пример 2. Построим «шахматную» матрицу инциденций графа на рис. 17.

Преобразуем смешанный орграф, заменяя каждое ребро парой противопо-

ложно направленных дуг. Нули в матрицу инциденций не вписываем, а «+1» и «–1»

заменим знаками + и –.

Рис. 17. Граф G, смешанный орграф Ḡ и их матрицы инциденций

Пример 4 . Модель ЭВМ последовательного действия, предложенная Дж.

фон Нейманом (середина ХХ в.), состоит из множества устройств М={a, b, c, d, e}

(рис. 18) [6]. Построим матрицы смежности и инциденций модели М (рис. 19).

a — устройство ввода;

b — арифметическое устройство — процессор;

с — устройство управления;

d — запоминающее устройство;

е — устройство вывода.

Рис. 18. Модель ЭВМ Дж. фон Неймана [6]

если ij, то bi j=0, иначе

если i — исток, то bi j =1,

если i — сток, то bi j=–1.

a b c d e f g

1 2

B(G) =

3 4

5 6

B(Ḡ) =

a b c d e f g h + + + – + – + – – – + + – – +

1

5

2

3

4

a b

dce

g

6 f

Page 13: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

13

A=

1 2 3 4 5 6 7 8 9 10 11 12 13 14

+ + – + a

– – + – + + b

B= – + – + + – + – c

+ – – + – + d

– + – – e

Рис. 19. Матрицы смежности и инциденций орграфа модели M

Е. Выбор представления графа часто зависит от степени разреженности мат-

рицы смежности. Представление матрицей смежности удобно для тех алгоритмов,

которые часто запрашивают данные о наличии в графе конкретных связей. А недо-

статок этого способа в том, что оценка времени только начального заполнение

матрицы — n2 [6]. Разреженную матрицу можно представить массивом записей,

соответствующим списку ребер/дуг, тогда (n, m) =(2m). Представленные схемы

применительно к любой конкретной задаче отличаются не более чем «полиноми-

ально»: любой алгоритм, имеющий полиномиальную временнýю сложность при

одной из схем, сохраняет «полиномиальность» при остальных [5].

Поэлементная запись двоичной матрицы смежности требует одного бита па-

мяти, а всей матрицы — n2 битов. Для обыкновенного графа требуется 0.5n(n–1)

битов. Можно сэкономить, учитывая разреженность матрицы. Альтернативный

способ — представление строк матрицы смежности двоичными векторами [1]. Для

ввода и контроля данных пригодится Pascal–программа [8]:

program ph(input, output);

const m=3000;n=60;c=' ';

type dim=1..m;d=1..n;bit=(0,1);

var i,j,k:integer;x:bit;

p:packed array [dim] of bit; u:array [d] of bit;

begin

for i:=1 to m do begin read(x); p[i]:=x end; k:=m div n;

for i:=1 to k do

begin

for j:=1 to n do u[ j]:=p[j+(i−1)*n]; writeln;

for j:=1 to n do write(c, u[j]:1);

end

end.

Page 14: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

14

1

4

2

3

4 6

2

4 6

1 3 2

5 6 5

1

4

1 3 2

5

Если w — размер байта в битах, то элементы матрицы смежности займут

всего r битов, или (rdivw+1) байтов памяти.*)

. Увы, в отличие от варианта назна-

чения элементам матрицы типа integer, мы теряем время при распаковке массива.

Компромисс придется обосновать.

Массив n линейно связанных списков реализует список смежности узлов

графа (рис. 20). Объем памяти оценивается функцией (n, m) =( n+m) [5].

Рис. 20. Граф G и схема связей полей памяти [7]

3. «Скитаемся» по графу. Эх, дороги ... . Цепи. Циклы

Последовательность смежных ребер графа образует маршрут (см. стр. 6),

маршрут без повторяющихся ребер — цепь, цепь без повторяющихся узлов —

простая цепь (дорога). Непустой граф G связный, если любые два его узла x≠y

соединены простой цепью — взаимно достижимы.

а) б) в)

Рис. 21. В связном графе (а) узлы 5 и 3 — концы простой цепи (5, 2, 4, 1, 6, 3) —

дороги, соединяющей узлы 5 и 3 (б), (6, 1, 5, 2, 4, 1, 5, 2, 4) — маршрут (в)

Последовательность смежных дуг орграфа образует путь. На рисунке путь

в орграфе можно обвести карандашом, не отрывая его от бумаги, двигаясь по

стрелкам. Непустой орграф G связный, если его основание — связный граф.

––––––––––––––– *)

Байт — длина поля памяти (число битов), отводимого проектировщиком ЭВМ на раз-

мещение одного символа алфавита.

1

2

3

4 1

1

2

2

3

3

2

1

4

4

4

1

Page 15: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

15

4 6

1 3 2

5 6 5

1

4

1 3 2

5 6 4

2

а) б) в)

Рис. 22. Длина пути {5, 2, 4, 1, 6, 3} (б) равна 5

В простом пути (орцепи) орграфа все дуги различны. Простая орцепь —

орцепь, в которой все узлы различны.

Если начальный и конечный узлы пути совпадают, то путь замкнутый.

4. Подсчет и перечисление простых цепей

Матрицы Ak=A·A

k–1, 1<k ≤n, дают все простые цепи длины k графа. В зави-

симости от выбора типа данных и операций, вычисление Ak на ЭВМ можно орга-

низовать по–разному (табл. 1). Основные критерии выбора оптимальной алгебры

— минимум времени исполнения алгоритма и объема занимаемой программой па-

мяти. Но, как легко видеть, независимо от этого в Ak будут появляться элементы,

соответствующие циклическим маршрутам в графе. Во избежании этого т.е. для

получения простых цепей длины k по вычислении очередной степени матрицы

смежности необходимо выполнить операцию ☼ : «удалим из матрицы Ak кратные

элементы, образующиеся при связывании слов, а главную диагональ обнулить».

Таблица 1. Варианты представления данных и операций

Тип данных Значения данных Операции над данными

целый

логический

символьный

0, 1

true, false

a, b, с, … , z

арифметические

алгебры логики

заданной грамматики

Ориентированный граф

Путь

Орцепь

Простая орцепь

Неориентированный граф

Маршрут

Цепь

Простая цепь

Ориентированный граф

Замкнутый путь

Орцикл

Простой орцикл

Неориентированный граф

Замкнутый маршрут

Цикл

Простой цикл

Page 16: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

16

Вариант 1. Матрицы смежности A двоичная, а умножение и сложение —

арифметические операции: A2={a

i j

(2)}, nn, {a

i j

(2)}=a

i ka

k j. Значение a

i j

(2) равно

числу простых цепей, связывающих узлы i и j.

Множество всех путей длины 2 в орграфе и множество элементов матрицы

A2 находятся во взаимно однозначном соответствии. Взаимно однозначное соот-

ветствие элементов матрицы A3={a

i j

(3)}, и путей длины 3 следует из того, что

умножение A2 слева на A, т.е. A

3=A·A

2, соответствует наращиванию длин всех пу-

тей длины два на единицу.*)

Вариант 2. При логическом типе данных значение ai j

(2) говорит лишь о нали-

чии или отсутствии i–j-пути длины 2.

Вариант 3. Обозначим узлы графа символами алфавита.

При возведении матрицы в степень операции умножения соответствует кон-

катенация элементов–сомножителей в слова, а операции сложения — их связыва-

ние в последовательности через пробел.

Тогда каждый путь в графе будет обозначаться «словами» и «фразами».

Пример 5. В орграфе на рис. 23 найдем все простые орцепи.

A=

Ä=

Рис. 23. Орграф и его матрицы смежности A и Ä

Вариант решения 1. Построим матрицу A и вычислим A2. Равенство ее эле-

мента ai j

(2) единице скажет о числе простых орцепей длины 2 из узла i в узел j. Вы-

полним операцию ☼, полученную матрицу обозначим Ä (рис. 23). Ее элемент äi j=1,

скажет о количестве простых орцепей длины 2 из узла i в узел j. Матрица A3=A·A

2

даст нуль–матрицу — в орграфе нет простых орцепей длины больше двух.

––––––––––––––– *)

Аналогично преобразуется матрицы и других типов данных.

1

3

4 5

2

Page 17: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

17

Вариант решения 2. При логическом типе данных значение ai j

(2 скажет лишь

о наличии или отсутствии i–j-пути длины 2.

Вариант решения 3. Обозначим вершины орграфа на рис. 23 буквами, дугу

(x,y) — словом xy. Построим матрицу A и вычислим A2. Выполним операцию ☼.

Получим матрицу Ä простых орцепей длины 2. «Предложение» ac cb даст путь из

a в b транзитом через c, а ca ab — из c в b транзитом через a (рис. 24, 25).

Рис. 24. Возведение в квадрат матрицы смежности графа

Пример 6. Убедимся, что в графе на рис. 25 есть простые цепи длины n–1 и

найдем их. Обозначим ребра графа буквами от a до e и вычислим A2, а затем Ä

аналогично примеру 3. Строка ai*

(2) матрицы A

2 даст все маршруты длины 2, исхо-

дящие из узла i. На главной диагонали A2 стоят фразы, составленные из слов, пред-

ставляющих циклы. Выполним операцию ☼. Выпишем элементы, стоящие в верх-

нем треугольнике матрицы Ä, получим слова длины 2: bc, ac, ab, ad, cd, de, соот-

ветствующие всем простым цепям длины 2: {b,c}, {a,c}, {a,b}, {a,d}, {c,d}, {d, e}.

Рис. 25. Граф и его матрицы смежности

Рис. 26. A2

и результат ее преобразования — Ä

A=

ab ac

, A2=

ac ca ac cb

ca cb ca ab ca ac

db de

A’ =

A =

a b a c d

b c

d e

e

A2

=

bb+aa bc ac ad

, Ä =

bc ac ad

cb aa+cc+dd ab de cb ab de

ca ba bb+cc cd ca ba cd

da dc dd+ee da dc

ed ee ed

a b 1

d e

d

c

1

3

5 4

2

Page 18: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

18

Вычислим AÄ, получим матрицу маршрутов длины 3. Выполним операцию

☼ и выпишем элементы, стоящие в ее верхнем треугольнике (рис. 27). Получим все

простые цепи длины 3: {a,d,e}, {b,a,d}, {b,c,d}, {c,d,e}. Вычислив и преобразо-

вав матрицу простых цепей длины n–1=4, получим ответ: {b,a,d,e}, {b,c,d,e}.

Рис. 27. Матрицы Ä и AÄ

5. Взвешенные графы — сети

Взвесить граф G(X, A) значит поставить в соответствие каждому его ребру

количественную характеристику — вес. Если узлы i, j не смежны, ci j=∞. Матрица

весов C={ci j

}, nm, определяет взвешенный граф, или сеть. Если граф не взве-

шен, полагают cij=1. Вес маршрута (пути) равен сумме весов его ребер (дуг).

Взвешивают и узлы графа. Тогда вес маршрута учитывает и веса узлов.

В математических описаниях вес может обозначать меру, а в приложениях —

стоимость, длину, пропускную способность, габариты транспортируемого по сети

продукта. Взвешенными графами моделируют многоагентные аналитические сети.

Учесть способности дуг орграфа изменять параметры моделируемой субстанции

можно, добавляя, кроме весов, множители дугам орграфа. В сети, представляющей

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

сти, а коэффициенты учитывают искажение, прирост/потери потока данных движу-

щихся по дугам сети. Дуговые множители могут отражать и количественное изме-

нение потока, и превращение одного вида данных в другой. Например, в задаче о

составлении оптимального расписания движения грузового судна портам соответ-

ствуют узлы маршрутной сети, трассам — связи узлов, а стоимость дуги равна сум-

марным затратам на транспортировку груза при погрузке в порту отправления, пе-

ревозки груза и транспортировку груза при разгрузке в порту назначения [2].

Ä =

bc ac ad

, AÄ =

aab bcd ade

ab de aac+ccd aad+ccd

cd bbc bad cde dcb dab dde eda edc

Page 19: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

19

0,5

5

2 1

0,1

0,7

10 a

f e

c

b

10

d

В задачах о кратчайших путях исходными данными служат матрица весов C и

производная от нее матрица расстояний между узлами Р={i j

}, nn, i j= (i, j), рав-

ное длине кратчайшей простой цепи, связывающей i, j. Возможно, (i, j)≠ ( j, i).

Пример 7. Для орграфа на рис. 28 построим матрицы весов и расстояний.

Рис. 28. Орграф, его матрицы весов и расстояний

Поля матрицы весов графа, в которых должен стоять знак «», затенены.

При записи в память ЭВМ «» можно «заменить», например, максимальным чис-

лом, представимым в памяти компьютера данной марки.

6. Связность. Достижимость

Два различных узла графа взаимно достижимы, если они соединены марш-

рутом. Граф связный, если все его узлы взаимно достижимы. Остовный марш-

рут связывает все узлы графа. [2] Максимальный связный подграф графа называ-

ется компонентой этого графа.

Направленный орграф связный, если его основание — связный граф. Мак-

симальный связный подграф орграфа называется компонентой орграфа.

Если в орграфе есть путь x-y, то говорят, что узел y достижим из (для) узла x.*)

Остовный путь связывает все узлы орграфа. [2]

Два различных узла орграфа взаимно достижимы, если соединены двумя

противоположно направленными путями. Орграфы различают по степени связно-

сти. Орграф сильно связный или сильный, если любые два различных узла в нем

взаимно достижимы (рис. 29).

––––––––––––––– *)

В таких областях приложений как формирование транспортных тарифов, развитие

транспортной инфраструктуры региона, оптимизация маршрутов движения пешеходов, тури-

стов, служебного транспорта и пр. в качестве понятия «достижимость» используют термин «до-

ступность».

0,5 0,6 5,6 2,2 1,2

0,5 0,1 5,1 1,7 0,7

0,6 0,1 5 1,8 0,8

10,5 10 10,1 11,7 10,7

2,5 2 2,1 7,1 2,7

1,2 0,7 0,8 5,8 1

1 0.7

10

2

10

5 0.1

0.7 2 10 0.1 0,5

0,5

Page 20: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

20

Если орграф не сильный и если любые два различных узла в нем соединены

путем, то орграф односторонний, иначе — cлабый (рис. 30).

Рис. 29. Орграфы: а — сильный, б — односторонний и в — слабый

Теорема 1. Орграф сильный тогда и только тогда, когда в нем есть

остовный замкнутый путь.

Рис. 30. Слабый орграф и граф с семью компонентами

Компоненты ориентированных графов различают по степени связности узлов:

сильная компонента — максимальный сильный подграф;

односторонняя компонента — максимальный односторонний подграф;

слабая компонента — максимальный слабый подграф.

Каждый узел и каждая дуга орграфа находятся точно в одной слабой компо-

ненте и хотя бы в одной односторонней. Дуга орграфа принадлежит сильной ком-

поненте (СК) тогда и только тогда, когда эта дуга принадлежит простому орциклу.

Множество R(i) всех узлов орграфа, достижимых из его узла i, называют

множеством достижимости узла i: R(i)={i}Г(i)Г2(i) … Г

p(i).

Если j достижима из i, то это записывают так: jR(i).

Построим S(i)=Г–p

(i). Результат выполнения операции R(i) S(i) — мно-

жество узлов, взаимно достижимых с узлом i. Отношение взаимной достижимости

есть отношение эквивалентности. Разбиение орграфа на сильные компоненты есть

разбиение множества его узлов на классы эквивалентности. [2]

a) б) г)

Page 21: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

21

e

a

c b h

G

d

g

f

e

a

c b

G

d d

a f

g

h h

f

g

b c

e

7. Сильные компоненты орграфов

Представим понятие сильной компоненты

в алгоритмической нотации. Смешанный сла-

бый орграф на рис. 31 содержит связную ком-

поненту — сильный подграф, порожденный

подмножеством узлов Y={a, d, c, b}. В орграфе

есть узел e, добавление которого к Y не нарушит

Рис. 31. Слабый орграф

свойства сильной связности порождаемого им подграфа. Добавим его: Y:=Y{e}.

Получим сильный ориентированный подграф Ḡ′ на множестве Y={a, d, c, b, e}.

Продолжить этот процесс не удастся — в орграфе нет узла, добавление которого к Y

не нарушит свойства сильной связности подграфа Ḡ′. Полученный максимальный

сильно связный подграф Ḡ′ называется сильной компонентой орграфа Ḡ или би-

компонентой [1]. В орграфе Ḡ — три сильные компоненты:

подграф Ḡ′1, порожденный подмножеством Y

1={a, d, c, b, e};

Ḡ′2, порожденный Y

2={f, g};

Ḡ′3, порожденный Y

3={h}, — «вырожденный» орцикл (рис. 32).

Рис. 32. Ориентированный граф и три его сильные компоненты

Построим новый орграф Ḡ* — конденсацию ор-

графа Ḡ: сопоставим каждой его сильной компоненте

узел в новом орграфе: Ḡ′1 — ḡ

1, Ḡ′

2 — ḡ

2, Ḡ′

3 — ḡ

3.

Связи узлов повторяют связи СК в исходном орграфе.*)

Рис. 33. Конденсация Ḡ*

––––––––––––––– *)

Конденсация или граф Герца (Hertz, P.) [1]

ḡ1 ḡ

3

ḡ2

Page 22: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

22

Такое преобразование больших графов и сетей можно использовать в каче-

стве подготовки к их визуализации и/или для архивации.

Каждый узел орграфа находится точно в одной сильной компоненте. Дей-

ствительно, достаточность этого утверждения следует из алгоритма примера 1, а

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

найтись две сильных компоненты с общим узлом x, подразумевает взаимную до-

стижимость их узлов посредством x, что противоречит условию максимальности

(насыщенности) СК. Множество T(i)=R(i)S(i) , идентифицируемое узлом i, дает

одну и только одну сильную компоненту орграфа.

Опишем алгоритм перечисления СК орграфа.

Шаг 1. Для iX строим множество Y(i):=R(i)S(i) и порожденный подграф

(Y(i), ГY(i)

) — сильную компоненту орграфа, инициируемую узлом i.

Шаг 2. Обновим данные: X:=X\Y(i). Если X≠, то Шаг 1, иначе СТОП.

СТОП.

В конденсации орграфа нет циклов, а все истоки и стоки — чистые.

Генерируем матрицу достижимости R, nn, — табличный аналог семейства

множеств достижимостей: R=I+A+A2++A

p, R=(I+A)

p, где элементы матриц

true, false обозначены соответственно 1, 0 (занимают один бит памяти), а операции

дизъюнкции и конъюнкции выполняются по правилам простой алгебры логики

значений истинности, матрица I — единичная диагональ.

Для орграфа небольшого порядка матрицу R={ri j

} строим вручную: если

узел jR(i), то ri j

=1, иначе ri j

=0. Длина вычислительной процедуры генерации R

определяется итерационно: значение p соответствует наивысшей степени матрицы

A, предшествующей ее обращению в O. Если учесть, что R=(I+A)p

, то время вы-

числений можно сократить, итерируя, пока степень матрицы I+A изменяется.

Вычислим Т=RR* — матрицу взаимной достижимости (см. рис. 40,

41). Матрица Т симметричная: если узлы i и j взаимно достижимы, то tij= t

ji=1,

Page 23: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

23

иначе tij= t

ji=0. Строка ti

матрицы Т содержит единицы только в столбцах, соответ-

ствующих узлам, взаимно достижимым с узлом i , в других ее позициях — нули.

Поэтому узлы i и j принадлежат одной и той же сильной компоненте тогда и

только тогда, когда соответствующие им строки и столбцы матрицы Т идентичны.

Перестановкой одноименных строк и столбцов матрица Т может быть приведена

к блочно-диагональному виду(рис. 34, 35).

Каждая квадратная подматрица Ti i

— полная единичная подматрица, соот-

ветствующая матрице достижимости некоторой СК орграфа. [2]

Пример 2. Разобьем множество узлов X орграфа Ḡ на классы эквивалент-

ности. Построим конденсацию орграфа и матрицу T. В орграфе — три сильных

компоненты. В его матрице Т на рис. 35 выделенные позиции на главной диагона-

ли соответствуют матрицам смежности каждой из них — единичным подматрицам

T11

, 55, T22

, 22, T33

, 11.

8. Остовы графа

Сопоставим несколько определений остова графа:

1) остов графа — связный ациклический остовный подграф;

2) остов графа — максимальное дерево графа;

3) остов графа — минимальный связный остовный подграф.

Определения 2 и 3 отражают алгоритмическую парадигму теории графов.

Второе определение предполагает частичную реставрацию нуль–графа (X, ) воз-

вращением по одному тех его ребер, которые не замыкают циклов.

11

22 = .

. . .

. . .

... ... ... ...

. . .nn

Τ O O

O Τ OT

O O Τ

T=

Рис. 34. Структура матрицы T Рис. 35. Матрица T=RS орграфа Ḡ

Page 24: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

24

7 4 8 1 2 3 5 6

1a

4a5a3a

2a

а) б) в) г) д)

Рис. 36. Реставрация нуль–графа (X, ) до остова: а — граф G=(X, A),

б — нуль–граф (X, ), в — граф несвязный, г — максимальное дерево графа — остов

Третье определение подразумевает удаление из графа одного за другим ре-

бер, принадлежащих циклам графа.

Рис. 37. Трансформация графа G в остов.

в — минимальный связный остовный подграф — остов графа; г — лес

Теорема 3. Число ребер, которые необходимо удалить для получения остова

произвольного графа G, не зависит от последовательности их удаления и равно

m–n+k, где m — число ребер, n — его порядок, k — число компонент графа.

Пример 8. Перечислим остовы графа G (рис. 38) в лексикографическом

порядке [2].

G

Рис. 38. Граф G и все восемь его остовов

Число остовов графа быстро растет с ростом числа его ребер. В некоторых

приложениях встает задача отбора «наилучшего» остовного дерева графа в соот-

ветствии с определенным критерием. Процедура перечисления и проверки состоя-

тельности каждого вновь создаваемого остова эффективна, если каждый вновь по-

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

построенными ранее. Одна из таких процедур основана на элементарном преоб-

разовании деревьев. Два остова Ti =(X, A

i) и T

j =(X, Aj) неориентированного гра-

а) б) в) г)

Page 25: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

25

( , )G X A ( , )i iT X A ( , )j jT X A

ja

ia

ja

ia

фа G=(X, A) такие, что |Ai|=|A

j|=n –1, имеют l=| A

i A

j| одинаковых ребер. Число

ребер, которыми отличаются Ti и T

j, есть

i j=n – (l+1), называется расстоянием

между остовами Ti и T

j. Добавим в остов T

i ребро a

jA

j, а его ребро a

iA

i уда-

лим. Получим Tj. Такое преобразование называется элементарным (рис. 39).

Теорема 4. Если T0 и T

k — остовы графа и

i j=k, то остов Tk можно по-

лучить из остова T0 за k элементарных преобразований. [2]

Рис. 39. Остовы Ti и T

j,

i j=1 [2]

Теорема 4. Если T0 и T

k — остовы графа и

i j=k, то остов Tk можно по-

лучить из остова T0 за k элементарных преобразований. [2]

Остовы T0 и T

k отличаются k ребрами. Например, L

0={a0

1,a

0

2,…,a

0

k} —

множество k ребер остова T0, которых нет в остове T

k, а L

k={ak

1,a

k

2,…,a

k

k} —

множество k ребер остова Tk, которые его отличают от остова T

0. Внесем в остов

T0 ребро a

k

1 T

k — оно замкнет в нем некоторый цикл. Среди ребер этого цикла

найдется хотя бы одно, не принадлежащее остову Tk. Его удалим. Получим остов

T1, такой, что

01=1, 1k=k–1. Повторяя замену ребер, за k–1 шагов преобразова-

ния остова T1 получим остов T

k.

В XIX в. Г. Кирхгоф (Kirchhoff, G.) ввел деревья и развил теорию электрических

цепей. А. Кэли (Cayley, A.), перечисляя изомеры насыщенных углеводородов, иссле-

довал свойства деревьев. К. Жордан ввел деревья как математический объект [2].

Для связного графа Г. Кирхгоф определил матрицу M={mij

}, в которой, в от-

личии от матрицы смежности графа, на диагонали стоят степени узлов: mij=deg

i.

Page 26: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

26

4x

3x

2a3

a

4a 5

a

1x

1a

x5

7a

8a6

a

2x

Число остовов Kn равно числу помеченных деревьев порядка n.

Теорема Кэли. Число помеченных деревьев порядка n равно nn–2

. [2]

Теорема Кирхгофа. Число различных остовов связного графа порядка n2

равно алгебраическому дополнению матрицы M.

Следствие. При n1 число остовов в полном графе Kn равно n

n–2 (рис. 40).

Рис. 40. Рост числа остовов полных графов с ростом n.

K4: n

n–2=16; K

5: n

n–2=125; K

6: n

n–2=1296

Матрицу M можно вычислить иначе: M=BB*, где B — матрица инциденций

графа. Вычеркнув в матрице B любую строку, получим B0 (см. гл. 1).

Теорема 5. Число различных остовов связного графа G равно det M0, где

M0=B

0B

0*.

Пример 9 [2]. Найдем число остовов графа G (рис. 41). Возможны два ре-

шения: построить B0, затем B0* и вычислить det M0 или построить матрицу Кирх-

гофа и, вычеркнув любые одноименные строку и столбец, преобразовать ее в M0.

M0=

, det M0=45

Рис. 41. Число остовов графа равно 45

Известны полиномиальные алгоритмы перечисления всех остовов графа.

Приведем два варианта алгоритма перечисления остовов графа в лексикографиче-

ском порядке. Первый — оперирует натуральными числами от 0 до n, продуцируя

числа длины n–1, представляющие каждое один остов графа (табл. 2), второй —

графическими изображениями остовов (табл. 3). Перечисление организовано так,

3 1 0 1

1 3 1 0

0 1 3 1

1 0 1 3

Page 27: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

27

чтобы каждый вновь построенный остов был оригинален. Тем самым исключаем

расход времени на обращение во вспомогательную память для проверки на несов-

падение вновь построенного остова с предыдущими. Наращивание остова добав-

лением ребер выполняем, соблюдая правила: *ребра, добавляемые в конструируе-

мый остов, выбираются в строго определенном порядке; **очередное ребро прове-

ряем: оно не должно замыкать цикл в остове.

Переименуем ребра числами 1, 2, … , 8 и перечислим остовы графа (рис. 42).

Вариант 1. Корень у всех остовов один — узел x1, объявленный порождаю-

щим. Ему инцидентны три ребра a1, a

2, a

3. В каждом остове графа — четыре ребра.

Из них хотя бы одно инцидентно порождающему узлу x1. Результаты представле-

ны в таблицах: табл. 2.1–2.3.

Выполняемые действия обозначены так:

— удалить ребро, добавленное последним;

— добавление ребра замкнуло цикл, поэтому ;

> — остов графа отослать во вспомогательную память и .

Таблица 2.1. Генерация списка остовов графа

{12} {13} {14}

{123} {124} {126} {127} {134} {135} {136} {145} {146} {147}

1234 1245 1267> 1278 1345 1356> 1367> 1456> 1468> 1478>

1235 1246> 1268>

1346> 1357> 1378> 1457>

1236> 1247>

1347> 1358> 1458>

1237> 1248> 1348>

1238>

125

Каждая следующая таблица — продолжение предыдущей справа.

Таблица 2.2. Генерация списка остовов графа

{15} {16} {23} {24}

{156} {157} {167} {234} {235} {236} {237} {245} {246}

Page 28: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

28

1

x1

2 3

4 5 7

8 6

Таблица 2.3. Генерация списка остовов графа

Вариант 2. Корень — x1. Строим графические образы остовов графа, строго

соблюдая порядок выбора ребер. Таблицу заполняем по строкам.

Таблица 2. Полная графическая галерея остовов помеченного графа G

Рис. 42. Граф G

Методы перечисления остовов «больших» графов основаны на произвольном

порядке «извлечения ребер» из банка данных [2]. Части остовного дерева графа

1567> {1578} 1678> 2356> 2367> 2378> 2456> 2468>

1568> 2357> 2368 2457> 2478>

2358> 2458>

{25} {26} {34} {35} {36}

{256} {257} {267} {345} {346} {347} {356} {367}

2567> 2578 2678> 3456> 3468> 3478> 3567> 3678>

2568> 3457> 3568> СТОП

3458>

Page 29: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

29

2T

10 8 9( , )x x x9 8 8( , )x x x

11 8 9( , )x x x

12 8 10( , )x x x

2 1 1( , )x x x3 1 1( , )x x x

5 1 3( , )x x x4 1 3( , )x x x

6 1 5( , )x x x 7 1 5( , )x x x

1, 0x 8 , 0x1T

14 8 11( , )x x x

13 8 11( , )x x x

1 4 3( , )x x x

3 4 4( , )x x x

5 4 3( , )x x x

2 4 1( , )x x x

7 4 5( , )x x x

4 , 0x

2 1 1( , )x x x 3 1 1( , )x x x

5 1 3( , )x x x4 1 3( , )x x x

6 1 5( , )x x x 7 1 5( , )x x x

1, 0x

6 4 5( , )x x x

растут как лес из разных узлов–корней. Картина напоминает рост кристаллов в

насыщенном растворе солей. Остов графа образуется их слиянием/расщеплением

(во избежании образования циклов).

Упреждение образования циклов обеспечивает специальная технология, ос-

нованная на концептах «корень» и «направление роста» и на операциях замены

корневых меток, замены одного корня другим, расщепления и сращивания де-

ревьев*)

. Узлу дерева xi присваивают две метки: (r

i, p

i), где r

i указывает на корень

дерева, а pi — на узел, непосредственно предшествующий x

i в цепи, соединяющей

ее с корнем. Благодаря этому замена одного корня другим при обращении направ-

ления роста ветвей остова влечет замену корневых меток предшествования только

узлов цепей от нового корня к старому (рис. 43). Замена корня x1 корнем x

4 изме-

няет только первые метки вершин x5, x

6, x

7., т.е. r

5, r

6, r

7. Очередное ребро, извле-

каемое из банка и вводимое в растущий лес, может связать два дерева. Тогда кор-

нем нового дерева становится младший из корней.

Рис. 43. Замена корня в отделяемом дереве

Рис. 44. T1 — дерево присоединяющее, а T

2 — присоединяемое

Для Т1 и Т

2 (см. рис. 51) новым корнем становится x

1. Введение нового ребра

(x5, x

9) влечет изменение в присоединяемом дереве Т

2 обеих меток узлов цепей,

––––––––––––––– *)

«Выращивается» неориентированное дерево.

Page 30: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

30

2T

10 8 9( , )x x x9 8 8( , )x x x

11 8 9( , )x x x

12 8 10( , )x x x

2 1 1( , )x x x 3 1 1( , )x x x

5 1 3( , )x x x4 1 3( , )x x x

6 1 5( , )x x x 7 1 5( , )x x x

1, 0x 8 , 0x1T

14 8 11( , )x x x

13 8 11( , )x x x

1x 2x

связывающих их со старым корнем. Корневые метки остальных узлов будут заме-

нены на значение нового корня. В присоединяющем дереве Т1 все узлы сохранят

значения корневых меток. Новое дерево наследует его имя — Т1.

Рис. 45. Объединение двух деревьев в одно при добавлении ребра (x5, x

9)

Математические модели развития экономических систем, их трансформации,

слияния–поглощения, сращивания с целью объединения усилий, распада, дробле-

ния для спасения хотя бы «вывески фирмы» — широкое поле приложений рас-

смотренных нами комбинаторных алгоритмов.

Дискретные многошаговые процессы «выращивания» остовов графов не

просто служат яркой иллюстрацией природных и социальных явлений, но и спо-

собствуют познанию законов их развития.

Задача нахождения в графе G кратчайшего остова (КО) имеет широкие при-

ложения.*)

[9, 11]. Вот только некоторые из них.

Д. Росси, Р. Хейзер, Н. Кинг (Dei J. Rossy, J. Heiser, N. King) предложили

схему прокладки TV–кабеля, соединяющего все станции в единую сеть.

––––––––––––––– *)

О. Оре (Ore, O.) назвал ее задачей о минимальном соединении [11].

Рис. 46. Расщепление

дерева

Порождение деревьев представляется поиском на дере-

ве решений и его реализация может потребовать удаления не-

которых ребер (на шагах возврата), чтобы затем испытать

другие. При расщеплении дерева (рис. 46) в отторгаемом де-

реве создается новый корень, которым становится концевой

узел удаляемого ребра. У прочих узлов отторгаемого дерева

следует заменить только корневые метки.

Page 31: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

31

Построение локальной сети ЭВМ с несколькими терминалами, получаю-

щими доступ к сети в режиме разделения времени.

Ряд задач кластерного анализа наиболее эффективно решаются с помо-

щью построения КО.

Оценка надежности сетей.

Р. Гомори, Т. Хью (Gomory, R., Hu, T.) применили алгоритм построения

КО при решении задач о многополюсных потоках.

М. Хелд, Р. Карп (Held, M., Karp, R) применили КО для решения задачи

коммивояжера.

Л. Ловас (Lovasz, L.) установил, что всю информацию о потоках в графе

можно эффективно хранить в виде «дерева, эквивалентного потоку».

В медицинских и физиологических исследованиях встречаются подобные

прикладные задачи — живые системы имеют древесную структуру.

Пример 10 . Д. Е. Кнут приводит следующую интерпретацию задачи о ге-

нерации кратчайшего остова [2]. В электросхеме на n выводах во время ее работы

нужно поддерживать одинаковое напряжение. Для этого можно просто соединить

каждую пару выводов так, чтобы провода образовали остовное дерево. Если стои-

мость соединения выводов высока, то нужно найти схему соединения, имеющую

минимальную стоимость. Если стоимостью служит длина связывающего выводы

проводника, то решение сводится к отысканию КО. Суть задачи о минимальном

соединении не изменится, если выводы назовем терминалами, а провода — теле-

коммуникационными трафиками.

Рис. 47. Оптимизация коммутации; а — схема выводов, б — КО

a)

б) 4

T

7T

Page 32: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

32

На рис. 47, а изображены девять выводов на сетке. Дерево минимальной це-

ны показано на рис. 47, б (общая длина проводов равна 7+2sqrt(2)+2sqrt(3)) [2].

Нахождение кратчайшего остова графа и дерева, дающего все кратчайшие пути,

выходящие из заданной вершины графа, — две различные, не связанные между

собой задачи. Задачу нахождения КО взвешенного связного неориентированного

графа легко решить c помощью жадного алгоритма Дж. Краскала (Kruskal, J.),

выбирающего на каждом шаге самое дешевое подходящее ребро.

Пример 11 [2]. В графе вершина xi обозначает некую персону, ребро (x

i, x

j)

говорит о возможности обмена сообщениями между xi и x

j, а

i j — вероятность

потери сообщения при обмене. Найдем последовательность передачи сообщения

между n персонами, при которой вероятность потери данных минимальна.

Пути передачи сообщения образуют остовные деревья графа. Найдем остовное

дерево, на котором значение функции L(i j

) =1 –(xi, xj)T

(1–i j

) минимально. Функ-

ция L(i j

) — возрастающая и симметричная, поэтому искомое дерево совпадает с

кратчайшим остовом графа. Задачу построения остова максимального веса решают

те же алгоритмы.

Известная задача Штейнера (ЗШ) близка к задаче о кратчайшем остове. Гео-

метрически она формулируется так: найти соединение линиями конечного множе-

ства точек P на евклидовой плоскости, сумма длин отрезков которого минимальна.

Пересечения любых двух линий в точках вне множества P не допускается. Требу-

ется в графе G[C] найти кратчайшее дерево T, «стягивающее» подмножество вер-

шин PX. Вершины X \ P могут либо стягиваться деревом T, либо нет. Искомый

граф T называется деревом Штейнера.

V

(4,4)

( 0 , 3 )

(0,1) (4,0)

W

12 0° 12 0 °

s1 s2

Допускается введение на плоскости

дополнительных вершин (рис. 48). Срав-

нение кратчайшего остова и дерева Штей-

нера для задачи на четырех точках. [2]

Рис. 48. Благодаря введению точек Штейнера s1, s

2, остов W короче V.

Page 33: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

33

Наглядность, простота восприятия теоретико–графовых моделей проистека-

ют из их глубинной связи с древесными грамматическими структурами естествен-

ного языка (рис. 49).

Рис. 49. Дерево типов языка Pascal [8]

Простые

real

Динамические

Сложные

array

file

set record

Перечень

Порядковые

ОтрезокСтандартные

integerboolean char

Типы данных

Ссылочный

Статические

Page 34: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

34

ЛИТЕРАТУРА, РЕКОМЕНДУЕМАЯ ДЛЯ ИЗУЧЕНИЯ

1. Зыков А. А. Основы теории графов. М., 1987. 380 с.

2. Кристофидес Н. Теория графов. Алгоритмический подход / Пер. с англ. Э.

В. Вершкова, И. В. Коновалова; Под ред. Г. П. Гаврилова. М., 1978. 432 с.

3. Харари Ф. Теория графов / Пер. с англ. В. П. Козырева; Под ред. Г. П. Гав-

рилова. М., 1973. 300 с.

4. Novozhilova L. M. Network model of liquidity market // Сборник научных

трудов по материалам Международной научно–практической конференции «Со-

временные проблемы и пути их решения в науке, на транспорте, производстве и

образовании’2011», Т. 21. Одесса, 2011. С. 85–87.

5. Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и

практика / Пер. с англ. Е. П. Липатова; Под ред. В. Б. Алексеева. М., 1980. 476 с.

6. Горбатов В. А. Основы дискретной математики. М., 1986. 310 с.

7. Новиков А. Ф. Дискретная математика. СПб., 2001. 304 с.

8. Новожилова Л. М. Базис языка PASCAL. СПб., 2008. 72 с.

9. Емеличев Е. А., Мельников О. И., Сарванов В. И., Тышкевич Р. И. Лекции

по теории графов. М., 1990. 382 с.

10. Новожилова Л. М. Упорядоченный перебор с последовательным снижением

размера задачи в перечислительных задачах на графах // Вопросы механики и процес-

сы управления. Вып. 9 / Под ред. Н. Г. Баринова, В. П. Скитовича. Л., 1986. С. 79–81.

11. Оре О. Теория графов / Пер. с англ. И. В. Врублевской; Под ред. Н. Н.

Воробьева. М., 1980. 326 с.

12. Кнут Д. Е. Искусство программирования для ЭВМ. Т. 1 / Пер. с англ. Г.

П. Бабенко, Ю. М. Баяковского; Под ред. К. И. Бабенко и В. С. Шторкмана. М.,

1976. 735 с.

Page 35: КОНЕЧНЫЕ ГРАФЫ Основные структуры2 1 G 2 G 3 G 4 G 5 G 6 G F G 7 G8 G 9 1. Графы.Орграфы направленные и смешанные. Типы

35

СОДЕРЖАНИЕ

1. Графы. Орграфы направленные и смешанные. Типы графов……………...…….

2. Матричные модели графов………………………………………………………....

3. «Скитаемся» по графу. Эх, дороги ... . Цепи. Циклы………………………….….

4. Подсчет и перечисление простых путей………………………………….…….….

5. Взвешенные графы — сети…………………………………….……………….…..

6. Связность. Достижимость ……………………………………………………….…

7. Сильные компоненты орграфа……………………………………………………..

8. Остовы графа…………………………………………………………….………….

3

10

15

16

18

19

21

24

БИБЛИОГРАФИЧЕСКАЯ ССЫЛКА НА ИЗДАНИЕ

Новожилова Л. М. Конечные графы. Основные структуры. Учебное посо-

бие. — СПб, СПбГУ, 2017, 35 с.