Минимальный остов графа. Дан взвешенный граф.
Строим граф, присоединяя к пустому графу на множестве вершин заданного графа ребро наименьшего веса. К полученному графу последовательно присоединяем остальные ребра, выбирая на каждом шаге ребро наименьшего веса, не образующее цикл с имеющимися ребрами. В нашем случае начинаем с ребра весом 13 – наименьшего в графе. На рисунках дана последовательность действий. Ребро весом 19 не включается в остов, так как оно образует цикл с ребрами
весом 14 и 13.
Выполнение алгоритма Краскала:
1. Начальная фаза. Минимальный покрывающий лес пуст.
2. Перебираем ребра в порядке возрастания веса: первое ребро с весом 2. Добавляем его к А.
3. Следующее безопасное ребро с весом 6. Добавляем его.
4-8. Добавляем остальные безопасные ребра.
Пример выполнения алгоритма Краскаля. Заштрихованные ребра принадлежат растущему лесу.
Изучить инструкцию к практической работе.
Для запуска программы необходимо активировать exe – файл с названием «Краскал.exe» запустится программа. Рисунок главной формы изображен на рисунке.
На главной форме программы изображены: текстовое поле необходимое для ввода количество узлов графа, для которого нужно будет найти остов минимального веса, затем нужно нажать кнопку «ОК». Далее нужно занести веса в матрицу весов «Дано» вводить нужно только по горизонтали, а по вертикали программа заполнит поля автоматически. Далее нужно расставить узлы нашего графа, для этого одним щелчком по полю «Данный граф» создастся узел, он будет помечен синей точкой аналогично выполнить для остальных вершин графа. Также узлы можно расставить случайным образом, для этого нужно пометить флажок «Разместить узлы случайно» и нажать кнопку «Рисовать» при каждом нажатии на кнопку вершины будут размещаться случайно.
|
|
После того, когда граф на рисован необходимо найти «Остов минимального веса» с помощью алгоритма Краскала, для этого нажимать кнопку «Вычислить». Остов минимального веса будет изображен в поле «Полученный минимальный остов» и в поле «Результат» будет показан результат виде матрицы весов.
Задание:
Проработать две первые задачи. Третью и четвертую решить самостоятельно, используя программное обеспечение Kraskal .
Задача №1 . Дан взвешенный связный неориентированный граф, состоящий из пяти вершин. Необходимо найти остов минимального веса с помощью алгоритма Краскала.
Выбираем вершину начала построения остова минимального веса, например, первую вершину. | |
Шаг 1. Найдено ребро минимального веса: 1-2=6. Полученный остов на рисунок. | |
Шаг 2. Найдено ребро минимального веса: 2-3=7. Полученный остов на рисунок. | |
Шаг 3. Найдено ребро минимального веса: 3-4=9. Полученный остов на рисунок. | |
Шаг 4. Найдено ребро минимального веса: 3-5=11. Рассмотрены все вершины и инцидентные ребра этим вершинам, оставшиеся образуют цикл в полученном минимальном остове. А это не удовлетворяет условиям поставленной задачи. На четвертом шаге получили окончательный остов минимального веса, который представлен на рисунке. |
При изменении вершины начала построения конфигурация остова минимального веса не измениться, а измениться лишь последовательность построения ребер остова.
|
|
Например, если в качестве начальной вершины выбрать четвертую вершину, то последовательность этапов построения остова минимального веса будет выглядеть следующим образом:
Шаг 1. 4-3=9;
Шаг 2. 3-2=7;
Шаг 3. 2-1=6;
Шаг 4. 3-5=11;
При этом конфигурация остова останется прежней. Решим данную задачу с помощью программной модели. Чтобы решить данную задачу необходимо построить матрицу весов, матрица представлена на рисунке.
Матрица весов
Полученный минимальный остов с помощью программной модели изображен на рисунке.
Полученный минимальный остов
После проверки вычислений вручную и программной модели результат одинаковый, это означает, что программная модель работает и функционирует верно.
|
|
Задача №2. Дан взвешенный, связный, неориентированный граф, состоящий из девяти вершин. Необходимо найти остов минимального веса с помощью алгоритма Краскала. Исходный граф на рисунке.
Выбираем вершину начала построения остова минимального веса, например, первую вершину. | |
Шаг 1. Найдено ребро минимального веса: AC=1. Полученный остов на рисунок. | |
Шаг 2. Найдено ребро минимального веса: CF=3, AB=4, AC=4. Полученный остов на рисунок. | |
Шаг 3. Найдено ребро минимального веса: FD=4, EK=3, AE=4. Полученный остов на рисунок. | |
Шаг 4. Найдено ребро минимального веса: KH=5, KG=4. Рассмотрены все вершины и инцидентные ребра этим вершинам, оставшиеся ребра образуют цикл в полученном минимальном остове. А это не удовлетворяет условиям поставленной задачи. На четвертом шаге получен окончательный остов минимального веса, который представлен на рисунке. |
Решим данную задачу с помощью программной модели. Чтобы решить данную задачу необходимо построить матрицу весов.
Таблица 1. Матрица весов
A | B | C | D | E | F | G | H | K | |
A | - | 4 | 1 | 9 | 4 | - | - | - | - |
B | 4 | - | - | - | - | - | - | 5 | - |
C | 1 | - | - | 10 | - | 3 | - | - | - |
D | 9 | - | 10 | - | 5 | 4 | - | 6 | 9 |
E | 4 | - | - | 5 | - | 7 | - | - | 3 |
F | - | - | 3 | 4 | 7 | - | 10 | - | - |
G | - | - | - | - | - | 10 | - | - | 7 |
H | - | 5 | - | 6 | - | - | - | - | 5 |
K | - | - | - | 9 | 3 | - | 7 | 5 | - |
|
|
Полученный минимальный остов с помощью программной модели изображен на рисунке.
Остов минимального веса
После проверки вычислений вручную и программной модели полученные остовы минимального веса различаются, но они построены верно. Это связано с тем, что программа выбирает другую вершину начала. После решения двух контрольных задач стало ясно, что разработанная программная модель работает верно.
Задача №3. Найти остов минимального веса с помощью алгоритма Краскала., проверить программой Краскала.
Задача №4. Найти минимальное остовное дерево в неориентированном нагруженном графе. Результат проверить программным обеспечением.
а) | б) | в) |
Порядок выполнения работы:
1. Изучить инструкцию к практической работе.
2. Выполнить задание.
3. Оформить отчет.
Содержание отчета:
1. Тема.
2. Цель.
3. Задачи.
4. Материальное обеспечение.
5. Практическое задание.
Вопросы для самоконтроля:
1. Дайте определение остов графа.
2. Дайте определение минимальный остов графа.
3. В чем смысл алгоритма Краскала?
Практическая работа № 7
Тема: Решение задач по теории графов. Двойственность по Уитни
Цель: изучить теоретические основы планарности, двойственности графов и теорему Уитни; закрепить навыки моделирования графов.
Задачи:
1. Закрепить знания основных понятий теории графов.
2. Использовать математический аппарат теории графов
Материальное обеспечение:
Раздаточный материал. Линейка карандаш.
Теоретическая часть:
Граф G =(V, E), который может быть изображен на плоскости или сфере без пересечений называется планарным | |
На рисунке показаны непланарные графы. Эти два графа играют важную роль в теории планарных графов и известны как графы Куратовского. |
Неориентированный граф G = (V, E) называют двудольным, если множество его вершин V может быть разбито на такие два подмножества Vа и Vb, что каждое ребро имеет один конец в Vа , а другой в Vb (рисунок 1,а).
Ориентированный граф G называется двудольным, если его неориентированный двойник – двудольный граф (рисунок 1,б,в).
Двудольный граф G=(Vа∪Vb, E) называют полным, если для любых двух вершин vi∈Vа и vj ∈Vb существует ребро (vi,vj) в G=(V,E) (рисунок 1,г).
Рисунок 1
Теорема ( X . Уитни, 1932 г.). Граф планарен тогда и только тогда когда он имеет абстрактно двойственный граф.
Говорят, что граф G укладывается на поверхности S, если его можно нарисовать на этой поверхности так, что его ребра будут пересекаться лишь в концевых точках - вершинах. Граф называется планарным, если его можно уложить на плоскости. Изображение планарного графа на плоскости называют планарной укладкой. Для каждого простого планарного графа существует планарная укладка, в которой все ребра графа будут прямыми линиями.
Если граф не укладывается на плоскости (поверхности нулевого порядка), то его можно уложить на какой - либо другой поверхности (более высокого порядка). Укладываемость графа на плоскости равносильна его укладываемости на сфере, поскольку сфера и плоскость относятся к поверхности нулевого порядка, что можно установить стереографической проекцией сферы на плоскость.
На рисунок 2, а и б показаны две планарные укладки одного и того же графа, а на рисунке в и г приведены два основных непланарных графа – K5 и K3,3 (графы Куратовского).
Графы Куратовского считаются основными непланарнами графами потому, что играют решающую роль в исследовании планарности графов.
Теорема Граф планарен тогда и только тогда, когда каждый его блок планарен.
Рисунок 2. Примеры планарного и непланарных графов:
а - планарная укладка с непрямолинейными ребрами;
б - планарная укладка того же графа с прямолинейными ребрами;
в - непланарный граф K5; г - непланарный граф K3,3
До появления статьи Куратовского, в которой был дан критерий планарности графов, характеризация планарных графов была труднейшей нерешенной проблемой. Доказательство приводимой ниже теоремы Куратовского можно найти в книге.
Рисунок 3. Непланарность графа Петерсена: а - граф Петерсена;
б - граф Петерсена, стянутый к K5;
в - один из подграфов графа Петерсена, гомеоморфный K3,3
Граф Петерсена не имеет подграфов, гомеоморфных K5, но легко стягивается к K5. Сложнее увидеть, что граф Петерсена имеет подграф, гомеоморфный K3,3.
Уитни связал планарность графов с существованием двойственных графов. Граф G* называется двойственным к графу G, если существует такое взаимнооднозначное соответствие их ребер, что множество ребер графа G* образует цикл тогда и только тогда, когда в графе G это же множество ребер образует разрезающее множество. Для плоского графа существует простой способ построения двойственного графа (см. пример на рисунок 4).
Рисунок 4. Пример: а – граф G; б – построение двойственного графа G*;
в – граф G*, двойственный графу G
Суть способа построения в следующем: а) в каждой области укладки графа G на плоскости размещается вершина графа G*; б) через каждое ребро eграфа G, общее для областей 0i и 0j, проводится линия, соединяющая вершины и и образующая ребро e*.
Теорема Граф имеет двойственный граф тогда и только тогда, когда он планарен.
Задание:
1. Постройте планарный граф с а) 6; б) 7; в) 8; г) 9; вершинами так, чтобы некоторые его ребра пересекались.
2. Постройте плоский граф, соответствующий графу из предыдущего задания.
3. Постройте геометрически двойственный граф к графу из задания 2.
4. Покажите, что К5 не обладает абстрактно двойственными графами.
Порядок выполнения работы:
1. Изучить инструкцию к практической работе.
2. Выполнить задание.
3. Оформить отчет.
Содержание отчета:
1. Тема.
2. Цель.
3. Задачи.
4. Материальное обеспечение.
5. Практическое задание.
Вопросы для самоконтроля:
1. Дайте определение планарности графа.
2. Какой используется граф, в определении двудольного графа?
3. Какие два вида графа рассматриваются в теореме Х. Уитни?
4. Что означает укладка графа на поверхности?
Практическая работа № 8
Тема: Решение задач по теории графов.
Построение матриц смежностей и инциденций
Цель: изучение матричных способов представления графов; отработать на примерах основные понятия теории графов; научить строить графы по матрице смежности; по графу составлять матрицу смежности; закрепить навыки моделирования графов в графической среде Grafoanalizator1.3.3 rus.
Задачи:
1. Закрепить знания основных понятий теории графов.
2. Приобрести практические умения использования специального программного обеспечения для моделирования.
3. Использовать математический аппарат теории графов
Материальное обеспечение:
Программы для графического представления графов: Grafoanalizator1.3.3 rus, Просто граф, практическая работа.
Теоретическая часть:
Матрица смежности
Пусть дан граф G, его матрица смежности обозначается через A=[aij]и определяется следующим образом:
aij=1, если в G существует дуга (xi,xj),
aij=0, если в G нет дуги (xi,xj).
Таким образом, матрица смежности графа, изображенного на рисунке 1, имеет вид
Матрица смежности полностью определяет структуру графа. Например, сумма всех элементов строки xi матрицы дает полустепень исхода вершины xi, а сумма элементов столбца xi - полустепень захода вершины xi. Множество столбцов, имеющих 1 в строке xi есть множество Г(xi), а множество строк, которые имеют 1 в столбце xi совпадает с множеством Г-1(xi).
Петли на графе представляют собой элементы, имеющие 1 на главной диагонали матрицы, например a22, a66 для графа, изображенного на рисунке 1.
В случае неориентированного графа матрица смежности является симметричной относительно главной диагонали (рисунок 2).
Матрица инцидентности
Пусть дан граф G с n вершинами и m дугами. Матрица инцидентности графа G обозначается через B=[bij] и является матрицей размерности n x m, определяемой следующим образом:
bij=1, если xi является начальной вершиной дуги aj;
bij=-1, если xi является конечной вершиной дуги aj;
bij=0, если xi не является концевой вершиной дуги aj.
Для графа, приведенного на рисунке 1, матрица инцидентности имеет вид:
Поскольку каждая дуга инцидентна двум различным вершинам (за исключением случая, когда дуга образует петлю), то каждый столбец содержит один элемент, равный 1, и один - равный -1. Петля в матрице инцидентности не имеет адекватного математического представления (в программной реализации допустимо задание одного элемента bij=1).
Если G является неориентированным графом (рисунок 2), то его матрица инцидентности определяется следующим образом:
bij=1, если xi является концевой вершиной дуги aj;
bij=0, если xi не является концевой вершиной дуги aj.
Матрица инцидентности, как способ задания графов, успешно применяется при описании мультиграфов (графов, в которых смежные вершины могут соединяться несколькими параллельными дугами).
Дата добавления: 2019-02-22; просмотров: 2229; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!