Лабораторная работа №6. Структуры и алгоритмы обработки данных. Нахождение кратчайших путей в графе. Алгоритм Дейкстры.
Состав работы
|
|
Работа представляет собой файл, который можно открыть в программе:
- Microsoft Word
Описание
Лабораторная работа №6. Структуры и алгоритмы обработки данных. Нахождение кратчайших путей в графе. Алгоритм Дейкстры.
Постановка задачи:
Найти кратчайший путь между двумя фиксированными вершинами заданного графа с помощью алгоритма Дейкстры.
Теория
Задача о кратчайшем пути – задача поиска самого короткого пути (цепи) между двумя точками (вершинами) на графе, в которой минимизируется сумма весов рёбер, составляющих путь.
Алгоритм нахождения кратчайшего пути между двумя фиксированными вершинами графа
1. Задаем метки всех вершин максимально возможными значениями.
2. Метку начальной вершины задаем нулем.
3. Текущую вершину задаем значением начальной вершиной.
4. Пока не посещены все вершины графа:
4.1. Посещаем вершину.
4.2. Если текущая вершина равна конечной вершине, то
4.2.1. Переходим к шагу 5.
4.3. Перебираем все смежные вершины текущей вершины:
4.3.1. Новую метку задаем суммой метки текущей вершины и расстоянием от смежной вершины к текущей вершине.
4.3.2. Если новая метка меньше метки текущей вершины, то
4.3.2.1. Метке текущей вершины задаем значение новой метки.
4.4. Текущей вершине задаем значение не посещённой вершины с наименьшим значением метки.
5. Заносим в стек вершин кратчайшего пути конечную вершину.
6. Пока вершина стека не равна начальной вершине:
6.1. Перебираем все смежные вершины вершины стека:
6.1.1. Если метка смежной вершины равна разности метки вершины стека и расстоянием от смежной вершиной к вершине стека, то
6.1.1.1. Заносим смежную вершину в стек.
6.1.1.2. Переходим к шагу 6.2.
6.2. Если ни одна смежная вершина не была занесена в стек вершин кратчайшего пути, то
6.2.1. Выводим сообщение «Между вершинами нет пути».
6.2.2. Завершаем алгоритм.
7. Выводим кратчайший путь на экран.
8. Выводим метку конечной вершины (длину пути) на экран.
Входные данные:
• matrix[,] – матрица смежности графа.
• start – номер начальной вершины.
• end – номер конечной вершины.
Выходные данные:
• status – текстовое поле для вывода вершин кратчайшего пути между вершинами и длины пути.
• path – стек для хранения вершин кратчайшего пути между вершинами.
• distance – длина кратчайшего пути между заданными вершинами.
Постановка задачи:
Найти кратчайший путь между двумя фиксированными вершинами заданного графа с помощью алгоритма Дейкстры.
Теория
Задача о кратчайшем пути – задача поиска самого короткого пути (цепи) между двумя точками (вершинами) на графе, в которой минимизируется сумма весов рёбер, составляющих путь.
Алгоритм нахождения кратчайшего пути между двумя фиксированными вершинами графа
1. Задаем метки всех вершин максимально возможными значениями.
2. Метку начальной вершины задаем нулем.
3. Текущую вершину задаем значением начальной вершиной.
4. Пока не посещены все вершины графа:
4.1. Посещаем вершину.
4.2. Если текущая вершина равна конечной вершине, то
4.2.1. Переходим к шагу 5.
4.3. Перебираем все смежные вершины текущей вершины:
4.3.1. Новую метку задаем суммой метки текущей вершины и расстоянием от смежной вершины к текущей вершине.
4.3.2. Если новая метка меньше метки текущей вершины, то
4.3.2.1. Метке текущей вершины задаем значение новой метки.
4.4. Текущей вершине задаем значение не посещённой вершины с наименьшим значением метки.
5. Заносим в стек вершин кратчайшего пути конечную вершину.
6. Пока вершина стека не равна начальной вершине:
6.1. Перебираем все смежные вершины вершины стека:
6.1.1. Если метка смежной вершины равна разности метки вершины стека и расстоянием от смежной вершиной к вершине стека, то
6.1.1.1. Заносим смежную вершину в стек.
6.1.1.2. Переходим к шагу 6.2.
6.2. Если ни одна смежная вершина не была занесена в стек вершин кратчайшего пути, то
6.2.1. Выводим сообщение «Между вершинами нет пути».
6.2.2. Завершаем алгоритм.
7. Выводим кратчайший путь на экран.
8. Выводим метку конечной вершины (длину пути) на экран.
Входные данные:
• matrix[,] – матрица смежности графа.
• start – номер начальной вершины.
• end – номер конечной вершины.
Выходные данные:
• status – текстовое поле для вывода вершин кратчайшего пути между вершинами и длины пути.
• path – стек для хранения вершин кратчайшего пути между вершинами.
• distance – длина кратчайшего пути между заданными вершинами.
Дополнительная информация
2020
Похожие материалы
Лабораторной работе №5. По дисциплине Алгоритмы и структуры данных. Тема Нахождение кратчайшего пути в графе.
DiKey
: 28 марта 2023
Лабораторной работе No5. По дисциплине Алгоритмы и структуры данных. Тема Нахождение кратчайшего пути в графе.
Цель работы: ознакомление с вариантами реализации алгоритмов на графах на примере задачи поиска кратчайшего пути в неориентированном графе.
Теоретические положения
Алгоритм Беллмана-Форда:
Алгоритм использует метод динамического программирования и формирует решение в виде квадратной матрицы, количество строк и столбцов которой равно количеству вершин графа. Ячейка на пересечении строк
100 руб.
350 руб.
Структуры и алгоритмы обработки данных
Решатель
: 29 августа 2024
Задания для контрольной работы одинаковы для всех студентов. Начальные данные выбираются индивидуально в зависимости от задания в контрольной работе.
500 руб.
Структуры и алгоритмы обработки данных
ianbaeva
: 17 января 2022
КУРСОВАЯ РАБОТА
по дисциплине
«Структуры и алгоритмы обработки данных (часть 2)»
Вариант 14
Содержание
1 Постановка задачи 3
2 Описание программы 5
3 Текст программы 14
4 Результаты выполнения программы 21
Список использованной литературы 23
2000 руб.
Структуры и алгоритмы обработки данных
Despite
: 10 апреля 2013
1. Используя в качестве массива набор из 8 букв своих фамилии, имени, отчества, определить на каждом шаге в методе прямого выбора номера перемещаемых элементов (пример см. в лекциях, раздел 2.1).
2. Используя в качестве массива набор из 8 букв своих фамилии, имени, отчества, определить на каждом шаге в методе шейкерной сортировки левую и правую границы сортируемой части массива (L и R).
3. Используя в качестве массива набор из 8 букв своих фамилии, имени, отчества провести 3-сортировку (в методе
150 руб.
Структуры и алгоритмы обработки данных
piligrim-24
: 26 октября 2011
вариант №15
Задание
Хранящуюся в файле базу данных загрузить в оперативную память компьютера и построить индексный массив, упорядочивающий данные по ФИО вкладчика и сумме вклада, используя метод прямого слияния. Провести поиск по первым трём буквам фамилии в упорядоченной базе, из записей с одинаковым ключом сформировать очередь. Вывести содержимое очереди. Из записей очереди построить дерево оптимального поиска по другому ключу и произвести поиск по запросу.
50 руб.
Структуры и алгоритмы обработки данных
1231233
: 19 сентября 2010
Контрольная работа Вариант № 9
1. Используя в качестве массива набор из 8 букв своих фамилии, имени, отчества, определить на каждом шаге в методе прямого выбора номера перемещаемых элементов.
2. Используя в качестве массива набор из 8 букв своих фамилии, имени, отчества, определить на каждом шаге в методе шейкерной сортировки левую и правую границы сортируемой части массива (L и R).
3. Используя в качестве массива набор из 8 букв своих фамилии, имени, отчества провести 3-сортировку (в методе Ше
23 руб.
Структуры и алгоритмы обработки данных
1231233
: 19 сентября 2010
Лабораторная работа № 2
1. Разработать процедуры сортировки массива целых чисел методом Шелла, методом пирамидальной сортировки и методом Хоара (язык программирования Паскаль или Си).
2. Правильность сортировки проверить путем подсчета контрольной суммы и числа серий в массиве.
3. Во время сортировки предусмотреть подсчет количества пересылок и сравнений (М и С), сравнить их с теоретическими оценками.
4. Составить таблицу следующего вида (данные получить экспериментально) для n= 100, 200, 300
23 руб.
Другие работы
Тепломассообмен СЗТУ Задача 6 Вариант 31
Z24
: 21 февраля 2026
В паропроводе, внутренний диаметр которого 100 мм, движется насыщенный водяной пар давлением р со скоростью ω.
Чему должна быть равна скорость воды при комнатной температуре (tж=20 ºС) в гидродинамической модели паропровода диаметром 24 мм?
120 руб.
Общая схема электроснабжения компрессорной станции КС-6
Laguz
: 30 сентября 2024
Чертеж схемы электроснабжения сделан в 21 компасе, дополнительно сохранен в 16 компас
Файлы компаса можно просматривать и сохранять в нужный формат бесплатной программой КОМПАС-3D Viewer.
150 руб.
Основы гидравлики МИИТ 2018 Задача 1.7 Вариант 6
Z24
: 23 ноября 2025
Резервуар, форма и размеры которого даны на рис. 1.4, опирающийся на 4 опоры, имеет смотровой люк, перекрывающийся полусферической крышкой ABC диаметром d.
Определить при заданном уровне воды в резервуаре Н силу давления на дно резервуара F и на каждую из четырех опор N (при определении N весом жидкости в объеме полусферической крышки пренебречь).
Найти горизонтальную Рх и вертикальную Рz составляющие силы давления жидкости на полусферическую крышку АВС, а также величину и линию действия р
200 руб.
Экзаменационный билет по предмету "Дополнительные главы математического анализа". Курс 2-й, семестр 4-й
Pomogu
: 20 июня 2013
Билет 2
1. Достаточные признаки сходимости знакоположительных рядов
a) Первый признак сравнения рядов
б) Предельный признак сравнения
в) Признак Даламбера
г) Радикальный признак Коши
2. Найти область сходимости ряда
3. Вычислить определенный интеграл с помощью разложения подынтегральной функции в степенной ряд
4. Вычислить контурный интеграл от функции комплексной переменной с помощью вычетов
5. Найти частное решение дифференциального уравнения с заданными начальными условиями операторным ме
70 руб.