Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практические задания и программы / Методичка с материалом и заданиями (все вместе).doc
Скачиваний:
80
Добавлен:
11.02.2016
Размер:
2.19 Mб
Скачать

3. Алгоритмы на графах

Цель практического занятия по данной теме - освоение идей основных алгоритмов на графах и приобретение навыков в использовании этих алгоритмов.

3.1. Общие положения

Графом G=(X, E) называется совокупность двух конечных множеств: множества точек, которые называются вершинами (Х={x1, …, xn}) и множества связей в парах вершин (xi, xjE), которые называются дугами или ребрами в зависимости от наличия или отсутствия направленности связи.

Ребром называются две встречные дуги (xi, xj) и (xj, xi). На графе они изображаются одной линией без стрелки (рис. 3.1). Ребро, у которoго концевые вершины совпадают, называются петлей; то же относится и к дуге.

Рис. 3.1

Если на каждом ребре задаётся направление, то граф (X, E) называется ориентированным. В противном случае граф называется неориентированным.

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

Матрицей смежности называется прямоугольная таблица, у которой число строк и число столбцов одинаково и равно числу вершин. Элементы матрицы задаются следующим образом: “1” отмечается наличие соответствующей дуги (направление принимается от буквы, именующей строку, к букве, именующей столбец), “0”  отсутствие связи вершин; “1” на главной диагонали таблицы означает наличие петли на графе.

Матрицей инцидентности называется прямоугольная таблица с числом строк, равным числу вершин графа, и с числом столбцов, равным количеству рёбер (дуг) графа. Элементы матрицы aij задаются следующим образом: “1” ставится в случае, если вершина xi инцидентна ребру (xi , xj), “0” - в противном случае.

Пример 3.1. На рис. 3.1 изображён граф, имеющий четыре вершины X={x1, x2, x3, x4}, четыре дуги (x1, x3), (x2, x1), (x2, x3), (x3, x2) и два ребра (x1, x4), (x4, x5). Для вершины x1 смежными являются вершины: x2, x3 и x4, а инцидентными - дуги (x1, x3), (x2, x1) и ребро (x1, x4). Матрица смежности представлена табл. 3.1, а матрица инцидентности – табл. 3.2.

Таблица 3.1 Таблица 3.2

G

x1

x2

x3

x4

G

1

2

3

4

5

6

x1

0

0

1

1

x1

1

1

0

1

0

0

x2

1

0

0

1

x2

0

1

1

0

1

0

x3

0

1

0

1

x3

0

0

0

1

1

1

x4

1

0

1

1

x4

1

0

1

0

0

1

Взвешенным называется граф, если задана функция веса lij на дугах графа, которая характеризует, например, длину дуги (xi, xj), время пребывания на дуге, пропускную способность дуги и т. д.; чаще всего lij0.

Функция веса задаётся в матричном виде (с - конечное число):

; (3.1)

тогда в матрице смежности вместо 1 ставится c.

Для ориентированного графа определяются следующие понятия:

1. Исход вершины E(xi) - множество вершин xj, таких, что (xi, xj)E.

2. Вход вершины E1(xi) - множество вершин xi, таких что (xj, xi)E.

3. Степень исхода - мощность S(xi) =E(xi) множества исхода.

4. Степень входа - мощность S1(xi)=E1(xi) множества входа.

Для графа (рис. 3.1) рассмотрим исходы и входы вершин x1 и x4. Имеем:

E(x1)= {x3, x4}; (x1, x3), (x1, x4)E; E(x4)= {x1, x3}; (x4, x1), (x4, x3)E;

E1(x1)={x2, x4}; (x2, x1), (x4, x1)E;

E1(x4)={x1, x2, x3}; (x1, x4), (x2, x4), (x3, x4)E.

Для тех же вершин x1 и x4 степени исхода и входа соответственно равны S(x1)=2, S(x4)=2; S1(x1)=2, S1(x4)=3.

Для неориентированного графа степень S(xi)=E(xi) вершины xi равна числу рёбер, инцидентных этой вершине.