- •Лабораторная работа №2 Тема: Декартово произведение множеств. Соответствия, функции
- •Лабораторная работа №3 Тема: Свойства бинарных отношений
- •Лабораторная работа №4 Тема: Перечисление простейших комбинаций
- •Лабораторная работа №5 Тема: Число простейших комбинаций
- •Лабораторная работа №6 Тема: Рекуррентные соотношения
- •Лабораторная работа №7 Тема: Представление графов в системе Mathematica 5.0
- •Лабораторная работа №8 Тема: Представление орграфов в системе Mathematica 5.0
- •Лабораторная работа №9 Тема: Нахождение кратчайших расстояний
Лабораторная работа №8 Тема: Представление орграфов в системе Mathematica 5.0
Продолжительность 2 часа
Цель: уметь представлять ориентированные графы (орграфы) в системе Mathematica 5.0.
Рекомендации студентам по подготовке к занятию: [4] Глава 16. Орграфы. Разделы: Орграфы и соединимость. Орграфы и мартрицы.
Теоретические сведения. Ориентированный граф (орграф) состоит из двух множеств – множества вершин и множества, содержащего некоторые упорядоченные пары различных вершин, называемых ребрами (дугами). На диаграмме дуга изображается стрелкой, направленной от первой вершины ко второй вершине. Часто графом называют его диаграмму.
Задачи: Применение пакета дискретной математики. Построение различных орграфов. Добавление и удаление вершин и ребер.
Порядок выполнения работы
1. Применение пакета дискретной математики. Постройте различные примеры известных орграфов
<<DiscreteMath`Combinatorica`
ShowGraph[ OrientGraph[CompleteGraph[7]] ]
ShowGraph[OrientGraph[Wheel[8]]]
2. Пометить вершины орграфа
ShowGraph[OrientGraph[CompleteGraph[4]],VertexNumberTrue]
3. Присоедините к орграфу вершины и дуги
ShowGraph[DeleteEdge[OrientGraph[CompleteGraph[3]],{1,2}]]
ShowGraph[AddEdge[DeleteEdge[OrientGraph[CompleteGraph[3]],
{1,2}],{2,1}]]
ShowGraph[AddEdge[DeleteEdge[OrientGraph[CompleteGraph[3]],
{2,3}],{3,2}]]
Самостоятельно задание. Используя полные орграфы с 1, 2, 3 вершинами, присоединяя или удаляя вершины и ребра, постройте все попарно неизоморфные орграфы с 3 вершинами.
Лабораторная работа №9 Тема: Нахождение кратчайших расстояний
Продолжительность 2 часа
Цель: научиться выполнению алгоритма Дейкстры.
Рекомендации студентам по подготовке к занятию: [3] Глава 3. §4 Кратчайшие пути
Теоретические
сведения.
Припишем
всем ребрам графа веса
– положительные числа. Кратчайший
путь
от вершины
до вершины
– это маршрут от
до
с минимальной суммой весов ребер
маршрута.
Задача о кратчайшем пути на графе. Надо найти все кратчайшие пути от данной вершины до всех остальных вершин.
Определение алгоритма Дейкстры. Каждой вершине ставим метку – минимальное известное расстояние от данной вершины .
Алгоритм работает пошагово – на каждом шаге он «посещает» одну вершину и пытается уменьшить метку вершины. Если все вершины посещены, алгоритм завершается.
Метка
вершины
равна 0. В начале метки остальных вершин
предполагаются равными .
Иначе,
из ещё не посещённых вершин выбирается
вершина
,
имеющая минимальную метку. Рассматривают
всевозможные маршруты с началом
,
в которых
является предпоследним пунктом.
Для
каждой не посещённой вершины
,
смежной с вершиной
,
находят сумму значения текущей метки
и веса ребра, соединяющего
и
.
Если полученная сумма
меньше значения
метки
,
то метку
заменяют меткой .
Рассмотрев все не посещённые вершины, смежные с вершиной , вершина отмечается как посещенная, и повторяется шаг алгоритма.
Порядок выполнения работы
Требуется найти кратчайшие расстояния от 1-й вершины до всех остальных.
Кружками обозначены вершины, линиями – ребра графа. В кружках обозначены номера вершин, над ребрами обозначена их вес – (или длина пути).
Рядом с каждой вершиной обозначена метка – длина кратчайшего пути в эту вершину из вершины 1.
Первый шаг. Рассмотрим шаг алгоритма Дейкстры для нашего примера. Минимальную метку имеет вершина 1. Её соседями являются вершины 2, 3 и 6.
7, поэтому метка при вершине 2 заменяется меткой 7,
9, поэтому метка при вершине 3 заменяется меткой 9,
14, поэтому метка при вершине 6 заменяется меткой 14,
вершина 1 вычеркивается из числа посещенных вершин.
710179, поэтому метка 9 при вершине 3 остается;
71522, поэтому метка при вершине 4 заменяется меткой 22;
вершина 2 вычеркивается из числа посещенных вершин.
9112022, поэтому метка 22 при вершине 4 заменяется меткой 20;
921114, поэтому метка 14 при вершине 6 заменяется меткой 11;
вершина 3 вычеркивается из числа посещенных вершин.
11920, поэтому метка при вершине 5 заменяется меткой 20;
вершина 6 вычеркивается из числа посещенных вершин.
2062620, поэтому метка 20 при вершине 5 остается;
вершина 4 вычеркивается из числа посещенных вершин.
У вершины 5 не посещенных смежных вершин нет, поэтому вершина 5 также вычеркивается из числа не посещенных вершин.
Алгоритм заканчивает работу, так как нельзя больше обработать ни одной вершины. Кратчайшие пути – это последние метки при вершинах.
Самостоятельно задание. Задайте некоторый граф с весами в виде матрицы смежности. Постройте последовательное выполнение алгоритма Дейкстры на диаграммах графа.
