Теория графов и её приложения
..pdf3. ПЕРЕЧИСЛЕНИЕ ДЕРЕВЬЕВ. КОД ПРЮФЕРА
Перечисление так называемых помеченных деревьев (каждая вершина имеет свой номер) осуществляется с помощью кодирования их кодом Прюфера, названного в честь немецкого математика Хайн-
ца Прюфера, работавшего в теории абелевых |
|
групп, алгебраической теории чисел, теории |
|
графов и др. |
|
Кодирование Прюфера задаёт биекцию |
|
(взаимно-однозначное отображение) между |
|
множествами помеченных деревьев с n вер- |
|
шинами и последовательностями длиной |
|
n –2 из чисел от 1 до n – 2. |
|
Рассмотрим алгоритм кодирования на |
|
примерах [11]. |
Хайнц Прюфер |
Дано: дерево с n вершинами – поме- |
|
ченное дерево, каждая вершина имеет свой |
(нем. Ernst Paul Heinz |
номер. |
Prüfer, 1896–1934) |
|
Требуется получить: код Прюфера длиной n – 2.
Алгоритм кодирования и декодирования рассмотрим на примерах.
Пример кодирования. Построить код Прюфера по дереву
(рис. 3.1).
Рис. 3.1. Помеченное дерево с n = 8
1. Выбираем лист с наименьшим номером: v = 1, сосед: 3. Получаем код (3). Удаляем («отключаем») лист 1 (рис. 3.2).
61
Рис. 3.2. Первый шаг алгоритма кодирования
2. Остался лист с наименьшим номером: v = 2, сосед: 3. Полу-
чаем код (3, 3) (рис. 3.3).
Рис. 3.3. Второй шаг алгоритма кодирования
3. Теперь лист с наименьшим номером: v = 3, сосед: 4. Получим код (3, 3, 4 (рис. 3.4).
Рис. 3.4. Третий шаг алгоритма кодирования
4. Лист с наименьшим номером: v = 7, сосед: 5. Код (3, 3, 4, 5) (рис. 3.5).
62
Рис. 3.5. Четвёртый шаг алгоритма кодирования
5. Лист с наименьшим номером: v = 5, сосед: 4. Код (3, 3, 4, 5, 4) (рис. 3.6).
Рис. 3.6. Пятый шаг алгоритма кодирования
6. Лист с наименьшим номером: v = 4, сосед: 6. Код (3, 3, 4, 5, 4, 6) (рис. 3.7).
Рис. 3.7. Шестой шаг алгоритма кодирования
Остаются две вершины 6 и 8, соединенные ребром. Искомым кодом Прюфера для заданного дерева будет (3, 3, 4, 5, 4, 6).
Пример декодирования. Построить дерево по коду Прюфера
(3, 3, 4, 5, 4, 6):
63
1. Записываем код Прюфера P = (3, 3, 4, 5, 4, 6) и множество вершин V = (1, 2, 3, 4, 5, 6, 7, 8). v = 1, добавляем ребро (1, 3) (рис. 3.8).
Рис. 3.8. Первый шаг декодирования
2. P = (3, 4, 5, 4, 6), V = (2, 3, 4, 5, 6, 7, 8). v = 2, добавляем ребра (2, 3) (рис. 3.9).
Рис. 3.9. Второй шаг декодирования
3. P = (4, 5, 4, 6), V = (3, 4, 5, 6, 7, 8). v = 3, добавляем ребра (3, 4) (рис. 3.10).
Рис. 3.10. Третий шаг декодирования
64
4. P = (5, 4, 6), V = (4, 5, 6, 7, 8). v = 7, добавляем ребра (7, 5) (рис. 3.11).
Рис. 3.11. Четвёртый шаг декодирования
5. P = (4, 6), V = (4, 5, 6, 8). v = 5, добавляем ребра (5, 4) (рис. 3.12).
Рис. 3.12. Пятый шаг декодирования
6. P = (6), V = (4, 6, 8). v = 4, добавляем ребра (4, 6) (рис. 3.14).
Рис. 3.13. Шестой шаг декодирования
7. V = (6, 8). V состоит из двух вершин, добавляем ребра (6, 8) (рис. 3.14).
Рис. 3.14. Седьмой шаг декодирования
65
Итак, получили дерево (рис. 3.15).
Рис. 3.15. Результат декодирования
Результат декодирования совпадает с рис. 3.1.
С помощью кода Прюфера можно, например, кодировать информацию, представленную не просто строками – цепочками символов, а деревьями (описывающими файловую структуру, молекулы и пр.), что может рассматриваться как своего рода «двухмерные цепочки», без циклов. А можно и матрицу смежности дерева кодировать!
Полученный по дереву код Р можно ещё раз закодировать, например, так, как описано в [3, 4] и уже передавать получателю.
66
4. ГРАФ МАРКОВСКОЙ ЦЕПИ
Марковская цепь – последовательность случайных событий с дискретным – конечным (или с чётным) числом исходов, изображаемая ориентированным графом, нагруженным вероятностями или интенсивностями переходов из состояния в состояние. Названа в честь выдающегося российского математика А.А. Маркова старшего.
Марков, Андрей Андреевич – выдающийся русский математик, внёсший большой вклад в теорию вероятности, математический анализ и теорию чисел. Отец другого выдающегося российского математика А.А. Маркова младшего.
Если в марковской цепи существует предельное распределение вероятностей
при числе дискретных шагов n → ∞, не зависящее от начального состояния, то это определяет установившийся режим системы. Такая система называется статически устойчивой, а марковский процесс – эргодическим. Переход к эргодическому процессу – переходный процесс. Используются в динамических моделях надежности систем.
Для описания и анализа графов марковских цепей используются уравнения Колмогорова – Чепмена.
А.Н. Колмогоров |
Сидни Чепмен (Sydney Chapman, |
(1903–1987) |
1888–1970) |
67
Колмогоров Андрей Николаевич – советский математик, академик, один из крупнейших математиков ХХ века.
Сидни Чепмен – английский математик, геофизик и астроном. Рассмотрим пример. Определить коэффициент готовности ап-
паратуры системы охраны, если она состоит из двух блоков, соединённых последовательно, параметр потока отказов блока w = 0,01,
параметр потока восстановления блока µ =1ч−1. Ремонт осуществля-
ет один ремонтник [12].
Построим граф переходов системы (рис. 4.1), где 0 – состояние работоспособности (оба блока исправны); 1 – отказал любой из двух блоков (отказ системы); 2 – отказали оба блока (отказ системы.)
Рис. 4.1. Граф марковской цепи – граф переходов аппаратуры системы охраны
Получим по этому графу марковской цепи систему дифференциальных уравнений (Колмогорова–Чепмена):
P0′(t) = −2wP0 (t) +µP1 (t),
P1′(t) = 2wP0 (t) −(w +µ)P1(t) +µP2 (t),P2′(t) = wP1(t) −µP2 (t).
Решение будем искать для установившегося режима, тогда получаем алгебраические уравнения:
Pi′(t) =0, а P0 + P1 + P2 =1:
68
0 = −2wP0 +µP1,
0 = 2wP0 −(w +µ)P1 +µP2 ,
0 = wP1 −µP2 ,1 = P0 + P1 + P2 .
Из первого уравнения
P0 = 2µw P1.
Из третьего уравнения
P1 = wµ P2.
Тогда
P0 = µ22 P2.
2w
Подставляя эти значения в четвёртое уравнение, получаем
µ2 |
|
P + |
µ |
|
P |
+ P =1, |
|||
2w2 |
|
|
|||||||
2 |
w 2 |
2 |
|
|
|||||
P2 = |
|
|
|
2w2 |
|||||
|
|
|
, |
||||||
|
µ2 +2wµ+2w2 |
||||||||
P0 = |
|
|
|
µ2 |
|
, |
|||
|
µ2 +2wµ+2w2 |
|
KГ = P0 , |
|
KГ = |
1 |
=0,98. |
1+2 10−2 +2 10−4 |
Решим систему алгебраических уравнений, описывающих граф марковской цепи, в СКМ «Маткад».
69
Рис. 4.2. Решение в СКМ Маткад
Берём два первых уравнения + последнее (три уравнения, три неизвестных) (рис. 4.2).
70