Матричный метод нахождения путей в графах
Нахождение множества вершин, входящих в путь
Если необходимо узнать о вершинах графа, входящих в эти пути, то следует вспомнить определения прямого и обратного транзитивных замыканий. Так как T+(xi) – это множество вершин, в которые есть пути из вершины xi, а T–(хj) – множество вершин, из которых есть пути в xj , то T+(xi) T–(xj)– множество вершин, каждая из которых принадлежит, по крайней мере, одному пути, идущему от xi к xj . Эти вершины называются существенными или неотъемлемыми относительно двух концевых вершин xi и xj . Все остальные вершины графа называются несущественными или избыточными, поскольку их удаление не влияет на пути от xi к xj .
Рис. 4.2. Орграф
Так для графа на рис. 4.2 нахождение вершин, входящих в путь, например из вершины х2 в вершину х4 , сводится к нахождению Т+( х2) ={ х2, х3, х4, х5, х6}, Т-( х4) ={ х1, х2, х3, х4, х5}, и их пересечения T+(х2) T–(х4) ={ х2, х3, х4, х5}.
Матрица смежности полностью определяет структуру графа. Возведем матрицу смежности в квадрат по правилам математики. Каждый элемент матрицы А2 определяется по формуле
a(2) ik= n j=1aijajk
Слагаемое в формуле равно 1 тогда и только тогда, когда оба числа aij и ajk равны 1, в противном случае оно равно 0. Поскольку из равенства aij = ajk = 1следует существование пути длины 2 из вершины xi в вершину хk , проходящего через вершину xj , то ( i -й, k -й) элемент матрицы А2 равен числу путей длины 2, идущих из xi в хk .
На таблице 4.1a представлена матрица смежности графа, изображенного на рис. 4.2. Результат возведения матрицы смежности в квадрат А2 показан на таблице 4.1б.
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Так "1", стоящая на пересечении второй строки и четвертого столбца, говорит о существовании одного пути длиной 2 из вершины х2 к вершине х4 . Действительно, как видим в графе на рис. 4.2, существует такой путь: a6, a5 . "2" в матрице A2 говорит о существовании двух путей длиной 2 от вершины х3 к вершине х6 : a8, a4 и a10, a3 .
Аналогично для матрицы смежности, возведенной в третью степень A3 (таблица 4.1в), a (3) ik равно числу путей длиной 3, идущих от xi к хk . Из четвертой строки матрицы A3 видно, что пути длиной 3 существуют: один из х4 в х4(a9, a8, a5), один из х4 в х5(a9, a10, a6) и два пути из х4 в х6(a9, a10, a3 и a9, a8, a4). Матрица A4 показывает существование путей длиной 4 (таблица 4.1г).
Таким образом, если a р ik является элементом матрицы Aр ,то a р ik равно числу путей (не обязательно орцепей или простых орцепей) длины р, идущих от xi к хk .
5. Лекция: Типы графов (нет)
Граф G = (X, A) называют полным, если для любой пары вершин хi и хj в X существует ребро (хi, хj) в неориентированном графе G=(X,A), т. е. для каждой пары вершин графа G должна существовать по крайней мере одна дуга, соединяющая их (рис. 5.1,а).
Граф G =(X, A)называется симметрическим, если в множестве дуг A для любой дуги (хi, хj) существует также противоположно ориентированная дуга (хj, хi) (рис. 5.1,б).
Рис. 5.1. а – полный граф; б – симметрический граф; в – антисимметрический граф;
г – полный симметрический
Антисимметрическим называется такой граф, для которого справедливо следующее условие: если дуга (хi, хj) A, то во множестве A нет противоположно ориентированной дуги, т. е. ( хj, хi) A (рис. 5.1,в). Очевидно, что в антисимметрическом графе нет петель.
В качестве примера можно рассмотреть граф, являющийся моделью некоторой группы людей: вершины графа интерпретируют людей, а дуги – их взаимоотношения. Так, если в графе дуга, нарисованная от вершины хi к вершине хj , означает, что хi является другом или родственником хj , тогда данный граф должен быть симметрическим. Если дуга, направленная от хi к хj , означает, что вершина хj подчинена вершине хi , то такой граф должен быть антисимметрическим.
Комбинируя определения полного и симметрического графов и полного и антисимметрического графов, получили следующие определения:
- граф G =(X, A), в котором любая пара вершин (хi, хj) соединена двунаправленными дугами, называется полным симметрическим (рис. 5.1,г);
- граф G =(X, A), имеющий для каждой пары вершин (хi, хj) только одну дугу, называется полным антисимметрическим или турниром.
Связный граф, не имеющий циклов, либо граф, в котором каждая пара вершин соединена одной и только одной простой цепью, называется деревом (рис. 5.2, а, б).
Рис. 5.2. Граф типа “дерево”: а – неориентированное дерево,
б – ориентированное дерево
Ориентированное дерево представляет собой ориентированный граф без циклов, в котором полустепень захода каждой вершины, за исключением одной (например, вершины х1 ), равна 1, а полустепень захода вершины х1 (называют корнем этого дерева) равна 0 (рис. 5.2,б).
Граф G =(X, A), который может быть изображен на плоскости или сфере без пересечений называется планарным (рис. 5.3).
Рис. 5.3. Планарный граф
На рис. 5.4 показаны непланарные графы. Эти два графа играют важную роль в теории планарных графов и известны как графы Куратовского.
Рис. 5.4. Непланарные графы
Неориентированный граф G = (X, A)называют двудольным, если множество его вершин X может быть разбито на такие два подмножества Xа и Xb , что каждое ребро имеет один конец в Xа , а другой в Xb (рис. 5.5,а).
Ориентированный граф G называется двудольным, если его неориентированный двойник – двудольный граф (рис. 5.5,б,в).
Двудольный граф G=(Xа Xb, A) называют полным, если для любых двух вершин хi Xа и хj Xb существует ребро (хi,хj) в G=(X,A) (рис. 5.5,г).
Рис. 5.5. Двудольные графы: а, б, в – двудольные графы; г – полный двудольный граф