
3. Матрица инцидентности
Между
множествами вершин V
и рёбер Е
определено
отношение инцидентности.
Каждое ребро е
из Е
инцидентно ровно двум вершинам
и
,
которые оно соединяет. При этом вершина
и ребро е
(а также вершина
и ребро е)
называются инцидентными друг другу, а
вершины
и
называются смежными. Отношения
инцидентности между вершинами и рёбрами
графа можно задать с помощью матрицы
инцидентности (incidence
matrix)
I.
Число
строк этой матрицы равно числу вершин
графа, а число столбцов – числу рёбер.
Для
неориентированного
графа элемент матрицы
,
если вершина
инцидентна ребру е,
в противном случае
.
Для
ориентированного
графа элемент матрицы
,
если вершина
является концом дуги е
(т.е. дуга входит в вершину);
,
если вершина
является началом дуги е
(т.е.
дуга исходит из вершины);
,
если вершина
не инцидентна дуге е.
|
Рис. 5 |
Составим матрицу инцидентности для орграфа с рис. 5. По вертикали запишем вершины, по горизонтали рёбра.
|
AB |
AC |
BC |
BE |
DD |
EC |
A |
1 |
1 |
0 |
0 |
0 |
0 |
B |
-1 |
0 |
1 |
1 |
0 |
0 |
C |
0 |
-1 |
-1 |
0 |
0 |
-1 |
D |
0 |
0 |
0 |
0 |
-1 |
0 |
E |
0 |
0 |
0 |
-1 |
0 |
1 |
Заметим, что для вершины D дуга DD является петлёй, для неё значение элемента матрицы инцидентности принимается равным единице.
4. Графы в Maple
Операции с графами в среде Maple выполняются с помощью команд, находящихся в пакетах networks (сети) и GraphTheory (теория графов). Вызовем первый пакет:
>
:
1. Зададим новый граф G командой new и добавим последовательность его вершин командой addvertex:
Соединим некоторые вершины командой connect, запросим список названий рёбер (команда edges) и нарисуем граф:
Команда connect соединяет каждую вершину из первого списка [1,3] с каждой вершиной из второго списка [4,6]. По умолчанию наш граф является неориентированным. Запросим список полученных рёбер командой ends:
Убедимся в том, что начало и конец рёбер не определены:
На команды «хвост» и «голова» ребра ответа нет.
Зададим матрицы смежности и инцидентности:
Убедитесь в том, что матрицы выводятся правильно.
ЗАДАНИЕ 1. Придумать граф G1, вершины задавать командой addvertex, рёбра – командой addedge, например: addedge([[1,2],[1,4],[2,3]],G1). Определить начало и конец каждой дуги с помощью команд tail и head (если ребро задаётся в квадратных скобках, то это ориентированная дуга). Вывести список дуг. Начертить граф. Составить матрицы смежности и инцидентности.
2. Зададим полный граф командой complete. Полный граф означает, что все вершины соединены между собой.
Матрица смежности:
Матрица инцидентности не выводится из-за большого объёма:
Исключим из графа некоторые рёбра (фигурные скобки означают, что рёбра не ориентированы):
ЗАДАНИЕ 2. Задать полный граф с пятью вершинами, определить его характеристики. Исключить 2 ребра, исследовать полученный граф.
3. Ориентированный граф. Зададим дуги графа с помощью упорядоченных пар вершин, их поместим в квадратные скобки.
>
Построим другой ориентированный граф.
>
2
>
>
>
ЗАДАНИЕ 3-1. Придумать и исследовать ориентированный граф.
ЗАДАНИЕ 3-2. Объяснить действия следующих команд:
ЗАДАНИЕ 3-3. Построить и сравнить графы gg и ggd, описанные ниже. Объяснить действия следующих команд: