
- •Предисловие
- •Введение
- •Глава 1. Множества
- •§ 1. Множества н их спецификация
- •§ 2. Простейшие операции над множествами
- •X ∉ ø при любом х.
- •§ 3. Диаграммы Венна
- •§ 4. Подмножества и доказательства
- •§ 5. Произведения множеств
- •Глава 2. Отношения
- •§ 1. Основные понятия
- •§ 2. Графические представления
- •§ 3. Свойства отношений
- •§ 4. Разбиения и отношения эквивалентности
- •§ 5. Отношения порядка
- •§ 6. Отношения на базах данных и структурах данных
- •§ 7. Составные отношения
- •§ 8. Замыкание отношений
- •Глава 3. Функции
- •§ 1. Функции и отображения
- •§ 2. Обратные функции и отображения
- •§ 3. Мощность множеств и счетность
- •§ 4. Некоторые специальные классы функций
- •§ 5. Аналитические свойства вещественных функций
- •§ 6. Операции
- •Глава 4. Основные понятия арифметики
- •§ 1. «Малая» конечная арифметика
- •§ 2. «Большая» конечная арифметика
- •§ 3. Двоичная арифметика
- •§ 4. Логическая арифметика
- •Глава 5. Алгебраические структуры
- •§ 1. Алгебраические структуры и подструктуры
- •§ 2. Простейшие операционные структуры
- •§ 3. Кольца и поля
- •§ 4. Линейная алгебра
- •4.1. Векторные пространства о линейные преобразования.
- •§ 5. Решетка и булевы алгебры
- •§ 6. Замкнутые полукольца
- •Глава 6. Матрицы
- •§ 1. Матрицы и бинарные отношения на конечных множествах
- •§ 2. Матрицы над другими алгебраическими структурами
- •§ 3. Матрицы и векторные пространства
- •Глава 7. Теория графов
- •§ 1. Вводные понятия
- •§ 2. Маршруты, циклы и связанность.
- •§ 3. Планарные графы
- •3.1. Теоремы Эйлера и Куратовского.
- •3.2. Раскраска карт и графов.
- •§ 4. Структуры данных для представления графа
- •§ 5. Обход графа
- •5.2. Обход графа по глубине.
- •5.4. Остовные леса обходов по глубине и ширине.
- •§ 6. Ориентированные графы
- •6.2. Маршруты и связность в орграфах.
- •Глава 8. Языки и грамматики
- •§ 1. Основные понятия
- •§ 2. Грамматики с фразовой структурой
- •2.1. Основные определения.
- •§ 3. Контекстно-свободные языки
- •§ 4. Понятия грамматического разбора и грамматических модификаций
- •§ 5. Грамматики операторного предшествования
- •Глава 9. Конечные автоматы
- •§ 1. Общие понятия
- •§ 2. Конечные автоматы
- •§ 3. Регулярная алгебра
- •Глава 10.Компьютерная геометрия
- •§ 1. Системы координат для подмножеств r3
- •§ 2. Преобразования
- •§ 3. Кривые и поверхности
6.2. Маршруты и связность в орграфах.
О п р е д е л е н и е. Маршрутом длины из в в орграфе называется последовательность рёбер вида
т.е. вторая вершина каждого ребра совпадает с первой вершиной следующего ребра. //
Часто удобно представлять маршрут последовательностью вершин
которые его определяют. Если
,
то маршрут называют замкнутым маршрутом
или циклом. Орграф без циклов называют
ацикличным.
Теоремы § 2 также справедливы с аналогичными доказательствами для орграфов. Определим связность или матрицу достижимости тем же самым способом. Заметим, однако, что для орграфов отношение не является отношением эквивалентности на и, следовательно, не осуществляет разбиения
Пусть
обозначает множество всех орграфов, а
– множество всех графов. Мы можем
определить отображение
следующим образом.
О п
р е д е л е н и е. Пусть
.
Тогда множество вершин
совпадает с
,
а множество рёбер
определяется применением следующих
операций на
:
а) удаляются все петли из ;
б)
заменяются на [
для всех
.
Тогда является графом, связанным с орграфом . //
Для орграфов понятие связности является более содержательным, чем для графов, и имеет отношение к проблеме обхода. Сейчас мы определим три важных типа связности орграфа.
О п р е д е л е н и е. Если – орграф , то будем говорить, что:
а)
слабо связный, если граф
связный;
б)
односторонне связный, если для
каждой пары различных вершин
существует маршрут из
в
или обратно,
в) сильно связный, если для каждой пары различных вершин существует маршрут из в и обратно. //
Очевидно,
что
сильно связный
односторонне связный
слабо
связный.
П р и м е р 6.2. Из рис 7.22 мы видим, что орграф:
а
)
только слабо связный (рис. 7.22, а);
б) односторонне связный, но не сильно связный (рис. 7.22, b);
в) сильно связный (рис. 7.22, c).
Рис. 7.22
В
терминах связности матрицы
орграф
сильно связный тогда и только тогда,
когда
всех
,
;
односторонне связный тогда и только
тогда, когда
всех
,
.
П р и м е р 6.3. Рассмотрим орграф, представленный диаграммой на рис. 7.23. Для этого орграфа
,
,
,
;
поэтому для
имеем
всех
,
и, следовательно, граф является сильно
связным. Для более эффективного вычисления
можно использовать алгоритм Уоршолла.
//
Если – орграф, то можно разбить путём определения отношения эквивалентности следующим образом:
Рис. 7.23 Рис. 7.24
,
если
или существуют маршруты из
в
и обратно. Если
– разбиение
и
,
а
являются соответствующими множествами
рёбер, то подграфы
(
)
называются сильно связными компонентами
.
Очевидно,
что
и
может быть определено из
как
;
граф
сильно связный тогда и только тогда,
когда
имеет только одну сильно связную
компоненту, т.е. если
.
П р и м е р 6.4. Для орграфа на рис. 7.24 имеем
;
.
Таким образом,
(
)
являются сильно связными компонентами
графа. //
Пусть G = (V, Е) — ациклический орграф. Вершину называют листом, если δ+( ) = 0. Если ( , ) ∈ E, то является непосредственным предком , а — непосредственным потомком . Если существует маршрут из в , то говорят, что является предком , a — потомком .
Эти понятия не имеют смысла для орграфов, имеющих циклы, так как для таких графов вершина может исходить сама из себя.
Пример
6.5. Для ациклического орграфа, изображенного
на рис, 7.25, из вершин
,
и
ребра
не
выходят,
является
предком
,
является
прямым потомком
и
т. д.
Существует тесная связь между ациклическими орграфами и частично упорядоченными отношениями. В частности, имеет место следующий результат, доказательство которого мы оставляем в качестве упражнения. Заметим, что для сокращения некоторых
Р
ис.
7.25
доказательств, приведенных ниже, частичные порядки будут основаны скорее на отношении <, чем на отношении ≤, и, следовательно, являются транзитивными и нерефлексивными.
Предложение.
а) Пусть отношение < является частичным отношением порядка на конечном множестве V. Тогда, если
E={( , ): < },
то пара G = (V, Е) является ациклическим графом.
б) Пусть G — (V, Е) —ациклический орграф и отношение < определяется следующим образом; < , если является предком . Тогда отношение < является частичным отношением порядка на V. //
В терминах орграфов можно дать точное определение структурам данных, известным как ориентированное дерево.
Ориентированное
дерево T
= (V,
E)
— это ациклический орграф, в котором
одна вершина
V
не
имеет предков, а каждая другая вершина
имеет только одного непосредственного
предка;
называется
корнем
дерева.
Бинарное
дерево —
это ориентированное дерево, в котором
каждая вершина имеет не более двух
непосредственных потомков, т. е. δ+(
)
≤ 2 для всех
V.
Говорят, что бинарное дерево является
полным,
если
каждая вершина, не являющаяся листом,
имеет ровно два непосредственных
потомка.
П р е д л о ж е н и е. Следующие утверждения эквивалентны по отношению к орграфу G = (V, Е):
а) G является деревом.
б) Граф F(G) связный, и существует вершина , которая не имеет предков, а все другие вершины имеют только по одному непосредственному предку.
в) G имеет вершину , которая соединяется с любой другой вершиной единственным маршрутом.
г) G имеет вершину , которая не имеет предков; все другие вершины имеют только одного непосредственного предка; существует маршрут к каждой вершине из .
Доказательство оставляем в качестве упражнения. //
6.3. Упорядоченные орграфы и обходы. Списки смежности являются альтернативной по отношению к матрице смежности формой представления орграфов. Заданное списком смежности представление определяет порядок ребер, выходящих из каждой вершины.
Определение. Упорядоченным орграфом называется пара G = (V, Е), где V — конечное множество вершин, а Е — множество упорядоченных списков ориентированных ребер. Элементы E имеют вид
=
((
,
),
…, (
,
)),
где
,
.
//
Пример 6.6. Упорядоченный орграф
может быть представлен списками смежности
и может быть изображен диаграммой (рис. 7.26).
Рис. 7.26
Упорядоченный орграф G определяет единственный неупорядоченный орграф; мы только заменяем каждый список (( , ), …, ( , )) множеством {( , ), …, ( , )}. Орграф, определенный таким образом, называют орграфом, подчиненным G. Упорядоченный ациклический орграф является упорядоченным графом, чьим подчиненным орграфом является ациклический орграф. Упорядоченное ориентированное дерево является упорядоченным орграфом, чей подчиненный орграф является ориентированным деревом.
Пример 6.7.
я
вляется
упорядоченным ориентированным деревом
—
корень. Оно может быть изображено, как
показано па рис. 7.27. //
Упорядоченные ориентированные деревья будем изображать спуском вершин слева направо (рис. 7.27). Если принять такое соглашение, то номера ребер можно опускать.
Определение. Рис. 7.27
Пусть SV и SB — множества. Пометкой упорядоченного орграфа G = (V, Е) называется пара отображений (f, g), где
f: V → SV — пометка вершин,
Отображение g имеет вид
Говорят, что два помеченных графа G1 = (V1, Е1) и G2 = (F2, Е2) с функциями пометок (f1, g1) и (f2, g2) соответственно эквивалентны, если существует биекция h: V1 → V2 такая, что
a) (( , ), …, ( , )) ∈ E1 тогда и только тогда, когда
((h( ), h( )), …, (h( ), h( ))) ∈ E2
(эквивалентны как упорядоченные графы);
б) f1( ) = f2(h( )) для всех (метки вершин совпадают);
в) для
всех ((
,
),
(
,
),
…, (
,
))
∈
E1
имеем
g1((( , ), .... ( , ))) = g2(((h( ), h( )), ..., (h( ), h( ))))
(метки ребер совпадают). //
Следуя § 5, определим обход орграфа как перестановку или полное упорядочивание вершин. Для упорядоченных орграфов все делается точно так же. Для упорядоченных ориентированных деревьев часто полезны другие обходы. Некоторые из них будут описаны ниже.
О
п р е д е л е н и е. Пусть T
= ({
,
…,
},
Е)
— упорядоченное
ориентированное дерево и
=
((
,
),
…, (
,
))
∈
E.
Определим
отношение
< на
множестве {
,
…,
}
следующим
образом:
<
тогда
и только тогда, когда i
<
j.
Определим
таким образом отношение < для каждого
списка Е.
//
П р е д л о ж е н и е. Отношение < является отношением частичного порядка на V.
Д о к а з а т е л ь с т в о.
Из соотношения < следует список вида
который невозможен, так как в дереве не существует циклов. Следовательно, ≮ для любого .
Из соотношений < и < следует, что существуют х, у ∈ V такие, что
Если
х
≠
у,
то
= 2, что невозможно, так как T
— дерево. Следовательно, х
= у и
т.е. < u. Поэтому отношение < есть частично упорядоченное отношение на V. //
Отношение < сравнивает только вершины, выходящие из одной вершины.
П
р и м е р 6.8. Для упорядоченного
ориентированного дерева на рис. 7.28 имеем
<={(
),
(
),
(
),
(
)}
или
//
Замечание.
Обозначим множество всех спусков из
вершины
через
Г+(
);
аналогично
через
(
)
обозначим
множество входов в
.

Рис. 7.28
О п р е д е л е н и е. Отношение < называют трансверсальным порядком вершин упорядоченного направленного дерева T = (V, E). //
Наша
цель в оставшейся части главы — вывести
различные полезные методы обхода для
дерева с использованием симметрии путей
расширения трансверсального порядка.
Перед точным определением обходов
необходимы два результата. Пусть <
определяет отношение <, на V
следующим
образом: если
,
то
для
всех
и для всех
Предложение.
< ⊆ <e;
< e — частично упорядоченное отношение на V. Доказательство.
Утверждение очевидно.
а) Из <e следует, что или < , или существуют х, y ∈ V такие, что х < у и
и
. Однако
, так как < — отношение частичного порядка. Аналогично из х < у следует х ≠ у; следовательно, и . Однако это означает, что
или
для некоторого
. Это невозможно, потому что T = (V, E) —дерево. Таким образом, <e для всех
б)
<e
означает,
что v
< w
или
что существуют х,
y
∈
V
такие,
что х
< у и
и
;
<eu
означает,
что w
< u
или
что существуют r,
s
∈ V
такие, что r
< s
и
и
;
и
дают,
что или
,
пли
.
Следовательно,
дерево имеет одну из форм, изображенных
на рис. 7.29. Если
,
то
и x
< y
дает
x
<e
s.
Однако
,
следовательно, x<eu,
и
так как
,
то,
следовательно,
<e
.
Если
,
то
и
r
< s
дает x
<e
s.
Однако
,
следовательно,
х<eи,
a
дает
<e
.
Следовательно, <, является отношением частичного порядка на V. //
Иногда <ew читают как « находится слева от w».
Р
ис.
7.29
Предложение.
Пусть
T
= (V,
Е)
— упорядоченное ориентированное дерево.
Тогда для
или
<e
,
или
<e
,
или же
и
находятся на маршруте.
Доказательство.
Пусть
и
.
Тогда
существует вершина
,
такая,
что
и
.
Если
=
или
=
,
то
и
находятся
на маршруте; в противном случае рассмотрим
прямые спуски
из
.
Тогда
или
и
для
или
В
первом случае имеем или
<e
или
<e
в
зависимости от того,
или
.
Во
втором случае повторяем процесс из
пока
не будут выполнены условия первого
случая, или получаем
=
или
=
в
этом случае
и
находятся на маршруте. //
Много полезных обходов дерева определяют посредством расширения отношения <e до полного упорядочивания V. Используя приведенный выше результат, надо только расширить <e, чтобы сравнивать вершины, которые находятся на маршруте, для определения полного порядка на V, для которого <e является подпорядком.
Определение.
Пусть T
=
(V,
Е)
— упорядоченное
направленное дерево. Определим полную
упорядоченность <1
на V
следующим
образом: если
спускается
из
,
то
<1
в
противном случае
<1
,
если
<e
.
Отношение
<1
называют предпорядком
на
V.
//
О
чевидно,
что <s
⊆
<I.
Рис. 7.30
Пример 6.9. Пусть T = (V, Е) - упорядоченное направленное дерево, изображенное на рис. 7.30. Тогда предпорядок на V = {а, b, c, d, e, f, g, h, i} можно записать как
a <1b <1e <1f <1 c <1d <1g <1i <1h.
Соответствующий обход вершины имеет вид а, о, a, b, e, f, c, d, g, i, h. //
Определение. Пусть T = (V, Е) — упорядоченное ориентированное дерево. Определим отношение <2 полного порядка на V следующим образом: если спускается из , то <2 ; в противном случае <2 , если <e . Отношение <2 называют постпорядком на V. //
Очевидно, что <e ⊆ <2.
Пример 6.10. Пусть T и V такие же, как и в предыдущем примере. Тогда постпорядок на V будет иметь вид
e <2 f <2b <2c <2 i <2g <2h <2d <2a
с обходом
e, f, b, c, i, g, h, d, a. //
Определение. Пусть T = (V, Е) — полное бинарное дерево. Определим симметричный порядок <2 на V следующим образом: для каждой вершины, не являющейся листом и имеющей прямые спуски и ( < ), положим
<s
для
всех
,
<s
для
всех
.
//
Порядок <s также является расширением <e.
П
ример
6.11. Пусть T
— дерево,
изображенное на рис. 7.31. Тогда <s
определено, как показано на рис 7.31.
Рис. 7.31
Обход по предпорядку упорядоченного ориентированного дерева соответствует обходу по глубине с корнем в качестве начальной вершины.
Если T = (V, Е) — упорядоченное ориентированное дерево, то вершины T могут быть расположены в предпорядок с применением следующего алгоритма, начинающегося с корня:
procedure pre( )
process
if
do
pre(
)
for
each
endproc
Соответствующий алгоритм для постпорядка имеет вид
procedure post( )
if
then
process
else begin
post( ) for each
process
end
Упражнение 7.6.
Пусть – матрица смежности орграфа. Выписать выражения для функций
и
в терминах A.
Сколько различных орграфов может существовать на вершинах?
Пусть – орграф. Какое максимально возможное значение величины ?
Пусть – орграф, где
и
. Определить матрицы
и .
Дать матричные характеристики слабой, односторонней и сильной связности в орграфе.
Пусть – ацикличный орграф. Какое максимально возможное значение величины ?
Доказать два последних в п. 6.2.
Показать, что если
– полное бинарное дерево и
обозначает множество уходов из T, то
.
Поддеревом
ориентированного дерева называется такое ориентированное дерево, что:
;
;
ни одна из вершин V\V’ не является спуском вершины в V’. Нарисовать все поддеревья
.
10. Определение. Если T – ориентированное дерево, то уровень вершины определяют до листа. Глубина вершины – это длина пути от корня до этой вершины. Глубиной T называют длину самого длинного маршрута в T. Высотой вершины T называют глубину T за вычетом глубины вершины. Высота T является высотой корня. //
Пусть T – ориентированное дерево.
,
нарисовать T со значениями уровней в качестве меток вершины;
нарисовать T со значениями глубин в качестве меток вершины;
нарисовать T со значениями высот в качестве меток вершин;
чему равна глубина T?
Чему равна высота T?
11. Пусть T – ориентированное дерево. Разрезом C дерева T называется подмножество вершин T таких, что
не существует двух вершин C на маршруте в T;
ни одна вершина не может быть добавлена к C без нарушения а).

Рис. 7.32
О
пределить
все разрезы ориентированного дерева,
изображенного на рис. 7.32.
12. Пусть
- полное бинарное дерево и
.
Показать, что существует
полных порядков на V,
которые расширяют трансверсальный
порядок <.
13.
Проинтерпретировать
и <s
для бинарных деревьев, связанных со
структурой арифметических выражений,
как в § 6 гл. 3.