9. ГРАФЫ Определение графа
Понятие графа опирается на понятие множества. Графически задается множество и элементы множества, находящиеся между собой в некотором отношении.
При проектировании конструкций пользователю удобнее иметь дело с моделями, которые легко образуются, если элементы конструкций принять за точки, а связи между ними принять за линии.
Объект, состоящий из двух множеств (множества точек и множества линий), которые находятся между собой в некотором отношении, называется графом.
Точки обозначают Х = {х1, х2,…, хn}, |Х| = n и называют вершинами графа.
Множество линий, соединяющих пары вершин (xi, хj), где xi, хj Х, называется множеством ребер или дуг, и обозначается U = {u1, u2,…, um}, |U| = m.
Графом можно считать объект, который обозначается как G = (X, U). В общем случае множество линий U можно представить в виде
U = ŨÈŪÈŮ,
где Ũ – подмножество неориентированных линий (ребер), в котором каждое ребро uk » Î Ũ, определяется неупорядоченной парой вершин xi, хj, которые оно соединяет и записывается uk = (xi, хj), или uk = (хj , xi).
Ū – подмножество ориентированных линий (дуг).
Существенно направление соединений. Каждая дуга uk Î Ū определяется упорядоченной парой вершин xi, хj, которые uk соединяет и записывается uk = < xi, хj >.
Ů – подмножество линий (петель), каждая из которых выходит и входит в одну и ту же соответствующую этой линии вершину. Каждая петля определяется упорядоченной или неупорядоченной парой ui = (xk, хk) или ui = < xk, хk >.
Граф G = (X, U), у которого Ū, Ũ, Ů ¹ Æ называется смешанным.
Рисунок 7.1
Здесь |Х| = 5; |U| = 10; U = Ũ Ū Ů;
Ū = {u3, u4, u8, u10}; Ũ = {u1, u5, u6, u7, u9}; Ů = {u2}.
Подмножество U можно представить как множество кортежей длины
2.
Граф G = (X, U), у которого U = Ů Ū, а Ũ = Ø называется ориентиро-
ванным графом или орграфом.
Граф G = (X, U), у которого U = Ũ Ů, называется неориентирован-
ным или неорграфом.
х1 |
х2 |
х3 |
х4 |
Рисунок 7.2 – Орграф с петлями Рисунок 7.3 – Неорграф с петлями
На рисунке 7.2 показан орграф с петлями, где U = {<x1, x2>, <x2, x1>, <x2, x2>, <x1, x4>, <x1, x3>, <x4, x2>, <x3, x3>}. Каждая дуга ui Uz пред-
ставляется парой соединяемых вершин, причем первой в кортеже стоит вершина, из которой дуга выходит, а второй – вершина, в которую дуга входит.
На рисунке 7.3 приведен пример неорграфа с петлями. В дальнейшем неорграфы будем называть просто графами.
Граф G = (X, U), у которого существует хотя бы одна пара вершин, соединяемых m ребрами (m>1), ui U называется мультиграфом, а максимальное значение m называется мультиграфическим числом графа G. Ребра, соединяющие одну и ту же пару вершин называется кратными.
Пример мультиграфа приведен на рисунке 7.4.
Рисунок 7.4 - Мультиграф Мультиграфическое число графа, приведенного в качестве примера
равно m = 3.
Задание графов
Если ребро uk U графа G = (X, U) соединяет вершины xi, xj X, т.е. uk = (xi, xj), то говорят, что ребро uk инцидентно вершинам xi, xj. Вершины xi, xj называют инцидентными ребру uk.
Любые две вершины xi, xj X графа G = (X, U) называют смежными, если существует соединяющее эти вершины ребро uk U, т.е. uk = (xi, xj). Если два ребра инцидентны одной и той же вершине, то их называют смежными.
Отношение смежности и инцидентности могут иметь место как на множестве Х, так и на множестве U.
Основными способами задания графов являются геометрический, аналитический и матричный.
Граф называется помеченным, если его вершины отличаются одна от другой метками. Например, х1, х2, х3,…, хn.
Говорят, что задан граф, если заданы множество вершин Х, множество ребер U и инцидентор F, определяющий, какую пару вершин xi, xj X соединяет ребро uk = (xi, xj).
Большинство задач автоматизации конструирования решается при помощи матричного задания графа.
Квадратную таблицу R = ||rij||nxn называют матрицей смежности, если ее элементы образуются по правилу:
1, если вершина xi смежна с xj;
rij =
0, в противном случае. Для мультиграфа запишется:
m, если вершина xi соединена с вершиной xj m ребрами;
rij =
0, в противном случае.
При таком задании очевидно, что матрица будет симметричной.
Рисунок 7. 5 Пример графа
Матрица смежности R будет выглядеть:
|
х1 |
х2 |
х3 |
х4 |
х5 |
х1 |
1 |
1 |
0 |
1 |
0 |
х2 |
1 |
0 |
1 |
0 |
1 |
х3 |
0 |
1 |
0 |
1 |
1 |
х4 |
1 |
0 |
1 |
0 |
0 |
х5 |
0 |
1 |
1 |
0 |
0 |
Недостаток этого представления состоит в том, что объем занимаемой памяти составляет n2. Объем памяти можно сократить, если хранить треугольную матрицу:
|
х1 |
х2 |
х3 |
х4 |
х5 |
х1 |
1 |
1 |
0 |
1 |
0 |
х2 |
|
0 |
1 |
0 |
1 |
х3 |
|
|
0 |
1 |
1 |
х4 |
|
|
|
0 |
0 |
х5 |
|
|
|
|
0 |
В том случае, когда в графе G = (X, U) |X| = n, |U| = m m<<n, его задают с помощью списка пар, соответствующих его ребрам или с помощью списков смежности. Для рисунка 7.5 список пар выглядит: 1 1, 1 2, 1 4, 2 5, 2 3, 3 4, 3 5. Объем памяти составит 2m. При таком представлении нетрудно найти все ребра, ведущие из одной вершины.
При представлении графа списком смежности для каждой вершины xi X составляется список вершин xj, таких, что (xi, xj) U.
Для графа приведенного на рисунке 7.5 списки смежности выглядят:
Рисунок 7.6 Задание графа списком смежности (x5, x6 заменить на x4, x5) При таком представлении каждое ребро в списке записано дважды.
Прямоугольная таблица вида I = || ik,ℓ ||nxm называется матрицей инциденций, если ее элементы образуются по правилу:
1, если вершина хk инцидентна ребру uℓ;
ik,ℓ =
0, в противном случае.
Матрица инциденций I для графа, изображенного на рисунке 7.5 приведена ниже.
|
u1 |
u2 |
u3 |
u4 |
u5 |
u6 |
u7 |
х1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
х2 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
х3 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
х4 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
х5 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
Строки таблицы соответствуют вершинам графа, а столбцы – ребрам. В каждом столбце не более двух единиц. Две единицы в случае если ui ребро и одна – если петля.
Матрицы R и I однозначно задают информацию о графе. Можно переходить от одной матрицы к другой. При переходе от I к R теряется нумерация ребер. При переходе от R к I нумеруем единичные элементы ri,j соответствующими значениями uk U.