![]() |
Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Составители: Н.И. Житникова, Г.И. Федорова, А.К. ГалимовСтр 1 из 5Следующая ⇒
УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Теория графов
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
по подготовке к контрольным работам по дисциплине «Дискретная математика»
Уфа 2005 Министерство образования Российской Федерации УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Кафедра проектирования средств информатики
ТЕОРИЯ ГРАФОВ
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
по подготовке к контрольным работам по дисциплине «Дискретная математика»
Уфа 2005 Составители: Н.И. Житникова, Г.И. Федорова, А.К. Галимов УДК 519.6 (07) ББК 22.193 (я7)
Теория графов. Методические указания по подготовке к контрольным работам по дисциплине «Дискретная математика». /Уфимск. гос. авиац. техн. ун-т.; Сост.: Н.И. Житникова, Г.И. Федорова, А.К. Галимов. - Уфа, 2005 -37 с.
Предназначены для студентов 1 курса направления 654600: Информатика и вычислительная техника, : Защита информации для подготовки к контрольным работам по курсу «Дискретная математика».
Табл. 2. Ил. 14. Библиогр.: 9 назв.
Рецензенты: Газизов Р.К. Васильев В.И.
© Уфимский государственный авиационный технический университет, 2005 Содержание
Краткий перечень основных понятий теории графов ……………….. 4 Понятия смежности, инцидентности, степени ……………………….. 7 Маршруты и пути ………………………………………………………. 7 Матрицы смежности и инцидентности…..……………………………. 7 Связность. Компоненты связности …………………………………….. 8 Матрицы достижимости и связности ………….………………………. 9 Расстояния в графе …………………………..…………….……………. 9 Образ и прообраз вершины и множества вершин …………..……….. 10 Нагруженные графы ………………..………………………………….. 11 Деревья и циклы …………………………………….………….……… 12
Решение контрольных задач по теме «Теория графов»……………………………………………...…………………... 13 Задание 1. Компоненты сильной связности ориентированного графа. ……………………………………………………………………. 13 Задание 2. Расстояния в ориентированном графе..………………...... 16 Задание 3. Минимальный путь в нагруженном ориентированном графе...……...…………………………………………………………... 20 Задание 4. Эйлеровы циклы и цепи ……..………………………….… 23 Задание 5. Минимальное остовное дерево...………...…………...…… 25 Задание 6. Задача о коммивояжёре...………...…………...…………… 27
Задания для самостоятельного решения ………….………......……… 34
Список литературы…………………………………………………..…. 37 Краткий перечень основных понятий теории графов. Теория графов как теоретическая дисциплина может рассматриваться как раздел дискретной математики, исследующий свойства конечных множеств (бесконечные графы не будут вводиться в рассмотрение) с заданными отношениями между их элементами. Как прикладная дисциплина теория графов позволяет описывать и исследовать многие физические, технические, экономические, биологические, социальные и другие системы. Например, графом, изображенным на рис. 1, в котором точки − вершины графа − города, линии, соединяющие вершины − ребра − дороги, соединяющие города, описывается так называемая транспортная задача (задача нахождения кратчайшего пути из одного города- пункта в другой).
Рис. 1.
Формальное определение графа таково. Пусть задано конечное множество V, состоящее из n элементов, называемых вершинами графа, и подмножество X декартова произведения V× V, то есть Одинаковые пары - параллельные или кратные ребра; Кратностью ребер называют количество одинаковых пар.
Рис.2.
Например, кратность ребра {v1, v2} в графе, изображенном на рис. 2, равна двум, кратность ребра {v3, v4} − трем. Псевдограф − граф, в котором есть петли и/или кратные ребра. Мультиграф − псевдограф без петель. Граф − мультиграф, в котором ни одна пара не встречается более одного раза. Граф называется ориентированным, если пары (v, w) являются упорядоченными. Ребра ориентированного графа называются дугами. Итак, используемые далее обозначения: V – множество вершин; X – множество ребер или дуг; v (или vi)– вершина или номер вершины; G, G0 - неориентированный граф; D, D0 – ориентированный; {v, w} − ребра неориентированного графа; {v, v} – обозначение петли; (v, w) − дуги в ориентированном графе; v, w - вершины, x, y, z – дуги и ребра; n(G), n(D) количество вершин графа; m(G) - количество ребер, m(D) - количество дуг.
Примеры 1) Ориентированный граф D=(V, X), V={v1, v2, v3, v4}, X={x1=(v1, v2), x2=(v1, v2), x3=(v2, v2), x4=(v2, v3)}.
Рис. 3.
2) Неориентированный граф G=(V, X), V={v1, v2, v3, v4, v5}, X={x1={v1, v2}, x2={v2, v3}, x3={v2, v4}, x4={v3, v4}}.
Рис. 4.
Маршруты и пути Последовательность v1x1v2x2v3...xkvk+1, (где k³ 1, viÎ V, i=1,..., k+1, xiÎ X, j=1,..., k), в которой чередуются вершины и ребра (дуги) и для каждого j=1,..., k ребро (дуга) xj имеет вид {vj, vj+1} (для ориентированного графа (vj, vj+1)), называется маршрутом, соединяющим вершины v1 и vk+1 (путем из v1 в vk+1).
Пример В графе, изображенном на рис.4, v1x1v2x2v3x4v4x3v2 - маршрут, v2x2v3x4v4 – подмаршрут; маршрут можно восстановить и по такой записи x1x2x4x3; если кратности ребер (дуг) равны 1, можно записать и так v1v2v3v4v2.
Цепь − незамкнутый маршрут (путь), в котором все ребра (дуги) попарно различны. Цикл − замкнутая цепь (в неориентированном графе). Контур − замкнутый путь (в ориентированном графе). Простой путь (цепь) − путь (цепь, цикл, контур), в котором ни одна дуга/ребро не встречается дважды. Простой цикл (контур) − цикл (контур), в котором все вершины попарно различны. Гамильтонова цепь (путь, цикл, контур) − простая цепь (путь, цикл, контур), проходящая через все вершины. Эйлерова цепь (путь, цикл, контур) − цепь (путь, цикл, контур), содержащая все ребра (дуги) графа по одному разу. Длина маршрута (пути) − число ребер в маршруте (дуг в пути). Утверждение 1. Для того чтобы связный псевдограф G обладал Эйлеровым циклом, необходимо и достаточно, чтобы степени всех его вершин были четными. Утверждение 2. Для того чтобы связный псевдограф G обладал Эйлеровой цепью, необходимо и достаточно, чтобы он имел ровно 2 вершины нечетной степени.
Расстояния в графе Пусть Расстояние в графе удовлетворяют аксиомам метрики 1) 2) 3) 4) Пусть Диаметром графа G называется величина Пусть Максимальным удалением (эксцентриситетом) в графе G от вершины Радиусом графа G называется величина Центром графа G называется любая вершина
Нагруженные графы Нагруженный граф − ориентированный граф D=(V, X), на множестве дуг которого определена не которая функция Цифра над дугой (см. рис. 5)− вес дуги (цена дуги). Рис. 5. Обозначения: для любого пути П нагруженного ориентированного графа D через l(П) сумму длин дуг, входящих в путь П. (Каждая дуга считается столько раз, сколько она входит в путь П). Величина l называется длиной пути. Если выбрать веса равными 1, то придем к ненагруженному графу. Путь в нагруженном ориентированном графе из вершины v в вершину w, где v¹ w, называется минимальным, если он имеет наименьшую длину. Аналогично определяется минимальный маршрут в нагруженном графе. Введем матрицу длин дуг C(D)=[cij] порядка n, причем Свойства минимальных путей в нагруженном ориентированном графе 1) Если для " дуги 2) если 3) если
Деревья и циклы Граф G называется деревом если он является связным и не имеет циклов. Граф G называется лесом если все его компоненты связности - деревья. Свойства деревьев: Следующие утверждения эквивалентны: 1) Граф G есть дерево. 2) Граф G является связным и не имеет простых циклов. 3) Граф G является связным и число его ребер ровно на 1 меньше числа вершин. 4) " две различные вершины графа G можно соединить единственной (и при этом простой) цепью. 5) Граф G не содержит циклов, но, добавляя к нему любое новое ребро, получаем ровно один и притом простой цикл Утверждение 4. Если у дерева G имеется, по крайней мере, 1 ребро, то у него найдется висячая вершина. Утверждение 5. Пусть G связный граф, а Утверждение 6. Пусть G - дерево с n(G) вершинами и m(G) ребрами. Тогда m(G)=n(G)-1. Утверждение 7. Пусть G – дерево. Тогда любая цепь в G будет простой. Остовным деревом связного графа G называется любой его подграф, содержащий все вершины графа G и являющийся деревом. Пусть G – связный граф. Тогда остовное дерево графа G должно содержать n(G)-1 ребер. Значит, для получения остовного дерева из графа G нужно удалить Число Задание 1. Компоненты сильной связности ориентированного графа.
С помощью матрицы смежности найти компоненты сильной связности ориентированного графа D. Cоставляем матрицу смежности A(D) размерности Для того, чтобы выделить компоненты сильной связности, необходимо сначала найти матрицу достижимости T(D) ориентированного графа по первой формуле утверждения 3, затем находим матрицу сильной связности S(D) ориентированного графа (она должна быть симметрической) по второй формуле из того же утверждения.
Алгоритм выделения компонент сильной связности 1. Присваиваем p=1 (p − количество компонент связности), 2. Включаем в множество вершин Vp компоненты сильной связности Dp вершины, соответствующие единицам первой строки матрицы Sp. В качестве матрицы A(Dp) возьмем подматрицу матрицы A(D), состоящую из элементов матрицы A, находящихся на пересечении строк и столбцов, соответствующих вершинам из Vp. 3. Вычеркиваем из Sp строки и столбцы, соответствующие вершинам из Vp. Если не остается ни одной строки (и столбца), то p- количество компонент сильной связности. В противном случае обозначим оставшуюся после вычеркивания срок и столбцов матрицу как Sp+1, присваиваем p=p+1 и переходим к п. 2.
Пример Выделим компоненты связности ориентированного графа, изображенного на рис. 6. В данной задаче количество вершин n=5. Рис. 6.
Значит, для данного ориентированного графа матрица смежности будет иметь размерность 5× 5 и будет выглядеть следующим образом
Найдем матрицу достижимости для данного ориентированного графа по формуле 1) из утверждения 3:
Следовательно,
Таким образом, матрица сильной связности, полученная по формуле 2) утверждения 3, будет следующей:
Присваиваем p=1 Вычеркиваем из матрицы S1(D) строку и столбец, соответствующие вершине v1, чтобы получить матрицу S2(D):
Присваиваем p=2. Множество вершин второй компоненты связности составят те вершины, которым соответствуют единицы в первой строке матрицы S2(D), то есть
Вычеркиваем из матрицы S2(D) строки и столбцы, соответствующие вершинам из V2, чтобы получить матрицу S3(D), которая состоит из одного элемента: и присваиваем p=3. Таким образом, третья компонента сильной связности исходного графа, как и первая, состоит из одной вершины Таким образом, выделены 3 компоненты сильной связности ориентированного графа D:
Задание 2. Расстояния в ориентированном графе
С помощью алгоритма фронта волны найти расстояния в ориентированном графе D: диаметр, радиус и центры. Пусть
Алгоритм поиска минимального пути из (алгоритм фронта волны). 1) Помечаем вершину 2) Если В противном случае продолжаем: 3) Если В противном случае мы нашли минимальный путь из есть этот минимальный путь. Работа завершается. 4) Помечаем индексом k+1 все непомеченные вершины, которые принадлежат образу множества вершин c индексом k. Множество вершин с индексом k+1 обозначаем Замечания · Множество · Вершины Чтобы найти расстояния в ориентированном графе, необходимо составить матрицу минимальных расстояний R(D)между его вершинами. Это квадратная матрица размерности Сначала составляем матрицу смежности. Затем переносим единицы из матрицы смежности в матрицу минимальных расстояний ( Рассматриваем первую строку, в которой есть единицы. Пусть это строка − i-тая и на пересечении с j-тым столбцом стоит единица (то есть Примечание: В контрольной работе самый длинный путь найти при помощи алгоритма фронта волны.
Пример Найдем расстояния в ориентированном графе D, изображенном на рис. 7. В данной задаче количество вершин n=7, следовательно, матрицы смежности и минимальных расстояний между вершинами ориентированного графа D будут иметь размерность 7× 7. Рис.7.
Матрица смежности:
Начинаем заполнять матрицу R(D) минимальных расстояний: сначала ставим нули по главной диагоналии rij=aij, если aij=1, (т.е. переносим единицы из матрицы смежности). Рассматриваем первую строку. Здесь есть две единицы, то есть из первой вершины за один шаг можно попасть во вторую и шестую. Из второй вершины можно попасть за один шаг в третью (путь в первую вершину нас не интересует), следовательно, можно записать Таким образом, диаметром исследуемого ориентированного графа будет Для каждой вершины заданного ориентированного графа найдем максимальное удаление (эксцентриситет) в графе G от вершины нее по формуле, которая была приведена выше r(v1)=3, r(v2)=3, r(v3)=5, r(v4)=4, r(v5)=2, r(v6)=2, r(v7)=3. Значит, радиусомграфа G будет Соответственно, центрами графа G будут вершины v5 и v6, так как величины их эксцентриситетов совпадают с величиной радиуса Опишем теперь нахождение минимального пути из вершины v3 в вершину v6 по алгоритму фронта волны. Обозначим вершину v3 как V0, а вершину v6 - как W (см. рис. 8). Множество вершин, принадлежащих образу V0, состоит из одного элемента - это вершина v4, которую, согласно алгоритму, обозначаем как V1: FW1(v3)={v4}. Поскольку искомая вершина не принадлежит фронту волны первого уровня
Рис.8. Задание 3. Минимальный путь в нагруженном ориентированном графе
Найти минимальный путь в нагруженном ориентированном графе из вершины Рассмотрим сначала общую задачу – нахождения минимального пути из вершины vнач в vкон. Пусть D=(V, X) – нагруженный ориентированный граф, V={v1, …, vn}, n> 1. Введем величины Для каждого фиксированного i и k величина Положим также Составляем матрицу длин дуг C(D)=[cij] порядка n: Утверждение. При i=2, …, n, k³ 0 выполняется равенство
Алгоритм Форда-Беллмана нахождения минимального пути в нагруженном ориентированном графе D из vнач в vкон.( vнач ≠ vкон). ( 1) Составляем таблицу 2) Если 3) Затем определяем номера i2, …,
то есть восстанавливаем по составленной таблице и матрице стоимости искомый минимальный путь из vнач в vкон.
Пример Найдем минимальный путь из вершины v2 в v6 в ориентированном нагруженном графе D, изображенном на рис. 9. В рассматриваемом графе количество вершин n=7, следовательно, матрица длин дуг ориентированного графа D будет иметь размерность 7× 7.
Рис. 9.
Матрица длин дуг для рассматриваемого графа будет выглядеть следующим образом:
Согласно алгоритму, составляем таблицу стоимости минимальных путей из вершины v2 в вершину vi не более, чем за k шагов, k=0, …n-1 (n=7, следовательно, k=0, …6). Как было определено выше, В конечном итоге получаем следующую таблицу: Теперь необходимо по построенной таблице и по матрице C(D) восстановить минимальный путь из вершины v2 в v6, который будет строиться с конца, то есть, начиная с вершины v6. Для этого выбираем минимальное из чисел, стоящих в строке, соответствующей v6 в таблице. Это число – 21 – длина минимального искомого пути. В первый раз такая длина была получена при количестве шагов, равном 4. В вершину v6 мы можем попасть за один шаг из вершин v1 и v7 (длина соответствующих дуг 8 и 5 соответственно – данные из матрицы C(D)). Выбираем минимальную по длине из этих дуг. Далее, в вершину v7 можно попасть из v4 и v5(длина соответствующих дуг 7 и 3 соответственно). Продолжая аналогичным образом, найдем искомый путь за 4 шага минимальной длины из вершины v2 в v6: v2 v3 v5 v7 v6.
Задание 4. Эйлеровы циклы и цепи
Найти Эйлерову цепь в неориентированном графе. Исходя из утверждений 1 и 2, чтобы найти Эйлерову цепь, нужно соединить две вершины с нечетными степенями фиктивным ребром. Тогда задача сводится к нахождению Эйлерова цикла по приведенному ниже алгоритму. Из найденного цикла удаляется фиктивное ребро, тем самым находится искомая Эйлерова цепь.
Задание 5. Минимальное остовное дерево
Найти минимальное остовное дерево в неориентированном нагруженном графе.
Алгоритм выделения минимального остовного дерева в неориентированном нагруженном графе G 1) Выберем в графе G ребро минимальной длины. Вместе с инцидентными ему двумя вершинами оно образует подграф G2 графа G. Положим 2) Если i=n(G), то задача решена и Gi – искомое минимальное остовное дерево графа G. Иначе переходим к шагу 3). 3) Строим граф Gi+1. Для этого добавим к графу Gi новое ребро минимальной длины из оставшихся, которое инцидентно какой-либо вершине графа Gi и одновременно вершине, не содержащейся в Gi. Вместе с этим ребром включаем в Gi+1 и эту инцидентную ему вершину. Присваиваем i: =i+1 и переходим к шагу 2).
Пример. Найдем минимальное остовное дерево в неориентированном нагруженном графе, изображенном на рис.14.
Рис.14.
Обозначим ребро, соединяющее вершины vi и vj через xij. Для удобства использования приведенного выше алгоритма решения поставленной задачи, составим матрицу длин ребер. В рассматриваемом графе количество вершин n=8, следовательно, матрица длин ребер графа G будет иметь размерность 8× 8 и выглядеть следующим образом: Согласно приведенному выше алгоритму, выбираем ребро минимальной длины (выбираем среди элементов матрицы C(G) минимальное − это c47=1) и вместе с инцидентными ему двумя вершинами относим к графу G2. Таким образом,
Поскольку i=8=n(G), работа алгоритма заканчивается. Таким образом, искомое минимальное остовное дерево графа G − граф G8, изображенный на рис. 15, длина которого равна 22. Рис.15.
Задание 6. Задача о коммивояжёре
Постановка задачи. Коммивояжёр (бродячий торговец) должен выйти из первого города, посетить по разу в неизвестном порядке города 2, 3..n и вернуться в первый город. Стоимости проезда между городами известны. В каком порядке следует объезжать города, чтобы замкнутый путь (тур) коммивояжера был наименее затратным? Сформулируем задачу в терминах теории графов, введя следующие обозначения: пусть D=[V, X] – полный ориентированный граф и f: X® Популярное:
|
Последнее изменение этой страницы: 2016-06-05; Просмотров: 780; Нарушение авторского права страницы