Первый слайд презентации: Структуры и алгоритмы обработки данных на ЭВМ Алгоритм Дейкстры
Красиков И.А. ТУСУР 2015
Слайд 2: Введение
Э́дсгер Ви́бе Де́йкстра (11.05.1930— 6.08.2002) — нидерландский учёный, труды которого оказали влияние на развитие информатики и информационных технологий, является одним из разработчиков концепции структурного программирования и других идей, лауреат премии Тьюринга 1972г. Известность Дейкстре принесли его работы в области применения математической логики при разработке компьютерных программ, идея применения «семафоров » для синхронизации процессов в многозадачных системах, а так же разработка алгоритма нахождения кратчайшего пути на взвешенном графе без ребер отрицательного веса. Введение
Слайд 3: Задачи
Рассмотреть последовательность шагов алгоритма Дейкстры; Научиться использовать алгоритм Дейкстры для нахождения кратчайшего пути в графе. Задачи
Слайд 4: Последовательность шагов
Выбрать начальную вершину, присвоить стоимость пути до нее – 0, остальным вершинам ∞; Все вершины являются не выделенными; Объявить первую вершину текущей; Стоимости путей до всех невыделенных вершин находятся след. образом: стоимость пути до невыделенной вершины есть минимальное число из стоимости старого пути до данной вершины, равное сумме стоимости пути до текущей вершины и веса ребра соединяющего текущую и невыделенную вершины. Среди невыделенных вершин выбирается вершина с минимальной стоимостью пути до нее. Если такой вершины нет (стоимость путей до всех вершин равна ∞ ), то путь не существует и алгоритм завершается, иначе текущей вершиной становится найденная, и она же выделяется. Если все вершины являются выделенными (до всех них найден кратчайший путь), то алгоритм завершается, иначе переход на шаг 4. Последовательность шагов
Слайд 5: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 Дан неориентированный граф без ребер отрицательного веса, необходимо найти в нем кратчайшие пути из вершины A до всех остальных вершин.
Слайд 6: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 Шаги 1-3. Выберем вершину А в качестве первой, выделим ее и присвоим ей стоимость пути до нее равную 0, остальным же вершинам присвоим стоимость равную ∞.
Слайд 7: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 Шаг 4. Для каждой невыделенной вершины выполним вычисление: суммируем стоимость пути до текущей вершины и вес ребра соединяющего ее с невыделенной вершиной. Если эта сумма меньше стоимости пути до невыделенной вершины, то присваиваем найденную стоимость невыделенной вершине, иначе, продолжаем считать прежнюю стоимость пути до невыделенной вершины минимальной. 0+5=5 < ∞ ? Да
Слайд 8: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 Шаг 4. Для каждой невыделенной вершины выполним вычисление: суммируем стоимость пути до текущей вершины и вес ребра соединяющего ее с невыделенной вершиной. Если эта сумма меньше стоимости пути до невыделенной вершины, то присваиваем найденную стоимость невыделенной вершине, иначе, продолжаем считать прежнюю стоимость пути до невыделенной вершины минимальной. 0+5=5 < ∞ ? Да 0+2=2 < ∞ ? Да
Слайд 9: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 Шаг 5. Среди невыделенных вершин выбирается вершина с минимальной стоимостью пути до нее. Если такой вершины нет (стоимость путей до всех вершин равна ∞), то путь не существует и алгоритм завершается, иначе текущей вершиной становится найденная, и она же выделяется
Слайд 10: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 2+2=4 < 5 ? Да Шаг 4. Для каждой невыделенной вершины выполним вычисление: суммируем стоимость пути до текущей вершины и вес ребра соединяющего ее с невыделенной вершиной. Если эта сумма меньше стоимости пути до невыделенной вершины, то присваиваем найденную стоимость невыделенной вершине, иначе, продолжаем считать прежнюю стоимость пути до невыделенной вершины минимальной.
Слайд 11: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 2+2=4 < 5 ? Да Повторяем шаг 4 для новой вершины 2+10=12 < ∞ ? Да
Слайд 12: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 2+2=4 < 5 ? Да Повторяем шаг 4 для новой вершины 2+10=12 < ∞ ? Да 2+7=9 < ∞ ? Да
Слайд 13: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 Повторяем шаг 5 для выделения новой вершины с минимальной стоимостью пути
Слайд 14: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 Повторяем шаг 4 для новой вершины 4+3=7 < 12 ? Да
Слайд 15: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 Повторяем шаг 4 для новой вершины 4+3=7 < 12 ? Да 4+2=6 < 9 ? Да
Слайд 16: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 Повторяем шаг 5 для выделения новой вершины с минимальной стоимостью пути
Слайд 17: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 Повторяем шаг 4 для новой вершины 6+6=12 < ∞ ? Да
Слайд 18: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 Повторяем шаг 4 для новой вершины 6+6=12 < ∞ ? Да 6+4=10 < ∞ ? Да
Слайд 19: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 Повторяем шаг 5 для выделения новой вершины с минимальной стоимостью пути
Слайд 20: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 Повторяем шаг 4 для новой вершины 7+5=12 < 10 ? Нет
Слайд 21: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 Повторяем шаг 4 для новой вершины 7+5=12 < 10 ? Нет 7+5=12 < 12 ? Нет
Слайд 22: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 Повторяем шаг 5 для выделения новой вершины с минимальной стоимостью пути
Слайд 23: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 Повторяем шаг 4 для новой вершины 10+2=12 < ∞ ? Да
Слайд 24: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 Повторяем шаг 5 для выделения новой вершины с минимальной стоимостью пути
Слайд 25: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 Повторяем шаг 4 для новой вершины 12+3=15 < 12 ? Нет
Слайд 26: Нахождение кратчайшего пути в неориентированном графе
А B C D E G F H 5 2 2 2 10 3 7 5 5 4 6 2 3 Шаг 6. Все вершины выделены, до них найдены кратчайшие пути, алгоритм завершается.
Слайд 27: Результаты работы алгоритма
Были найдены следующие кратчайшие пути: A → A = 0 ; A → B = 4 ; A → C = 2 ; A → D = 7 ; A → E = 6 ; A → F = 12 ; A → G = 10 ; A → H = 12 ;