Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБ MAPLE ИС / ЛАБ 12-1 графы-1.doc
Скачиваний:
144
Добавлен:
15.02.2015
Размер:
1.16 Mб
Скачать

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, описанные ниже. Объяснить действия следующих команд: