- •Министерство образования и науки украины государственное высшее учебное заведение «донецкий национальный технический университет»
- •Методические указания и задания
- •Донецк – 2011
- •Методические указания и задания к лабораторным работам по курсу “ одм часть 2“ ” (для студентов специальности “Программная инженерия ”) / сост.: Назарова и.А. – Донецк: ДонНту, 2011. - 53с.
- •Подграфы и изоморфизм
- •Теоретическая справка
- •Способы задания графов
- •Матрица смежности
- •Матрица инцидентности
- •Степени вершин графа
- •Экстремальные графы
- •Подграфы
- •Изоморфизм графов
- •Независимые множества
- •Доминирующие множества
- •Задание к лабораторной работе
- •Контрольные вопросы
- •Маршруты и связность в неориентированных графах
- •Теоретическая справка Маршруты в неориентированных графах
- •Связность в неориентированных графах
- •Теорема Уитни
- •Например:
- •Метрика в неорграфах Длина маршрута – количество ребер, входящих в данный маршрут, каждое ребро учитывается столько раз, сколько раз оно входит в маршрут.
- •Расстояние d(u,V) между двумя несовпадающими вершинами u и V – длина кратчайшей простой цепи, соединяющей эти вершины.
- •Матрица расстояний
- •Алгоритм Дейкстры ( )
- •Алгоритм Дейкстры
- •Задание к лабораторной работе
- •Контрольные вопросы
- •Деревья и остовы неориентированных графов
- •Теоретическая справка Дерево – связный граф, не содержащий циклов. Лес (ациклический граф) – произвольный граф, не содержащий циклов. Компонентами леса являются деревья.
- •Теорема о висячих вершинах дерева
- •Ярусная форма представления деревьев
- •Способы обхода деревьев
- •Способ обхода в глубину
- •Способ обхода в ширину
- •Матричная теорема Кирхгофа
- •Алгоритм Прима
- •Задание к лабораторной работе
- •Алгоритм перебора Робертса и Флореcа
- •Задача коммивояжера и задача китайского почтальона
- •Задание к лабораторной работе
- •Алгоритм генерации варианта
Алгоритм Прима
Отличается от алгоритма Краскала тем, что на каждом шаге строится не просто граф без циклов, но дерево.
1. Упорядочиваем ребра графа в порядке неубывания их весов.
2. Строим пустой граф , где количество вершин исходного графа
3. На каждом шаге к текущему, уже сформированному графу, добавляем ребро исходного графа с минимальным весом. Ребро не должно образовывать цикл и нарушать связность. Для этого список ребер каждый раз просматривается, начиная с 1 ребра.
4. Алгоритм заканчивает работу, если количество ребер в формируемом графе станет равным .
Пример: алгоритм Прима
С
писок
ребер
e1=(1, 2), (4, 3) 1
e2=(1, 5) 2
e3=(4, 5) 3
e4=(1, 3), (2, 3) 4
e5=(2, 4) 5
Остов кратчайших маршрутов: M=((1, 2), (1, 5),(5,4), (4,3))
Общий суммарный вес = 7.
Задание к лабораторной работе
Исходные
данные: граф
,
граф
.
Для графа
составить матрицу Кирхгофа и посчитать
количество помеченных остовов.Для графа
построить дерево обхода вершин графа
(использовать алгоритм в ширину, в
глубину).Для графа решить задачу построения остовов кротчайших маршрутов, используя алгоритмы Прима и Краскала. В качестве весов ребер использовать элементы вспомогательной матрицы
.Сгенерировать все различные абстрактные, не изоморфные друг другу деревья порядка (4-7).
Разделить множество деревьев на 2 подмножества с одной и с двумя центральными вершинами.
Алгоритм генерации варианта GV(p,X) описан в приложении А.
Контрольные вопросы
Привести определение дерева и леса.
Способы обхода деревьев.
Какие вершины дерева называются центром?
Что называется остовом?
Как можно определить число остовных деревьев?
Чем отличаются алгоритмы Краскала и Прима?
Лабораторная работа №4
Циклы и обходы
Цель работы: приобретение практических навыков в нахождении эйлеровых и гамильтоновых циклов в неориентированных графах, решение задач «китайского почтальона» и коммивояжера
Теоретическая справка
Обходы графа
Эйлеровы циклы
Эйлеров цикл – цикл, содержащий все рёбра исходного графа (каждое ребро используется ровно 1 раз).
Эйлеров граф – связный граф, содержащий эйлеров цикл.
Например:
G1:
2раза
Теорема Эйлера или критерий существования в графе
эйлерового цикла
Связный граф G является эйлеровым тогда и только тогда,
когда степени всех его вершин четны
Следствие №1. Для связного графа G множество ребер можно разбить на простые циклы, если граф эйлеров.
Следствие №2. Для того чтобы связный граф G покрывался единственной эйлеровой цепью, необходимо и достаточно, чтобы он содержал ровно 2 вершины с нечетной степенью. Тогда цепь начинается в одной из этих вершин и заканчивается в другой.
Алгоритм построения эйлерового цикла или алгоритм Флёри
1. Начиная с любой вершины v, присваиваем ребру vu №1. Вычеркиваем это ребро из списка ребер и переходим к вершине u.
2. Пусть w вершина, в которую мы пришли в результате выполнения шага 1 и k номер, присвоенный очередному ребру на этом шаге. Выбираем произвольное ребро инцидентное вершине w, причем мост выбираем только в крайнем случае, если других возможностей выбора ребра не существует. Присваиваем ребру номер k+1 и вычеркиваем его. Процесс длится до тех пор, пока все ребра не вычеркнуты.
Например:
Эйлерова цепь – цепь с концевыми вершинами (a, b), начинающаяся в вершине a, заканчивающаяся в вершине b и содержащая каждое ребро исходного графа ровно 1 раз.
Гамильтоновы циклы
Гамильтонов цикл – простой цикл, содержащий каждую вершину графа.
Гамильтонов граф – граф, содержащий гамильтонов цикл.
Достаточные условия существования гамильтонова
цикла в графе
Теорема Дирака
Если
число вершин графа p
3 и для любой вершины выполняется условие
vi,
i
=
;
deg
vi
,
то граф G – гамильтонов
Теорема Оре
Если число вершин графа p 3 и для любых двух несмежных вершин u и v выполняется неравенство: deg u + deg v p, то граф G – гамильтонов
Например:
p=8,
deg
vi
= 3, 3
= 4.
В данном графе не выполняется условие теоремы Дирака, но существует гамильтонов цикл: M = (v 1, v 2, v 3, v 4, v 5, v 6, v 7, v 8, v 1).
Дерево полного перебора
Дерево полного перебора строится для определения гамильтоновых циклов в графе и используется при небольшом количестве вершин данного графа.
Построение дерева производится слева направо:
Граф G:
Дерево полного перебора
Гамильтоновы циклы графа G:
(v1, v2, v3, v4, v5, v1);
(v1, v5, v4, v3, v2, v1)
