Transcript Document

Теория графов
Основные определения
Задание графов

Графический способ
–
–
–
Привести пример графического задания
графа, состоящего из вершин А, В и С,
связанных ребрами – ребро d между
вершинами А и В, ребро e между вершинами В
и С, ребро f между вершинами В и А, ребро g
между вершиной С и С.
Как называется ребро е по отношению к ребру
d?
Как называется ребро g?
Задание графов
Пусть граф задан
графически.
Составить матрицу
смежности и матрицу
инцидентности для
этого графа.
2
3
1
4
Задание графов
По матрице смежности
построить граф
a
b
c
d
a
0
1
1
0
b
1
0
1
0
c
1
1
0
1
d
0
0
1
0
Задание графов
Построить граф, если
задана матрица
инцидентности
u
v
w
x
a
1
0
0
0
b
1
1
1
0
c
0
1
0
1
d
0
0
1
1
Изоморфизм

Показать, что следующие два графа
изоморфны
Изоморфизм


Изобразить все попарно неизоморфные 4вершинные графы без петель и кратных
ребер.
Изобразить все попарно неизоморфные
несвязные 5-вершинные графы, не
имеющие петель, кратных ребер и
изолированных вершин.
Изоморфизм и степень вершин


Изобразить все попарно неизоморфные 6вершинные графы без петель и кратных ребер со
следующим набором степеней вершин (2, 2, 3, 3,
3, 5)
Изобразить все попарно неизоморфные не
имеющие петель и кратных ребер кубические
графы с 6 вершинами (кубические – однородные
(у которых все вершины – одинаковой степени)
графы со степенью 3)
Изоморфизм

Среди пар графов, изображенных на
рисунке, найдите пары изоморфных и
неизоморфных. Ответ обосновать.
Изоморфизм

Среди пар графов, изображенных на
рисунке, найдите пары изоморфных и
неизоморфных. Ответ обосновать.
Изоморфизм

Среди пар графов, изображенных на
рисунке, найдите пары изоморфных и
неизоморфных. Ответ обосновать.
Остов минимального веса
Задача нахождения остова минимального веса во взвешенном связном
графе, возникает при проектировании линий электропередачи,
трубопроводов, дорог и т.п., когда требуется заданные центры соединить
некоторой
системой
каналов,
связных
либо
непосредственно
соединяющим их каналом, либо через другие центры и каналы, так, чтобы
общая длина (или, например, стоимость) каналов связи была
минимальной. Решение этой задачи «слепым» перебором вариантов
потребовало бы чрезвычайно больших вычислений даже при
относительно малых n (можно доказать, что полный граф Kn содержит
nn–2 различных остовных дерева). Однако для ее решения имеются
эффективные алгоритмы. Опишем два из них - алгоритмы Дж. Краскала
(1956) и Р. Прима (1957), применяемые к произвольному связному графу
(G, w) порядка n.
Алгоритм Краскалла


Шаг
1.
Строим
граф
T1=On+e1,
присоединяя
к
пустому
графу
на
множестве вершин VG ребро e1∈VG
минимального веса.
Шаг 2. Если граф Ti уже построен и i<n–1,
то строим граф Ti+1=Ti+ei+1, где ei+1 – ребро
графа G, имеющее минимальный вес
среди ребер, не входящих в Ti и не
составляющих циклов с ребрами из Ti.
Задание
Дан граф, найти остов минимального
веса.

4
3
2
8
5
3
4
1
9
6
7
4
5
2
2
6
1
5
3
7
Задача о минимальной
связке

Найти остовное дерево графа с
наименьшим весом, используя алгоритм
2
Краскалла.
1
9
12
3
2
6
4
8
5
3
6
4
1
7
5
7
1
1
1
2
1
7
8
6
4
9
6
10
3
11
Волновой метод

Постановка
задачи.
Пусть
G
–
неориентированный связный граф, а и b –
две его вершины. Требуется найти цепь,
соединяющую вершины а и b и
содержащую наименьшее число ребер.
Волновой метод

1.
2.
3.
Алгоритм решения задачи волновым
методом.
Помечаем вершину а индексом 0.
Вершины, смежные с а и соединенные с
а, дугами, инцидентными вершине а,
помечаем индексами 1.
Вершины, смежные с помеченными
индексами 1 и соединенные с ними
инцидентными вершинам 1 дугами,
помечаем индексами 2.
Волновой метод
4.
5.
6.
Аналогично помечаем вершины
индексами 3, 4, …
Совокупность вершин, помеченных
индексом m, обозначим Am.
В некоторой момент будет помечена
вершина b, пусть b∈An. Останавливаем
процесс индексации.
Волновой метод
7.
8.
По построению можно найти вершину
b1∈An-1, смежную с b, по тем же
соображениям существует вершина
b2∈An-2, смежная с b1, и т.д.
Искомая цепь с наименьшим числом
ребер получается теперь как
последовательность вершин (b, b1, b2,
…, bn=a), где bi An-i, то есть нужно
двигаться, начиная от конечной
вершины b в сторону убывания индекса
вершины.
Задание

Найти все кратчайшие цепочки от b до а.
2
1
3
4
5
9
8
13
12
6
7
10
14
21
11
15 16
а
18
19
17
b
20
22
23
24
Условный радиус вершины

Если мы не будем останавливать
индексацию,
то
через
некоторое
количество шагов все вершины графа
будут снабжены индексами, причем
наибольший из них является условным
радиусом графа G относительно вершины
а.
 ra=max d(a, b)
Волновой метод

В
случае
ориентированного
графа
волновой метод позволяет решить две
задачи:
–
–

Найти длины кратчайших путей от вершины а
до остальных вершин графа;
Найти длины кратчайших путей от каждой
вершины графа до вершины а.
При
этом
в
основном
алгоритме
изменяется только построение множества
Аn.
Центр и диаметр графа





Расстоянием между вершинами a и b называется длина
кратчайшей цепи из a в b.
Радиус графа определяется как наименьший из условных
радиусов вершин графа.
Центром графа G называется такая вершина a, что
максимальное расстояние между a и любой другой
вершиной является наименьшим из всех возможных. Это
расстояние называется радиусом графа.
Диаметром d связного графа называется максимальное
возможное расстояние между любыми двумя его
вершинами.
Если расстояние между двумя вершинами равно диаметру
графа, то кратчайший путь, соединяющий эти вершины,
называется диаметральным путем, а подграф,
образованный вершинами и ребрами этого пути, –
диаметральной цепью.
Задание

Найти центр,
радиус и диаметр
графа
Задача о кратчайшей цепи




Задача о кратчайшем пути. Пусть задана сеть из n + 1
вершины, то есть ориентированный граф, в котором
выделены две вершины – вход (нулевая вершина) и выход
(вершина с номером n). Для каждой дуги заданы числа,
называемые длинами дуг.
Длиной пути (контура) называется сумма длин входящих
в него дуг (если длины дуг не заданы, то длина пути
(контура) определяется как число входящих в него дуг).
Задача заключается в поиске кратчайшего пути (пути
минимальной длины) от входа до выхода сети.
Известно, что для существования кратчайшего пути
необходимо и достаточно отсутствия в сети контуров
отрицательной длины.
Алгоритм Дейкстры

Алгоритм основан на приписывании узлам
временных
или
постоянных
меток.
Первоначально
только
источнику
приписывается постоянная метка, равная
нулю. Всем другим узлам приписываются
временные метки, соответствующие весу
дуги из источника в рассматриваемый
узел. Если такой дуги нет, то узлу
приписывается временная метка, равная
бесконечности.
Алгоритм Дейкстры

Для
определения
ближайшего
к
источнику узла выберем временную
метку с минимальным значением и
объявим ее постоянной. Затем, до тех
пор, пока стоку не будет приписана
постоянная
метка,
необходимо
выполнить следующее:
Алгоритм Дейкстры
1.
2.

Рассмотреть оставшиеся узлы с временными
метками. Сравнить величину каждой временной метки
с суммой величин последней из постоянных меток и
веса дуги, ведущей из соответствующего постоянно
помеченного узла в рассматриваемый. Минимальная
из двух сравниваемых величин определяется как
новая временная метка рассматриваемого узла.
Среди временных меток выбрать минимальную и
объявить ее постоянной.
После
постоянного
помечивания
стока
алгоритм прекращает работу, при этом
минимальная сумма весов дуг, соединяющий
источник и сток, равна постоянной метке стока.
Искомая цепь состоит из дуг, для каждой из
которых разность между постоянными метками
ее концевых узлов равна весу этой дуги.
Задание 1

Дана сеть. Определить ориентированную цепь
из узла S в узел t, сумма весов дуг которой
минимальна.
V1
1
V2
10
2
2
3
3
6
S
t
3
V3
3
1
7
5
V4
1
V5
Задание 2

Дана сеть. Определить ориентированную
цепь из узла S в узел t, сумма весов дуг
4
которой минимальна.
3
2
8
5
3
1
9
6
S
4
t
7
4
5
2
2
6
1
5
3
7
Задание 3

Дана сеть. Определить ориентированную
цепь из узла S в узел t, сумма весов дуг
V2
5
которой минимальна.
12
V
V1
5
3
9
8
S
2
6
6
4
V4
V5
3
4
3
8
t
7
2
12
V6
8
V7
V8