Вы находитесь на странице: 1из 16

Учреждение образования

«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ


ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ»

Кафедра интеллектуальных информационных технологий

Отчет по лабораторной работе


по курсу «Применение теории графов в информатике»

Выполнил магистрант группы Якутин А.И.


024601:
Проверил: Шункевич Д.В.

МИНСК
2020
1. Цель работы
Закрепление теоретического курса, приобретение навыков решения задач,
активизация самостоятельной работы магистрантов.
2. Выполнение

2.1. Классификация графов

Рефлексивным называется граф, каждая вершина которого имеет петлю,


то есть дугу(ребро) исходящее и входящее в эту вершину.

Алгоритм

1. Создадим множество U
2. Добавим все вершины графа в U
3. Для всех элементов множества U
3.1. Удаляем рассматриваемую вершину (А) из множества U

3.2. Проверяем, есть ли дуга от А в А


3.2.1. Если дуги нет, то завершаем алгоритм - граф не является
рефлексивным
3.2.2. Если дуга есть, то проверяем, является ли множество U
пустым: если да, то переходим к пункту 4, иначе - к пункту 3.1.
(рассматриваем следующую вершину)
4. Завершаем алгоритм - граф рефлексивен
Функциональным называется граф, в котором из каждой вершины
выходит ровно одна дуга.

Алгоритм

1. Создадим множество U
2. Добавим все вершины графа в множество U

3. Для всех элементов множества U


3.1. Удаляем рассматриваемую вершину (А) из множества U

3.2. Проверяем количество дуг, исходящих из рассматриваемой


вершины. Если количество исходящих дуг не равно 1, то завершаем
алгоритм - граф не является функциональным. Иначе - переходим у
пункту 3.3.
3.3. Проверяем, является ли множество U пустым. Если да - то
переходим к пункту 4, иначе - к пункту 3.1.
4. Завершаем алгоритм - граф является функциональным

Полным называется граф, в котором каждая пара вершин смежна, то есть


имеет связь.
Алгоритм

1. Создадим множество U
2. Добавим все вершины графа в U

3. Для каждого элемента множества U


3.1. Удаляем рассматриваемый элемент (А) из множества U

3.2. Создаем множество T и добавляем все вершины графа


3.3. Удаляем рассматриваемую вершину(А) из множества Т

3.4. Для всех элементов Т


3.4.1. Удаляем рассматриваемый элемент множества Т (В) из Т

3.4.2. Если между текущим элементов U и текущим элементом


Т нет дуги, то переходим к пункту 5, иначе - к пункту 3.4.3.
3.4.3. Проверяем, является ли множество Т пустым. Если да,
то удаляем его и переходим к пункту 3.1. Иначе - переходим к
пункту 3.4.1.
4. Завершаем алгоритм - граф является полным
5. Завершаем алгоритм - граф не является полным

2.2. Числовые характеристики графа

Эксцентриситетом вершины графа называется наибольшее расстояние


до другой вершины этого графа.

Алгоритм
Найдем эксцентриситет вершины А

1. Создаем таблицу и заполняем ее 0 (максимальный путь)

2. Для всех вершин, смежных с рассматриваемой вершиной:


2.1. В таблице в строке с вершиной, смежной рассматриваемой,
добавляем значение, равное пути до рассматриваемой вершины + 1.
2.2. Если смежных вершин нет, то завершаем.
2.3. Рассматриваемую вершину заменяем на смежную, повторяем
шаг 2 рекурсивно.
3. В таблице ищем максимальное значение. Это и есть эксцентриситет.
Радиусом графа называется минимальный эксцентриситет среди вершин
графа.

Алгоритм
1. Для всех вершин находим эксцентриситет
2. Среди найденных эксцентриситетов находим минимальный - это и
есть радиус графа.

Диаметром графа называется минимальный эксцентриситет среди


вершин графа.

Алгоритм
1. Для всех вершин находим эксцентриситет
2. Среди найденных эксцентриситетов находим максимальный - это и
есть диаметр графа.

2.3. Ключевые компоненты графа

Центральной вершиной графа называется вершина, эксцентриситет


которой равен радиусу графа.

А 3
B 2
C 0
D 1
E 0

Алгоритм
1. Найдем эксцентриситеты всех вершин графа
2. Находим радиус графа(минимальный эксцентриситет) - это 0
3. Находим в таблице вершины, эксцентриситет которых равен
радиусу(0) - это вершины С и E. Они и являются центральными
вершинами графа.

Периферийной вершиной графа называется вершина, эксцентриситет


которой равен диаметру графа.

Алгоритм
1. Найдем эксцентриситеты всех вершин графа

2. Находим диаметр графа(максимальный эксцентриситет) - это 3


3. Находим в таблице вершины, эксцентриситет которых равен
диаметру(3) - это вершина А. Она и является периферийной
вершиной графа.

Циклом в графе называется последовательность вершин, начинающейся


и заканчивающейся в той же самой вершине, и каждые две
последовательные вершины в последовательности смежны.

Алгоритм
1. Создадим множество U и добавим в него все вершины графа
2. Создадим переменную cycle
3. Создадим переменную start и присвоим ей значение начальной
вершины
4. Создадим переменную x и присвоим ей значение начальной
вершины
5. рекурсивная процедура
5.1. Добавляем x в конец cycle
5.2. Создаем копию U и удаляем оттуда x
5.3. Находим все смежные с x вершины
5.4. Проверяем, есть ли среди них start. Если да, то завершаем
алгоритм. Переменная cycle содержит цикл графа.
5.5. Проверяем, есть ли среди смежных x вершин те, которые не
принадлежат U. Если нет, завершаем процедуру. Иначе - создаем копии
переменных U и cycle. Переменной x присваиваем значение смежной
вершины, и выполняем процедуру 5.
Результат:

Вывод:
В рамках лабораторной работы была изучены классы графов, их числовые
характеристики и ключевые компоненты.

Вам также может понравиться