Лабораторная работа №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
Лабораторная работа № 2
1. Разработать процедуры сортировки массива целых чисел методом Шелла, методом пирамидальной сортировки и методом Хоара (язык программирования Паскаль или Си).
2. Правильность сортировки проверить путем подсчета контрольной суммы и числа серий в массиве.
3. Во время сортировки предусмотреть подсчет количества пересылок и сравнений (М и С), сравнить их с теоретическими оценками.
4. Составить таблицу следующего вида (данные получить экспериментально) для n= 100, 200, 300
23 руб.
Структуры и алгоритмы обработки данных
1231233
: 19 сентября 2010
Контрольная работа Вариант № 9
1. Используя в качестве массива набор из 8 букв своих фамилии, имени, отчества, определить на каждом шаге в методе прямого выбора номера перемещаемых элементов.
2. Используя в качестве массива набор из 8 букв своих фамилии, имени, отчества, определить на каждом шаге в методе шейкерной сортировки левую и правую границы сортируемой части массива (L и R).
3. Используя в качестве массива набор из 8 букв своих фамилии, имени, отчества провести 3-сортировку (в методе Ше
23 руб.
Другие работы
Термодинамика и теплопередача СамГУПС 2012 Задача 20 Вариант 8
Z24
: 10 ноября 2025
Перегретый пар при начальном абсолютном давлении р1 и температуре t1 вытекает в среду с давлением р = 1 бар. Секундный расход пара G = 3 кг/c. Требуется выбрать тип сопла, определить теоретическую скорость истечения пара, а также площади выходного и минимального сечений сопла.
180 руб.
Развитие сферы услуг
ostah
: 18 сентября 2012
Введение
Рыночная экономика не может нормально функционировать без хорошо отлаженного мехпнизма деятельности предприятий различных отраслей.
В 2003 году в России развивались тенденции улучшения общеэкономической и финансовой ситуации, начавшие проявляться в IV квартале 2002 г., после обострения кризиса. Сформировалась положительная динамика промышленного производства и ВВП, обусловленная, прежде всего ростом физических объемов экспорта, развитием процессов импортозамещения, относительным сокра
200 руб.
Система управления финансами региона
Elfa254
: 23 октября 2013
В условиях становления и развития рыночных отношений для научного обоснования радикальных экономических реформ большое значение приобретает региональная экономика - область научных знаний о размещении производительных сил, экономике регионов.
В настоящее время основная хозяйственная деятельность осуществляется в регионах. Им дано право самостоятельно решать экономические проблемы, устанавливать межрегиональные связи и связи с зарубежными странами.
Каждый регион занимает определенное место в хо
10 руб.
Теневая экономика и контрольные функции таможенных органов
Elfa254
: 2 августа 2013
Введение
Глава 1. Теневая экономика в современной России.
1.1. Сущность теневой экономики и основные формы ее проявления. ____ - 4
Механизм функционирования теневой экономики. ________________ - 9
Развитие теневой экономики в советском обществе и современной
России. ____________________________________________________ - 16
Глава 2. Таможенные органы и их деятельность по обеспечению
экономической безопасности государства.
Экономическая безопасность государства и механизм
государственного регу
10 руб.