- •Часть 4. Элементы теории графов.
- • Понятия графа.
- • Способы задания графов.
- • Операции над графами.
- • Булевы матрицы и операции над ними.
- • Метод поиска в глубину.
- •Эйлеровы и гамильтоновы циклы.
- •Связность. Компоненты связности.
- •Матрица связности.
- •Транспортные сети.
- •Эйлеровы графы.
- •3. Для каждого из подмножеств уточняем оценки, вычитая из строчек и столбцов минимальные элементы и прибавляя вычтенные числа к предыдущей оценке:
- •Метод ветвей и границ.
- •Задача о потоках в сетях.
Булевы матрицы и операции над ними.
Матрицу, состоящую из нулей и едениц, будем называть булевой матрицей.
Матрицы смежности графов и орграфов без простых ребер (дуг), а также матрицы инцидентности неориентированного графа является булевыми.
Изоморфизм графов.
Пусть G1 и G2 - граф без петель и кратких ребер.
Графы G1=<M1, R1> и G2=<M2, R2> называются изоморфными, если существует взаимно однозначное отображение : M1M2 сохраняющее смежность, то есть ребро (m', m")M1 тогда и только тогда, когда ребро ((m'), (m"))M2.
Из определения следует, что изоморфные графы отличаются лишь обозначением вершин.
Введем понятие степени вершины графа (орграфа).
Степенью вершины m неориентированного графа называется число (m) ребер графа, инцидентных данной вершине m.
Изолированная вершина имеет степень 0, висячая - 1, петель в неориентированного графа увелиивает степень соответствующей вершины на 2.
Полу степенно исхода (захода) вершины m орграфы А называется число +(m) (-(m)) дуг орграфа, исходящих из вершины m (заходящих в вершину m).
Петля на вершине орграфа увеличивает +(m) и -(m) на 1.
Свойства изоморфизма:
1) если графы G1 и G2 изоморфы; и : M1M2 - биективное отображение, сохраняющее смежность, то
- количество вершин и количество ребер в G1 и G2 одинаковы;
- mM1 (m)=((m)), то есть изоморфизм сохраняет степень вершины.
2) Если орграфы D1 и D2 изоморфы и : M1M2 - биективное отображениt, сохраняющее смежность, то mM1 +(m)=+((m)), –(m)=–((m)).
количество вершин и количество дуг измороф графов равны.
П ример
M 1={1,2,3,4,5}
R1={(1,2),(2,1),(2,5),(5,2),(2,4),(4,2),(2,3),(3,2),(3,4),(4,3)}
Хотим построить изоморф ему.
При сравнении двух графов и проверки того, являются ли они изоморфными
1) Сравниваем количество вершин и ребер - если не равны, то граф точно не изоморфа.
2) Подсчитываем количество вершин с одинаковой степенью
в первом графе:
во втором графе:
если k0t0, k1=t1, …, km=tm, то граф не изоморф.
Но можно привести пример графов, у которых все эти условия выполняются, но тем не менее эти графы не изоморфы, то есть таких биективное отображение , которое бы сохраняло смежность:
Метод поиска в глубину.
Один из способов систематического исследования всех вершин графа основан на процедуре прохождения графа методом поиска с возвращением, который исследует граф в глубину.
Метод основан на:
1) как расширять исследуемый путь, если это возможно (выбирают еще не исследованный путь).
2) Как выходит из тупика (возвращается по исследованному пути и делает другой выбор на самом близком так, если это возможно)
на неориентированном графе поиск в глубину осуществляется так: Когда посещаем вершину xX, то далее идем по одному из ребер (x, y), инцидентному вершине y. Если вершина y уже пройдена (посещалось ранее), то возвращаемся в x и выбираем другое ребро. Если вершина y не пройдена, то заходим в нее и применяем процесс прохождения рекурсивно уже с вершиной y. Если все ребра инцидентные вершине x, просмотрены, то идем назад по ребру (s, x), по которому пришли в x и ????????????????? вершине s.
Способы задания графов.
Задать граф - значит описать множество его вершин и ребер.
1) графическое изображение.
2) матричное представление:
- матрица смежности ориентированного помеченного графа с n вершинами - это матрица A=[ai j], i, j=1,2,…,n , в которой
ai
j
bi
j
bi
j
0, если вершины xi, xj не связаны ребром (xi, xj)
- матрица ицидентности для неориентированного графа с n вершинами и m ребрами - это матрица B=[bi j], i=1,2,…,n, j=1,2,…,m строки которой соответствуют вершинам, а столбцы - ребрам.
1, если вершина xi инцидентна ребру uj.
0, если вершина xi не инцидентна ребру uj.
- матрица инцидентности для ориентироанного графа:
+1, если ребро uj выходит из вершины xi
-1, если ребро uj входит в вершину xi
0, если вершина xi не инцидентна ребру uj.
- матрица весов графа (граф называется взвешенным, если каждому его ребру сопоставляется число) - это матрица W=[wi j], где wi j - вес ребра, соединяющего вершины i, j=1,2,…,n. Веса несуществующих ребер полагают равными 0 или в зависимости от приложений.
- список ребер графа: каждое ребро представляется парой инцидентных ему вершин: задаются 2 массива r=(r1,r2,…,rm) и t=(t1,t2,…,tm) , где m - количество ребер в графе. Каждый элемент в массиве есть метка вершины, а i-e ребро графа выходит из вершины ri и входит в вершину ti.
- структура смежности графа: для каждой вершины графа составляются списки вершин, смежных с ней.