- •Виды графов
- •Изоморфизм
- •Матричное задание графа
- •Свойства матрицы смежности
- •Операции над графами
- •Достижимость и связность
- •Матрицы достижимости и контрдостижимости
- •Нахождение сильных компонент
- •Конденсация графа
- •Базы и антибазы
- •Построение компонент связности в неориентированном графе
- •Построение компонент связности в ориентированном графе
- •Система независимых циклов
- •Дерево. Остов граф
- •Процесс восстановления дерева по набору
- •Алгоритм построения произвольного остова
- •Определение минимального остова
- •Алгоритм построения системы независимых циклов графа
- •Определение кратчайшего пути на графе методом Дейкстры
- •Модификация Форда
- •Алгоритмы поиска всех кратчайших путей
- •Алгоритм Флойда
- •Алгоритм Флойда
- •Алгоритм Данцига
- •Алгоритм Данцига
- •Раскраска
- •Метод построения функции Гранди на графе
- •Свойства хроматического числа
- •Гамильтоновы пути, контуры и задача Коммивояжера
- •Метод Роберта и Флореса (перебор-метод для орграфов)
- •Применение метода ветвей и границ к решению задачи Коммивояжера.
- •Потоковые алгоритмы
- •Алгоритм поиска увеличивающего пути
- •Алгоритм поиска максимального потока
- •Алгоритм Форда и Фалкерсона
- •Модификация алгоритма поиска максимального потока при нескольких источниках и стоках
- •Алгоритм поиска потока минимальной стоимости
- •Алгоритм поиска потока минимальной стоимости
- •Алгоритмы построения покрывающих деревьев
- •Алгоритм построения покрывающего дерева славик?!! последняя :-(
Графы. Основные понятия и определения.
Граф - первичное понятие. Граф задается двумя множествами: множеством вершин и множеством рёбер. Пример задания графа: G=G(X,A).
Если ребра графа ориентированы, то и сам граф ориентированный. Ребра-дуги. Если же ребра не ориентированы, то и сам граф является неориентированным.
В случае, когда мы имеем ориентированный граф, но пренебрегаем ориентацией его дуг, то мы называем его ориентированным дубликатом G=G(X,Ā)
Второй тип задания графа - задание множества вершин Х и отображение множества во множество Х. G=G(X, Г)
Пример:
Рис.1
Если граф не ориентированный, и мы хотим представить его 2-м способом, то необходимо каждое ребро заменить 2 дугами, противоположно направленными (рис.2)
х2
х2
Рис.2
.
Две вершины xi и xj называются граничными дуги, если xi – начало, а xj – конец. Эти вершины называются смежными.
Две дуги аi и аj – смежные, если они различны, но имеют общую граничную точку.
Вершина изолирована, если она не соединена с другими вершинами графа.
Говорят, что дуга аi исходит из вершины xi , если xi начало, а не конец, и дуга заходит в вершину хi , если хi является концом дуги аі, но не является началом (рис. 3)
ai
ai
ai
xi
xi
x1
Рис. 3
Общее число дуг, инцидентных вершине xi, является степенью вершины и обозначается .
Вершины, степень которых больше 2, называются узлами.
Полустепень захода обозначает количество дуг, заходящих в вершину xi, и обозначается .
Полустепень исхода обозначает количество дуг, исходящих из вершины xi и обозначается .
Имеет смысл следующая формула: .
Вершина xi называется входом, если , а .
x1
a1
x2
a2
a4
a3
x3
x5
a5
x4
не вход
вход
Рис. 4
Последовательность линий на графе.
Путем в графе называется такая последовательность дуг , в которой конец предыдущей дуги является началом последующей. Путь может быть конечным и бесконечным. Путь простой, если в нем ни одна дуга не встречается дважды. Путь составной, если в нем какая-либо из дуг встречается более одного раза.
Путь, проходящий через все вершины только 1 раз, называется Гамильтоновым.
Путь, содержащий все дуги графа по одному разу, называется Эйлеровым.
Длина пути – это число дуг последовательности
Ветвь – это путь, в котором начальная и конечная вершины являются узлами.
Дуга называется замыкающей, если ее удаление из графа не приведет к аннулированию пути
x1
x3
x5
x2
x4
-замыкающая ветвь
Рис. 5
Контур- это конечный путь, начинающийся и заканчивающийся одной и той же вершиной.
Контур единичной длины называется петлей.
x1
Рис.6
На контур распространяются все определения, введенные для пути.
Все раннее приведенные понятия, рассмотрены на примере ориентированных графов.
В случае неориентированных графов, существуют аналогичные понятие, которые имеют другие названия.
Ориентированный граф |
Неориентированный граф |
Дуга |
Ребро |
Путь |
Цепь |
Контур |
Цикл |
Виды графов
G=G(X, A) - нуль-граф, если он состоит только из изолированных вершин. Справедливо соотношение
Если степень всех вершин графа одинакова, то этот граф однородный.
x2
x1
x3
x4
однородный граф
Рис.6
Граф G(X,A), в котором любые две смежные вершины соединены двумя противоположно ориентированными дугами, называется симметрическим (рис.7).
x2
x1
x3
Рис.7
x2
x1
x3
x4
||- Гамильтонов путь
Рис.8
В полном графе всегда имеется Гамильтонов путь.
Если хотя бы 2 вершины соединены более чем 1 дугой (ребром), то это мультиграф. Наибольшее количество дуг (ребер), соединяющих смежные вершины в мультиграфе, называется его кратностью.
М
x3
x4
x6
x1
x2
x3
Рис.9
Изоморфизм
Два графа G1 и G2 – изоморфные, если существует взаимнооднозначное соответствие между множествами их вершин, обладающее тем свойством, что число ребер, соединяющих любые 2 вершины в графе G1 , равно числу ребер соединяющих соответствующие вершины в графе G2 (рис.10)
х1 х2 х3 х1 х4
х6 х2
х4 х5 х6 х3 х5
Рис.10
Для ориентированных графов еще необходимо выполнение условия .
Г
x2
x5
x3
x5
x6
x3
x2
x6
x1
x4
x1
x4
Изоморфный граф
Рис.11
Грань плоского графа - область плоскости, ограниченная ребрами и не содержащая в себе ни вершин, ни ребер. Число граней находится по формуле , где m-число ребер, а n-число вершин графа.
Неограниченная область плоскости, лежащая за пределами графа, называется бесконечной гранью. Все остальные грани - конечные.
Две грани смежные, если их края имеют хотя бы одно общее ребро. Грани, которые соприкасаются в отдельных вершинах - не смежные.
Для плоского графа можно построить двойственный ему граф G*, используя 3 правила:
Определить число граней исходного графа с учетом внешней грани.
В каждой грани графа G ставится вершина графа G*. Петля исходного графа рассматривается как грань.
Вершина графа G* соединяется ребрами в том случае, если они лежат на гранях, имеющих общее ребро, причем ребро, соединяющее эти 2 вершины двойственного графа, должно обязательно проходить через общее ребро исходного графа. Если у 2 граней, на которых лежат вершины графа G* , имеется несколько общих ребер, то эти вершины соединяются столькими ребрами, сколько общих ребер имеет грань. Это справедливо как для внешних, так и для внутренних граней. Висячему ребру исходного графа соответствует петля в графе G*, которая проведена из вершины внешней грани двойственного графа таким образом, чтобы висячая вершина оказалась внутри этой петли (рис.12)
–
висячее ребро
исходный граф G
двойственный граф G*
Рис.12
Подмножество графов
Подграфом графа G(X,Г) называется граф G(B, ГВ), определяемый следующим образом:
Множество вершин В подграфа являются некоторым подмножеством вершин графа G(X, Г), .
Отображением каждой вершины подграфа является пересечение отображения той же вершины графа G(X,Г) со всем подмножеством вершин В, .
В этом примере мы изобразим схему построения подграфа G(B,ГВ) для заданного графа G(X,Г) (рис. 13)
Задание: «Построить подграф ». Иллюстрация этой задачи приведена выше.
Частичным графом для графа G(X, Г) называется граф G(X, F), в котором содержатся все вершины исходного графа и некоторое подмножество дуг исходного графа . То есть, от исходного графа сохраняются вершины и некоторые дуги.
Частичным подграфом графа G(X, Г) называется граф G(B, Г), в котором вершины В являются подмножеством вершин Х, а отображение F меньше пересечения отображений исходного графа со всеми вершинами частичного подграфа G(B, F), то есть:
Фактором графа G(X,Г) называется частичный граф, в котором каждая вершина обладает полустепенями захода и исхода равными 1.
Базисным графом называется ориентированный частичный граф, образованный из исходного удалением петель и замыкающих дуг (рис.14)
x1
x2
x1
x2
x3
x3
x6
x4
x6
x4
x7
x5
x7
x5
Рис.14