Матрица инцидентности.

Задание графа

Связность

Если для двух вершин существует цепь, то они называются связанными. Граф называется связным, если у него все вершины связны. Таким образом, если граф не связан. то из него можно выделить связные подграфы, называемые компонентами связности..

 

 
 

 


Рис. 35. Связный граф

 

 

 


Рис.36. Граф с двумя компонентами связности

 

1. Матрица смежности.

Пусть имеется граф G с n вершинами. Рассмотрим квадратную матрицу n ´ n, элементами которой являются 0 и 1.

а ij =

 

V V V… V

А =

Эта матрица называется матрицей смежности, и она симметрична относительно главной диагонали.

Пример Дан граф

 

Матрица смежности

V V V V4

А =

Рис. 37. Пример задания графа матрицей смежности

Матрица инцидентности устанавливает связь вершин и инцидентных с ней ребер.

bij =

Пример V l 2 V

l 1

l 3

V1 V4

Матрица инцидентности

 

V V V V4

 

Рис.38. Задание графа матрицей инцидентности

 

4. Список смежности.

В списке смежности нужно указывать вершину и смежные с ней вершины.

 

V (V, V);

V (V, V);

V(V, V, V);

V(V, V);

V(V, V);

V(V, V, V);

V(V);

V(V);

 

Рис. 39. Задание графа списком смежности

 

Задание графа в виде списка смежности полезно при решении задачи обхода всех вершин графа: обследовать все вершины графа, побывав в каждой 1 раз.

Различают два метода решения этой задачи:

1) Поиск в глубину.

2) Поиск в ширину.

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

Пример: См. рис. 39

Пусть начальная вершина ─ V(метка 1). В списке смежности вершины Vчислится V(метка 2). В списке смежности V─ вершина V(метка 3). В списке смежности вершины Vимеются вершины V,V,V.

Vуже помечена. Из Vследуем в V(метка 5). VV ( метка 6). Аналогично, VV(метка 7). Теперь возвращаемся в V. Все вершины помечены. Аналогично и в V,V, V. В списке смежности Vимеется непомеченная вершина ─ V(метка 8). В списке Vвсе вершины помечены. Возвращаемся в V. Здесь тоже все помечены. Следовательно, обход графа завершен. См. рис. 40

 

 

Рис. 40. Граф с помеченными вершинами при обходе в глубину

 

Приведенный нами алгоритм убеждает в справедливости теоремы:

Если граф конечен и связан, то при обходе в глубину каждая вершина обходится по одному разу.

Замечание:

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

Поиск в ширину. Смысл поиска в ширину заключается в том, что некоторую вершину V мы объявляем начальной ─ V. Перебираем весь список смежности этой вершины. Когда список исчерпан, т.е. все вершины, достижимые из V, помечены, мы переходим к первой вершине из помеченных. Затем, исчерпав список этой вершины, переходим ко второй вершине из первых помеченных и так далее до тех пор, пока не останется непомеченных вершин.

Пример: См. рис. 41.

Пусть V7 (метка 1) ─ начальная вершина. В списке смежности у вершины Vвершина V6 (метка 2). Больше нет вершин в списке смежности V. Переходим в V. V(V, V, V). Назначаем метку вершине V(метка 3). V─ помечена, V( метка 4). Список вершины Vисчерпан. Переходим в вершину V(V, V, V). Вершины V(метка 5), V(метка 6). Возвращаемся в список вершины V. Вершины Vи V─ помечены. Возвращаемся в V, и переходим затем в вершину V: V(V, V). V(метка 7). Возвращаемся в Vи переходим в V. V(V, V). Переходим в V. Все вершины из списка Vпомечены. Переходим в V. Список V─ помечен. Непомеченных вершин не осталось. Поиск в ширину закончен.

 

 

Рис 41. Метки вершин графа при поиске в ширину

 

Ясно, что последовательность поиска в глубину и в ширину зависит от выбора V.