Алгоритм Дейкстры для решения задачи поиска кратчайшего пути в графе
Автор: Broody Bear • Апрель 26, 2019 • Курсовая работа • 4,401 Слов (18 Страниц) • 1,536 Просмотры
Министерство образования и науки РФ
Казанский национальный исследовательский технический
университет им. А. Н. Туполева
Кафедра «Системы автоматизированного проектирования»
КУРСОВАЯ РАБОТА
по дисциплине «Методы программирования систем автоматизированного проектирования»
Тема: «Алгоритм Дейкстры для решения задачи поиска кратчайшего пути в графе»
Выполнил:
студент гр. 4213
И.С. Довбыш
Проверил:
ст. преп. И.В. Суздальцев
Оценка: _____________
Подпись: _____________
Дата: «____» ______ ______20___ г.
Казань 2018
СОДЕРЖАНИЕ
Введение 3
1. Постановка задачи. 3
1.1. Содержательная постановка задачи 4
1.2. Математическая постановка задачи 5
2. Разработка последовательного алгоритма Дейкстры для решения задачи поиска кратчайшего пути в графе 5
2.1. Описание последовательного алгоритма Дейкстры для решения задачи поиска кратчайшего пути в графе 5
2.2. Решение задачи на контрольном примере 7
3. Программная реализация последовательного алгоритма Дейкстры для решения задачи поиска кратчайшего пути в графе 12
4. Исследование эффективности разработанного последовательного алгоритма Дейкстры для решения задачи поиска кратчайшего пути в графе 14
Заключение 16
Список источников 17
Приложение А 18
Приложение Б 21
- ПОСТАНОВКА ЗАДАЧИ
- Содержательная постановка задачи
Исходные данные задачи
Неориентированный взвешенный граф G(V, U), вес рёбер которого неотрицателен.
Результирующие данные задачи
Кратчайший путь от заданной начальной вершины s ∈ V до заданной конечной вершины t ∈ V.
Содержательная постановка задачи
Пусть дан взвешенный неориентированный граф G(V, U), дугам которого приписаны веса (стоимости), задаваемые матрицей C=[cij]. Задача о кратчайшем пути состоит в нахождении кратчайшего пути от заданной начальной вершины s ∈ V до заданной конечной вершины t ∈ V, при условии, что такой путь существует, т.е. при условии t ∈ R(s). Здесь R(s) - множество, достижимое из вершины s. Элементы cij матрицы весов C могут быть положительными, отрицательными или нулями.
Практические примеры задачи нахождения кратчайшего пути
- Дана сеть автомобильных дорог, соединяющих города Московской области. Некоторые дороги односторонние. Найти кратчайшие пути от города Москвы до каждого города области (если двигаться можно только по дорогам).
- Имеется некоторое количество авиарейсов между городами мира, для каждого известна стоимость. Стоимость перелёта из A в B может быть не равна стоимости перелёта из B в A. Найти маршрут минимальной стоимости (возможно, с пересадками) от Копенгагена до Барнаула.
- Найти кратчайший путь между двумя перекрестками. В качестве вершин выступают перекрестки, а дороги являются ребрами, которые лежат между ними. Сумма расстояний всех дорог между перекрестками должна быть минимальной, тогда найден самый короткий путь.
- Математическая постановка задачи
Обозначения элементов математической модели представлено в таблице 1:
Таблица 1. Обозначение элементов математической модели
Элемент мат. модели | Описание элемента |
G(V, U) | Исходный граф |
V | Множество вершин |
U | Множество ребер |
lij | Вес (длина) ребра ij |
xi , xj | Вершины графа |
µ | Кратчайший путь |
xij | Целевые переменные (наличие или отсутствие дуги (xi , xj) в оптимальном пути) |
s | Начальная вершина |
t | Конечная вершина |
Целевая функция
Целевая функция, подлежащая оптимизации – минимизация общей длины пути.
[pic 1]
Ограничения задачи
Ограничением задачи является поиск кратчайшего пути. Если такого пути существовать не может или нет возможности связать первую и последнюю вершину, то решить задачу невозможно.
...