- •Белгородская государственная
- •Введение
- •1. Определение графа
- •2. Представление графов в памяти эвм
- •3. Некоторые понятия и определения теории графов
- •4. Операции над графами
- •5. Связность
- •5.1. Построение покрывающих деревьев
- •5.2. Поиск на графах
- •Поиск в глубину
- •Поиск в ширину
- •5.3. Сильная связность
- •5.4. Транзитивное замыкание орграфа
- •Алгоритм следует из выражения 5.1
- •6. Расстояние
- •6.1. Поиск кратчайших путей между отдельными вершинами графа
- •6.2. Поиск кратчайших путей между каждой парой вершин графа
- •7. Потоки
- •7.1. Условия существования потока
- •7.2. Поиск увеличивающей цепи
- •7.3. Поиск максимального потока
- •7.4. Поиск потока минимальной стоимости
- •7.5. Задача почтальона для орграфа
- •Список литературы
4. Операции над графами
Общепринятыми унарными операциями над графами являются следующие операции:
1. Удаление вершины. Обозначение H=G-v, гдеHиGрезультирующий и исходный графы соответственно,v– удаляемая вершина.
2. Удаление ребра. Обозначение H=G-e, гдеe– удаляемое ребро.
3. Стягивание ребра.
В определённом смысле двойственными к этим операциям являются операции:
4. Добавление вершины. Обозначение H=G+v, гдеv– добавляемая вершина.
5. Добавление ребра. Обозначение H=G+e, гдеe– добавляемое ребро.
6. Расщепление вершины.
Смысл 1,2,4,5 операций очевиден. Рассмотрим подробнее 3 и 6 операции.
Стягивание ребра {u,v} обозначает отождествление смежных вершинu иv.
Для отождествления вершин uиvграфаGнеобходимо выполнить следующие действия:
H=G-u-v+v- получить графHпутем удаления из исходного графаGотождествляемых вершинu,vи добавления новой вершиныv.
в графе Hсоединить вершинуvребром с каждой вершиной, смежной с вершинойu, а затем с каждой вершиной, смежной с вершинойv, в графеG.
Примеры отождествления вершин и cтягивания ребра представлены на рис. 4.1.
Отметим, что в общем случае при выполнении операции отождествления вершин графа могут образоваться кратные рёбра, то есть результатом такой операции будет мультиграф. Один из таких случаев проиллюстрирован на рис. 4.2.
Пусть v- одна из вершин графаG. Разобьём множество смежных ей вершин (её окружение) на два произвольных подмножестваM иNи выполним следующее преобразование графаG:
1) удалим вершину vвместе с инцидентными ей рёбрами;
2) добавим новые вершины u иwи ребро {u,w};
3) вершину uсоединим ребром с каждой вершиной из множестваM, а вершинуw- с каждой вершиной из множестваN.
Теперь рассмотрим две бинарные графовые операции: объединение и произведения графов.
Граф H=(V,E) называетсяобъединением графовF=(V1,E1) иG=(V2,E2), еслиV=V1V2,E=E1E2.
Для обозначения операции объединения графов используется запись H=FG. Пример операции объединения графов показан на рис. 4.3.
Объединение графов F=(V1,E1) иG=(V2,E2) называетсядизъюнктивным, еслиV1V2=.
Аналогично определяется объединение и дизъюнктивное объединение любого множества графов, причём в последнем случае никакие два из объединяемых графов не должны иметь общих вершин.
Пусть Gi=(Vi,Ei), (i=1,2) – два графа.Произведением графовG1G2называется графG=(V,E), гдеV=V1V2– декартово произведение множеств вершин исходных графов, а множествоEформируется по правилу: вершины (u1,u2) и (v1,v2) смежные в графеGтогда и только тогда, когда илиu1=v1, аu2иv2смежные вG2, илиu2=v2, аu1иv1смежные вG2(рис. 4.4.)
Очевидно, что число вершин графа G=(V,E), полученного в результате произведения графовG1=(V1,E1) иG2=(V2,E2), равно произведению числа вершин графовG1иG2, то есть |V|=|V1||V2|, а число рёбер определяется так: |E|=|V1||E2|+|V2||E1|.
С помощью операции произведения вводится понятие n-мерного куба,n-мерный кубQnопределяется рекуррентно:
Q1=K2, гдеK2– полный граф порядка 2,
Qn=K2Qn-1, n>1.
Очевидно, что Qn– граф порядка 2n, вершины которого можно представить (0,1)-векторами длиныnтаким образом, что две вершины будут смежные тогда и только тогда, когда соответствующие векторы различаются ровно в одной координате.
Упражнения:
1. Нарисуйте кубы Q1,Q2 иQ3. Определите число рёберn-мерного куба.
2. Постройте алгоритмы, реализующие операции над графами. Какие структуры данных для хранения графов удобнее при реализации тех или иных операций?