Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структуры и алгоритмы / графы_задачи1.doc
Скачиваний:
98
Добавлен:
23.02.2015
Размер:
1.58 Mб
Скачать
  1. Структуры данных для представления графа

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

    1. Матричное представление графов

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

При описании неориентированных графов элементами матрицы инциденций могут быть только нули и единицы. Сложение чисел всегда будет производиться по модулю 2. В этом случае 1+1 = 0 (по модулю 2), 1 + 0 = 0 + 1 = 1 и 0 + 0 = 0. Та­ким образом, для выполнения операции сложения по модулю 2 необходимо просто сложить соответствующие элементы, затем разделить результат на 2 и остаток записать как результат сложения по модулю 2. Такой выбор элементов матриц позволяет определить наличие некоторого свойства между двумя элементами (тогда соответствующий элемент равен 1) или его отсутствие (тогда элемент равен 0).

Матрицы перемножаются и складываются как обыч­но, однако результат всегда записывается по моду­лю 2.

При описании ориентированных графов элементов 0 и 1 оказывается недостаточно, так как дуга может быть инцидентна данной вершине и направлена к ней, инци­дентна и направлена от нее, или не инцидентна вершине. Поэтому для обозначения ориентированной инцидентно­сти или ее отсутствия воспользуемся символами 1, -1, 0. Здесь мы уже не можем пользоваться приведением по модулю 2 и должны рассматривать матрицы с цело­численными элементами.

Конечно, с такими матрицами работать гораздо труд­нее. Однако принципиально к матрицам ориентирован­ных графов применима теория, аналогичная теории для неориентированных графов.

      1. Матрица инциденций

Пусть G - граф, имеющий п вершин и m ребер. Графу G можно сопоставить матрицу инциденций раз­мером п т, строки и столбцы которой соответствуют вершинам и ребрам графа соответственно. Элемент матрицы ai принимает значение 1 или 0 в зависимости от того, инцидентно j-e ребро i-й вершине или нет. Для петли все элементы столбца считаются равными 0. Например, двухкомпонентный граф, показанный на рис. 6, имеет следующую матрицу инциденций.

Рис. 6. Двухкомпонентный граф

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

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

При соответствующей нумерации ребер и вершин графа каждая его компонента соответствует подматрице матрицы инциденций, которая в этом случае имеет блоч­ную структуру следующего вида:

Здесь Ai - матрица инциденций, соответствующая i-й ком­поненте графа.

Блочно-диагональное представление та­кого типа всегда можно получить последовательной ну­мерацией ребер и вершин внутри каждой компоненты и между компонентами, как показано в примере, или непосредственно с помощью перестановки строк и столб­цов матрицы инциденций. Таким образом, матрица инциденций обеспечивает полное описание.

Элементы матрицы инциденций ориентированного графа принимают значения 0, 1, -1. Элемент равен нулю, если вершина не инцидентна дуге, +1, если дуга ориентирована от вершины, и -1 в противном случае. На рис. 7 показан граф, матрица инциденций которого приведена ниже.

Рис. 7. Ориентированный граф