Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
full_v2.doc
Скачиваний:
12
Добавлен:
01.07.2025
Размер:
13 Мб
Скачать
☆

Модуль 4. Основы Теории графОв (2 кредита) Комплексная цель и задачи изучения модуля

Цель Модуля 4 – дать представление о фундаментальных понятиях, базовых принципах и законах одного из важнейших разделов дискретной математики − теории графов, рассмотреть постановку основных задач и проблем, изучить вопросы методологии решаемой проблемы.

В результате освоения Модуля 4 студент должен быть готов продемонстрировать следующие компетенции и уровень подготовки:

  1. знание основных понятий теории графов;

  2. умение оценивать и определять временную сложность алгоритмов решения задач на графах;

  3. знание основных определений и понятий теории графов;

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

  5. знание основных тождеств, теорем и законов теории графов;

  6. практические навыки использования основных графовых алгоритмов для решения различных оптимизационных задач.

Самостоятельная работа предусматривает проработку лекций (1,2 часа в неделю), тестирование, а также изучение литературы, формулировку цели работы, объекта и задач исследования, методов, источников и средств библиографического поиска, использованных для достижения поставленной цели.

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

Математика – это не просто созданное человеком мощное оружие познания, а средство, которое позволяет нам осуществлять надежный контакт с высшей объективной реальностью, в огромной степени расширяя пределы информационных каналов, непосредственно связанных с нашими органами чувств.

М. Клайн

Глава 15. Введение в теорию графов

Ключевые слова: Граф, вершина, ребро, дуга, петля, мультиграф, матрица смежности, матрица инцидентности, полный граф, конечный граф, нуль ─ граф, двойственный граф, локальная степень, подграф, суграф, регулярный граф, операции над графами, маршруты, цепи, циклы, связность, компонента связности, разбиение графа, разрез, блок, точка сочленения, мост, неразделимый граф, алгоритм определения кратчайших маршрутов в графе

Цели

Освоив эту главу, студенты должны:

  • знать способы задания графов;

  • уметь выполнять операции над графами;

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

  • уметь строить платоновы графы;

  • определять для любого вида графа его двойственный;

  • знать определение нечеткого графа и различать нечеткие неориентированные графы первого и второго рода;

  • строить подграфы и суграфы на смешанном графе, мультиграфе;

  • определять маршруты, цепи, циклы в произвольном графе;

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

  • выполнять разбиение графа;

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

  • определять кратчайшие пути в графе на основе алгоритмов Дейкстры и Форда.

15.1. Способы задания графов и виды графов

15.1.1. Способы задания графов

При изучении взаимосвязи между объектами (взаимоотношений людей в коллективах, связей в ЭВА, в молекулах, микросхемах и т.п.) исследуемый объект обозначается точками и соединяющими их линиями. Такое изображение ввиду наглядности позволяет определять наиболее существенные связи, находить оптимальное решение задачи, определять ошибки в рассуждениях и т.д. Описание, состоящее из точек и соединяющих их линий, оказывается удобной моделью любого объекта, в связи с чем представляет интерес исследование самого этого объекта.

Теория графов оперирует формальными моделями объектов, имеет дело со свойствами самих графов независимо от того, какова природа объектов, описываемых графами. Использование аппарата теории графов для разработки алгоритмов в науке и технике приводит к повышению эффективности и качества создаваемых объектов.

Понятие графа опирается на понятие множества. Графом можно назвать объект, состоящий из двух множеств: точек и линий, которые находятся между собой в некотором отношении. Множество точек графа обозначается X = {x1, x2, …, xn}, |X| = n и называется множеством вершин. Множество линий, соединяющих любые пары вершин, (xi, xj)  X называется множеством ребер или дуг и обозначается U = {u1, u2, …, um}, |U| = m.

Граф, у которого все вершины “помечены” целыми числами от 1 до n, называется помеченным. Числа 1, 2, …, n называют метками графа и обозначают вершины графа G через 1, 2, …, i, …, n или x1, x2, …, xi, …, xn, или x(1), x(2), …, x(i), …, x(n). Причем все вышеуказанные записи являются равносильными. Заметим, что для реальных задач необходима нумерация элементов. Поэтому в дальнейшем будем рассматривать помеченные графы. Аналогичным образом помечаются ребра.

Тогда графом можно считать математический объект, который обозначается G = (X ,U) и состоит из множества вершин и множества ребер или дуг, находящихся между собой в некотором отношении.

В общем случае множество линий, соединяющих любые пары вершин U, можно представить в виде U = , где  ─ подмножество неориентированных линий, для которых несуществен порядок соединения вершин. Подмножество называется подмножеством ребер. Причем каждое ребро ui  определяется неупорядоченной парой вершин xk, yl, которые оно соединяет. Записывается ui = (xk, yl) или ui = (yl, xk).

─ подмножество ориентированных линий, для которых существен порядок соединения вершин. Подмножество называется подмножеством дуг. Причем каждая дуга ui  определяется упорядоченной парой (кортежем длины два) вершин xk, yl, которые ui соединяет. Записывается ui = <xk, yl>. Заметим, что ui = <xk, yl> и uj = <yl, xk> ─ это различные дуги в графе G.

─ подмножество линий, каждая из которых выходит и входит в одну и ту же соответствующую этой линии вершину. Называется подмножеством петель. Каждая петля ui  может определяться упорядоченной или неупорядоченной парой, например вида ui = <xk, xk>, ui = (xk, xk).

Граф G = (X, U), у которого , ,  , называется смешанным. На рис. 15.1 показан смешанный граф G. Здесь |X| = 6, |U| = 13; U =    ; = {u3, u4, u7, u9, u10, u11}; = {u1, u2, u8, u12, u13}; = {u5, u6}.

Рис. 15.1. Смешанный граф G

Граф G = (X, U), у которого U = , а = , называется ориентированным, или орграфом. Орграф будем обозначать D = (X, U) или G = {X, }.

Заметим, что подмножество петель можно рассматривать как ориентированные, так и неориентированные ребра. Обычно всегда оговаривают, когда рассматривается граф с петлями. Граф G, у которого U = , называется неориентированным графом, или неорграфом. Графы, не содержащие петель и кратных ребер, называются простыми.

Рассмотрим сначала неорграфы с петлями и без петель, которые будем называть графами. Граф G, у которого существует хотя бы одна пара вершин, соединяемых m ребрами ui  U, называется мультиграфом, а максимальное m ─ мультичислом графа G (m  {2, 3, …}). Ребра, соединяющие одну и ту же пару вершин, называются кратными. На рис. 15.2 показан пример мультиграфа (m = 4).

Рис. 15.2. Мультиграф G

Если ребро uk  U графа G = (X, U) соединяет вершины xi, xj  X, т.е. uk = (xi, xj), то говорят, что ребро uk – инцидентно вершинам xi, xj. Верно и обратное, вершины xi, xj инцидентны ребру uk. Любые две вершины xi, xj  X графа G называются смежными, если существует соединяющее эти вершины ребро uk  U, т.е. uk = (xi, xj). Если два ребра uk, ui  U инцидентны одной и той же вершине, то они также называются смежными.

Основными способами задания графа G = (X, U) являются геометрический, аналитический и матричный. Основой геометрического способа задания графа является рисунок, дающий изображение графа. Изображение графа в виде рисунка обладает наглядностью, раскрывает содержательный смысл представляемого объекта, но не формально.

Рассмотрим аналитический способ задания графа. Согласно Н. Бурбаки, граф записывается как G  B = X × X. К. Берж предлагает задавать граф как соответствие Г между подмножествами множества вершин. При этом граф можно задать в виде G = (X, Г), где Г  X  X, Г = {Гx1, Гx2, …, Гxn}. Здесь Г ─ это отображение множества Х в множество Х. Например, пусть задан граф G = (X, Г) (рис. 15.3). Тогда |X| = 6, X = {x1, x2, …, x6}, Г = {Гx1, Гx2, …, Гx6}, Гx1 = {x2, x5, x6}, Гx2 = {x1, x3, x5, x6}, Гx3 = {x2, x4}, Гx4 = {x5, x6}, Гx5 = {x1, x2, x4}, Гx6 = {x1, x2, x4}.

Учитывая вышесказанное, граф часто рассматривают как пару G = (X, Г), образованную множеством X и отображением Г множества X в себя.

Отметим, что для однозначного задания графов достаточно использовать Гx1, Гx2, …, Гxn-1 отображений. В этом случае элементы xi, определяющие Гxi, не включают в отображение Гxi+1; в отображение Гxi+2 не включают элементы xi, xi+1 и т.д. Соответственно в последнее отображение Гxn-1 не включают элементы x1, x2, …, xn-2. Тогда рассматриваемый граф G (рис. 15.3), может быть задан следующим образом: Гx1 = {x2, x5, x6}, Гx2 = {x3, x5, x6}, Гx3 = {x4}, Гx4 = {x5, x6}, Гx5 = .

Рис. 15.3. Граф G

Такое представление графа позволяет экономить память ЭВМ и исключать избыточную информацию при представлении графа аналитическим способом.

Большинство задач информатики удобно решать при использовании матричного задания графов. Квадратная таблица R = ||ri,j||nxn называется матрицей смежности, если ее элементы образуются по правилу:

Заметим, что для мультиграфа

Очевидно, что для рассматриваемых неорграфов ri,j = rj,i и для задания графа можно использовать треугольную матрицу R. Для графа без петель ri,i = 0, для графа с петлями ri,i  0. Для графа G (см. рис. 15.3) треугольная матрица смежности имеет вид

x1

x2

x3

x4

x5

x6

x1

0

1

0

0

1

1

.

x2

0

1

0

1

1

R = x3

0

1

0

0

x4

0

1

1

x5

0

0

x6

0

Строки и столбцы матрицы R соответствуют вершинам графа G. На пересечении xi строки и xj столбца ставится элемент ri,j, соответствующий числу ребер, соединяющих вершины xi и xj. Заметим, что строки и столбцы матрицы R также можно нумеровать числами натурального ряда, соответствующими индексам помеченных вершин графа. Петли в графе изображаются элементами ri,j, расположенными по главной диагонали матрицы R.

Преимущество использования матриц смежности – это простота и формальность преобразований над графами.

Основной недостаток применения матрицы смежности заключается в том, что она занимает в ЭВМ память объемом |X|2 даже тогда, когда граф содержит только |X| ребер. Устранением этого недостатка является представление графа в виде списков. Списком смежности для вершины xi является совокупность всех вершин, смежных с xi. Представление графа в виде списков смежности требует памяти ЭВМ порядка |X| + |U|. В основном таким представлением графа пользуются, когда |U| << |X|2. Для графа G (см. рис. 15.3) список смежности имеет следующий вид:

x1

x2

x5

x6

0

x2

x1

x3

x5

x6

,

RL = x3

x2

x4

0

0

x4

x3

x5

x6

0

x5

x1

x2

x4

0

x6

x1

x2

x4

0

а для треугольной матрицы

x1

x2

x5

x6

1

2

5

6

x2

x3

x5

x6

2

3

5

6

.

RL= x3

x4

0

0

или RL=3

4

0

0

x4

x5

x6

0

4

5

6

0

x5

0

0

0

5

0

0

0

x6

0

0

0

6

0

0

0

Заметим, что рассмотренные списки составлены по наличию ребер, соединяющих вершины. Списки могут составляться также по отсутствию связей (по умолчанию).

Прямоугольная таблица вида I = ||ik,l||nm называется матрицей инцидентности, если ее элементы образуются по правилу:

Матрица инцидентности для G (см. рис. 1.3) имеет вид

u1

u2

u3

u4

u5

u6

u7

u8

u9

x1

1

1

0

0

0

0

1

0

0

.

x2

1

0

1

1

0

0

0

1

0

I = x3

0

0

0

1

1

0

0

0

0

x4

0

0

0

0

1

1

0

0

1

x5

0

1

1

0

0

1

0

0

0

x6

0

0

0

0

0

0

1

1

1

Строки матрицы I соответствуют вершинам графа, столбцы – ребрам, а элемент ik,l указывает на инцидентность вершины xk и ребра ul. В каждом столбце матрицы I расположено по две единицы, так как каждое ребро соединяет ровно две вершины. При наличии в графе петель соответствующие им столбцы в матрице I будут иметь по одной единице, так как петля соединяет только одну вершину графа.

А. Кофман предлагает задавать булеву матрицу как шахматную доску. Заштрихованным клеткам в булевой матрице соответствуют нули, а незаштрихованным – единицы или наоборот. Такую булеву матрицу называют сотами, так как в различных задачах на графах необходимо размещать объекты по ячейкам, объединенным в соты.

Известно, что число ячеек в матрице (сотах) размером m × n равно 2mn. Соты порядка n содержат n2 ячеек. Тогда число ячеек матрицы с k запретными элементами (соответствующие элементы булевой матрицы – нули) равно

.

Предполагается, что выполняются следующие условия:

  • соты (матрица) имеют порядок n;

  • в каждой ячейке матрицы располагается не более одного объекта (т.е. ноль или единица).

В этом случае ячейки матрицы разбиваются на два подмножества:

  • ячейки, обладающие неким свойством;

  • ячейки, не обладающие этим свойством.

Тогда, согласно А. Кофману, говорят, что граф (рис. 15.4)

Рис. 15.4. Граф G

может быть реализован в виде матрицы:

,

где закрашенным элементам матрицы соответствуют ребра графа G.

Такая запись представляет интерес для нечеткого задания графов. При этом каждому ребру можно поставить в соответствие функцию принадлежности.

Кёниг и К. Берж под графом понимают разбиение теоретико-множественного произведения некоторого счетного множества на себя, на две части.

Графы иногда представляют в латинской матрице. Для графа G (рис. 15.4) такое представление имеет вид

.

Латинская матрица удобна для задания как ориентированных, так и неориентированных графов (неорграфов). Причем, в неорграфах значение элемента матрицы i, j = j, i ( в ориентированных графах наоборот, i, jj, i).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]