- •Предисловие
- •Лабораторная работа №1 операции над множествами
- •Теоретические сведения
- •Пример выполнения работы.
- •Примеры записи нечеткого множества
- •Пример выполнения работы.
- •Контрольные вопросы
- •Задание для лабораторной работы.
- •Лабораторная работа № 3 комбинаторные алгоритмы
- •Теоретические сведения
- •Технология выполнения работы.
- •Контрольные вопросы
- •Задание для лабораторной работы.
- •Технология выполнения работы.
- •Контрольные вопросы
- •Задание для лабораторной работы.
- •Лабораторная работа №5 бинарные отношения
- •Теоретические сведения
- •Технология выполнения работы.
- •Контрольные вопросы
- •Задание для лабораторной работы.
- •Лабораторная работа № 6 Машинное представление графа
- •Теоретические сведения
- •Технология выполнения работы.
- •Контрольные вопросы
- •Задание для лабораторной работы.
- •Лабораторная работа №7 алгоритмы построения кратчайших путей в графе и кратчайшего остова графа
- •Теоретические сведения
- •Пример выполнения работы.
- •Контрольные вопросы
- •Задание для лабораторной работы.
- •Лабораторная работа №8 алгоритмы построения эйлерова и гамильтонова цикла
- •Теоретические сведения
- •Пример выполнения работы.
- •Контрольные вопросы
- •Задание для лабораторной работы.
- •Приложения
- •Варианты заданий
- •Варианты заданий
- •Варианты заданий
- •Библиографический список
- •ТеОретИческие основы информационных технологий лабораторный практикум
- •394036, Воронеж, пр. Революции, 19
Пример выполнения работы.
1. Рассмотрим неориентированный граф, заданный следующим входным файлом. Построим графическое представление графа, определяемого этим файлом.
1
2
1 3
2 3
2 7
2 8
3 4
3 5
4 5
5 6
5 8
6 8
6 7
6 9
7 8
7 9
Так как степени всех вершин графа чётны и граф является связным, то в нём существует эйлеров цикл. Построим его, выбрав начальной вершину 1 и считая записи в списках инцидентности вершин упорядоченными по возрастанию номеров вершин. Построим в соответствии с алгоритмом стеки C и CE. Серым цветом в стеке С выделены вершины, которые были перенесены из стека C в стек CE. Белым цветом с стеке С отмечены вершины, находящиеся с стеке на момент окончания его заполнения. Так как списки всех вершин на этом этапе пусты, то далее все они переносятся в стек CE по механизму стека (в обратном порядке).
8 |
|
1 |
7 |
|
2 |
9 |
|
3 |
6 |
|
4 |
5 |
|
5 |
8 |
|
6 |
2 |
|
7 |
7 |
|
2 |
6 |
|
8 |
3 |
|
6 |
5 |
|
9 |
4 |
|
7 |
1 |
|
8 |
3 |
|
5 |
2 |
|
3 |
1 |
|
1 |
C CE
Таким образом, эйлеров цикл имеет вид:
1 2 3 4 5 6 7 2 8 6 9 7 8 5
3 1.
2. Определим, является ли граф из задания 1 гамильтоновым. Для этого воспользуемся алгоритмом с возвратом, работу алгоритма проиллюстрируем построением дерева решений. Вершинами данного дерева являются вершины графа, ветвями – просматриваемые варианты пути. Дерево будем заполнять в порядке просмотра вершин алгоритмом, варианты пути заполнять слева направо, т.е. ранее присмотренные варианты путей располагаются левее. Построение дерева закончим, найдя 1 вариант гамильтонова цикла или исчерпав все варианты.
Следовательно, граф является гамильтоновым, а гамильтонов цикл имеет вид: 1 2 7 9 6 8 5 4 3 1.
Контрольные вопросы
Сформулируйте необходимые и достаточные условия существования эйлерова цикла и пути в ориентированном и неориентированных графах.
Объясните основную идею алгоритма построения эйлерова цикла и проиллюстрируйте работу алгоритма на примере.
Что называется гамильтоновым циклом в графе?
Объясните принцип выполнения алгоритмов с возвратом.
Постройте одну ветвь дерева решений построения гамильтонова цикла примера и продемонстрируйте на ней механизм возврата.
