Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДМ. УМК. 3. Лабораторные работы.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
408 Кб
Скачать
☆

Лабораторная работа №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]],VertexNumberTrue]

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 вычеркивается из числа посещенных вершин.

710179, поэтому метка 9 при вершине 3 остается;

71522, поэтому метка  при вершине 4 заменяется меткой 22;

вершина 2 вычеркивается из числа посещенных вершин.

9112022, поэтому метка 22 при вершине 4 заменяется меткой 20;

921114, поэтому метка 14 при вершине 6 заменяется меткой 11;

вершина 3 вычеркивается из числа посещенных вершин.

11920, поэтому метка  при вершине 5 заменяется меткой 20;

вершина 6 вычеркивается из числа посещенных вершин.

2062620, поэтому метка 20 при вершине 5 остается;

вершина 4 вычеркивается из числа посещенных вершин.

У вершины 5 не посещенных смежных вершин нет, поэтому вершина 5 также вычеркивается из числа не посещенных вершин.

Алгоритм заканчивает работу, так как нельзя больше обработать ни одной вершины. Кратчайшие пути – это последние метки при вершинах.

Самостоятельно задание. Задайте некоторый граф с весами в виде матрицы смежности. Постройте последовательное выполнение алгоритма Дейкстры на диаграммах графа.

23