🗊Презентация Кратчайшие пути из одной вершины в ориентированных ациклических графах. Алгоритм Дейкстры

Категория: Математика
Нажмите для полного просмотра!
Кратчайшие пути из одной вершины в ориентированных ациклических графах. Алгоритм Дейкстры, слайд №1Кратчайшие пути из одной вершины в ориентированных ациклических графах. Алгоритм Дейкстры, слайд №2Кратчайшие пути из одной вершины в ориентированных ациклических графах. Алгоритм Дейкстры, слайд №3Кратчайшие пути из одной вершины в ориентированных ациклических графах. Алгоритм Дейкстры, слайд №4Кратчайшие пути из одной вершины в ориентированных ациклических графах. Алгоритм Дейкстры, слайд №5Кратчайшие пути из одной вершины в ориентированных ациклических графах. Алгоритм Дейкстры, слайд №6Кратчайшие пути из одной вершины в ориентированных ациклических графах. Алгоритм Дейкстры, слайд №7Кратчайшие пути из одной вершины в ориентированных ациклических графах. Алгоритм Дейкстры, слайд №8Кратчайшие пути из одной вершины в ориентированных ациклических графах. Алгоритм Дейкстры, слайд №9Кратчайшие пути из одной вершины в ориентированных ациклических графах. Алгоритм Дейкстры, слайд №10Кратчайшие пути из одной вершины в ориентированных ациклических графах. Алгоритм Дейкстры, слайд №11Кратчайшие пути из одной вершины в ориентированных ациклических графах. Алгоритм Дейкстры, слайд №12Кратчайшие пути из одной вершины в ориентированных ациклических графах. Алгоритм Дейкстры, слайд №13Кратчайшие пути из одной вершины в ориентированных ациклических графах. Алгоритм Дейкстры, слайд №14

Вы можете ознакомиться и скачать презентацию на тему Кратчайшие пути из одной вершины в ориентированных ациклических графах. Алгоритм Дейкстры. Доклад-сообщение содержит 14 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Кратчайшие пути из одной вершины в ориентированных ациклических графах. 
Алгоритм Дейкстры
Описание слайда:
Кратчайшие пути из одной вершины в ориентированных ациклических графах. Алгоритм Дейкстры

Слайд 2





Определения
Ориентированный граф без циклов называется ориентированным ациклическим графом.
Путь в графе — последовательность вершин, в которой каждая вершина соединена со следующей ребром.
Описание слайда:
Определения Ориентированный граф без циклов называется ориентированным ациклическим графом. Путь в графе — последовательность вершин, в которой каждая вершина соединена со следующей ребром.

Слайд 3





Постановка задачи
В задаче поиска кратчайших путей полагаются известными множества вершин и ребер ориентированного или неориентированного графа G(V,E) (V – множество вершин, E – множество ребер), а также вес ребер, где значение веса выражается действительным числом. 
Существует ряд задач поиска кратчайших путей из одной вершины, отличающихся своей постановкой, где такие отличия состоят в следующем: 
является ли граф ориентированным или неориентированным; 
является ли граф ациклическим или содержит циклы; 
принимают ли веса ребер только положительные значения или возможны и их отрицательные значения; 
принимают ли веса ребер только целочисленные значения; 
выражаются ли веса ребер малыми неотрицательными значениями
Описание слайда:
Постановка задачи В задаче поиска кратчайших путей полагаются известными множества вершин и ребер ориентированного или неориентированного графа G(V,E) (V – множество вершин, E – множество ребер), а также вес ребер, где значение веса выражается действительным числом. Существует ряд задач поиска кратчайших путей из одной вершины, отличающихся своей постановкой, где такие отличия состоят в следующем: является ли граф ориентированным или неориентированным; является ли граф ациклическим или содержит циклы; принимают ли веса ребер только положительные значения или возможны и их отрицательные значения; принимают ли веса ребер только целочисленные значения; выражаются ли веса ребер малыми неотрицательными значениями

Слайд 4





Способы решения
Алгоритм Беллмана – Форда для общего случая, когда вес каждого из ребер может быть отрицательным, с трудоемкостью О(VxE), где дополнительно определяется наличие цикла с отрицательным весом; 
Алгоритм поиска в ширину для случая ориентированных ациклических графов с трудоемкостью О(V+E); 
Алгоритм Дейкстры для произвольных графов с неотрицательными весами ребер, где трудоемкость определяется в зависимости от способа выборки помеченной вершины с минимальным весом и при использовании пирамид Фибоначчи может достигать величины порядка О(VlgV+E).
Описание слайда:
Способы решения Алгоритм Беллмана – Форда для общего случая, когда вес каждого из ребер может быть отрицательным, с трудоемкостью О(VxE), где дополнительно определяется наличие цикла с отрицательным весом; Алгоритм поиска в ширину для случая ориентированных ациклических графов с трудоемкостью О(V+E); Алгоритм Дейкстры для произвольных графов с неотрицательными весами ребер, где трудоемкость определяется в зависимости от способа выборки помеченной вершины с минимальным весом и при использовании пирамид Фибоначчи может достигать величины порядка О(VlgV+E).

Слайд 5





	Рассмотрим пример нахождение кратчайшего пути. Дана сеть автомобильных дорог, соединяющих области города. Некоторые дороги односторонние. Найти кратчайшие пути от центра города до каждого города области.

Для решения указанной задачи можно использовать алгоритм Дейкстры — алгоритм на графах, изобретённый нидерландским ученым Э. Дейкстрой в 1959 году. Находит кратчайшее расстояние от одной из вершин графа до всех остальных. Работает только для графов без рёбер отрицательного веса.

Пусть требуется найти кратчайшие расстояния от 1-й вершины до всех остальных.

Кружками обозначены вершины, линиями – пути между ними (ребра графа). В кружках обозначены номера вершин, над ребрами обозначен их вес – длина пути. Рядом с каждой вершиной красным обозначена метка – длина кратчайшего пути в эту вершину из вершины 1.
	Рассмотрим пример нахождение кратчайшего пути. Дана сеть автомобильных дорог, соединяющих области города. Некоторые дороги односторонние. Найти кратчайшие пути от центра города до каждого города области.

Для решения указанной задачи можно использовать алгоритм Дейкстры — алгоритм на графах, изобретённый нидерландским ученым Э. Дейкстрой в 1959 году. Находит кратчайшее расстояние от одной из вершин графа до всех остальных. Работает только для графов без рёбер отрицательного веса.

Пусть требуется найти кратчайшие расстояния от 1-й вершины до всех остальных.

Кружками обозначены вершины, линиями – пути между ними (ребра графа). В кружках обозначены номера вершин, над ребрами обозначен их вес – длина пути. Рядом с каждой вершиной красным обозначена метка – длина кратчайшего пути в эту вершину из вершины 1.
Описание слайда:
Рассмотрим пример нахождение кратчайшего пути. Дана сеть автомобильных дорог, соединяющих области города. Некоторые дороги односторонние. Найти кратчайшие пути от центра города до каждого города области. Для решения указанной задачи можно использовать алгоритм Дейкстры — алгоритм на графах, изобретённый нидерландским ученым Э. Дейкстрой в 1959 году. Находит кратчайшее расстояние от одной из вершин графа до всех остальных. Работает только для графов без рёбер отрицательного веса. Пусть требуется найти кратчайшие расстояния от 1-й вершины до всех остальных. Кружками обозначены вершины, линиями – пути между ними (ребра графа). В кружках обозначены номера вершин, над ребрами обозначен их вес – длина пути. Рядом с каждой вершиной красным обозначена метка – длина кратчайшего пути в эту вершину из вершины 1. Рассмотрим пример нахождение кратчайшего пути. Дана сеть автомобильных дорог, соединяющих области города. Некоторые дороги односторонние. Найти кратчайшие пути от центра города до каждого города области. Для решения указанной задачи можно использовать алгоритм Дейкстры — алгоритм на графах, изобретённый нидерландским ученым Э. Дейкстрой в 1959 году. Находит кратчайшее расстояние от одной из вершин графа до всех остальных. Работает только для графов без рёбер отрицательного веса. Пусть требуется найти кратчайшие расстояния от 1-й вершины до всех остальных. Кружками обозначены вершины, линиями – пути между ними (ребра графа). В кружках обозначены номера вершин, над ребрами обозначен их вес – длина пути. Рядом с каждой вершиной красным обозначена метка – длина кратчайшего пути в эту вершину из вершины 1.

Слайд 6





Инициализация

Метка самой вершины 1 полагается равной 0, метки остальных вершин – недостижимо большое число (в идеале — бесконечность). 
Это отражает то, что расстояния от вершины 1 до других вершин пока неизвестны. Все вершины графа помечаются как непосещенные.
Описание слайда:
Инициализация Метка самой вершины 1 полагается равной 0, метки остальных вершин – недостижимо большое число (в идеале — бесконечность). Это отражает то, что расстояния от вершины 1 до других вершин пока неизвестны. Все вершины графа помечаются как непосещенные.

Слайд 7





Первый шаг

Минимальную метку имеет вершина 1. Её соседями являются вершины 2, 3 и 6. Обходим соседей вершины по очереди.
Первый сосед вершины 1 – вершина 2, потому что длина пути до неё минимальна. Длина пути в неё через вершину 1 равна сумме кратчайшего расстояния до вершины 1, значению её метки, и длины ребра, идущего из 1-й в 2-ю, то есть 0 + 7 = 7. Это меньше текущей метки вершины 2 (10000), поэтому новая метка 2-й вершины равна 7.
Аналогично находим длины пути для всех других соседей (вершины 3 и 6).

Все соседи вершины 1 проверены. Текущее минимальное расстояние до вершины 1 считается окончательным и пересмотру не подлежит. Вершина 1 отмечается как посещенная.
Описание слайда:
Первый шаг Минимальную метку имеет вершина 1. Её соседями являются вершины 2, 3 и 6. Обходим соседей вершины по очереди. Первый сосед вершины 1 – вершина 2, потому что длина пути до неё минимальна. Длина пути в неё через вершину 1 равна сумме кратчайшего расстояния до вершины 1, значению её метки, и длины ребра, идущего из 1-й в 2-ю, то есть 0 + 7 = 7. Это меньше текущей метки вершины 2 (10000), поэтому новая метка 2-й вершины равна 7. Аналогично находим длины пути для всех других соседей (вершины 3 и 6). Все соседи вершины 1 проверены. Текущее минимальное расстояние до вершины 1 считается окончательным и пересмотру не подлежит. Вершина 1 отмечается как посещенная.

Слайд 8





Второй шаг

Шаг 1 алгоритма повторяется. Снова находим «ближайшую» из непосещенных вершин. Это вершина 2 с меткой 7.

Снова пытаемся уменьшить метки соседей выбранной вершины, пытаясь пройти в них через 2-ю вершину. Соседями вершины 2 являются вершины 1, 3 и 4.

Вершина 1 уже посещена. Следующий сосед вершины 2 — вершина 3, так как имеет минимальную метку из вершин, отмеченных как не посещённые. Если идти в неё через 2, то длина такого пути будет равна 17 (7 + 10 = 17). Но текущая метка третьей вершины равна 9, а 9 < 17, поэтому метка не меняется.
Ещё один сосед вершины 2 — вершина 4. Если идти в неё через 2-ю, то длина такого пути будет равна 22 (7 + 15 = 22). Поскольку 22<10000, устанавливаем метку вершины 4 равной 22.

Все соседи вершины 2 просмотрены, помечаем её как посещенную.
Описание слайда:
Второй шаг Шаг 1 алгоритма повторяется. Снова находим «ближайшую» из непосещенных вершин. Это вершина 2 с меткой 7. Снова пытаемся уменьшить метки соседей выбранной вершины, пытаясь пройти в них через 2-ю вершину. Соседями вершины 2 являются вершины 1, 3 и 4. Вершина 1 уже посещена. Следующий сосед вершины 2 — вершина 3, так как имеет минимальную метку из вершин, отмеченных как не посещённые. Если идти в неё через 2, то длина такого пути будет равна 17 (7 + 10 = 17). Но текущая метка третьей вершины равна 9, а 9 < 17, поэтому метка не меняется. Ещё один сосед вершины 2 — вершина 4. Если идти в неё через 2-ю, то длина такого пути будет равна 22 (7 + 15 = 22). Поскольку 22<10000, устанавливаем метку вершины 4 равной 22. Все соседи вершины 2 просмотрены, помечаем её как посещенную.

Слайд 9





Третий шаг

Повторяем шаг алгоритма, выбрав вершину 3. После её «обработки» получим следующие результаты.
Описание слайда:
Третий шаг Повторяем шаг алгоритма, выбрав вершину 3. После её «обработки» получим следующие результаты.

Слайд 10





Четвертый шаг
Описание слайда:
Четвертый шаг

Слайд 11





Пятый шаг
Описание слайда:
Пятый шаг

Слайд 12





Шестой шаг

Таким образом, кратчайшим путем из вершины 1 в вершину 5 будет путь через вершины 1 — 3 — 6 — 5, поскольку таким путем мы набираем минимальный вес, равный 20.
Описание слайда:
Шестой шаг Таким образом, кратчайшим путем из вершины 1 в вершину 5 будет путь через вершины 1 — 3 — 6 — 5, поскольку таким путем мы набираем минимальный вес, равный 20.

Слайд 13





Вывод кратчайшего пути
Займемся выводом кратчайшего пути. Мы знаем длину пути для каждой вершины, и теперь будем рассматривать вершины с конца. Рассматриваем конечную вершину (в данном случае — вершина 5), и для всех вершин, с которой она связана, находим длину пути, вычитая вес соответствующего ребра из длины пути конечной вершины.
Так, вершина 5 имеет длину пути 20. Она связана с вершинами 6 и 4.
Для вершины 6 получим вес 20 — 9 = 11 (совпал).
Для вершины 4 получим вес 20 — 6 = 14 (не совпал).
Если в результате мы получим значение, которое совпадает с длиной пути рассматриваемой вершины (в данном случае — вершина 6), то именно из нее был осуществлен переход в конечную вершину.
Отмечаем эту вершину на искомом пути.
Далее определяем ребро, через которое мы попали в вершину 6. И так пока не дойдем до начала.
Если в результате такого обхода у нас на каком-то шаге совпадут значения для нескольких вершин, то можно взять любую из них — несколько путей будут иметь одинаковую длину.
Описание слайда:
Вывод кратчайшего пути Займемся выводом кратчайшего пути. Мы знаем длину пути для каждой вершины, и теперь будем рассматривать вершины с конца. Рассматриваем конечную вершину (в данном случае — вершина 5), и для всех вершин, с которой она связана, находим длину пути, вычитая вес соответствующего ребра из длины пути конечной вершины. Так, вершина 5 имеет длину пути 20. Она связана с вершинами 6 и 4. Для вершины 6 получим вес 20 — 9 = 11 (совпал). Для вершины 4 получим вес 20 — 6 = 14 (не совпал). Если в результате мы получим значение, которое совпадает с длиной пути рассматриваемой вершины (в данном случае — вершина 6), то именно из нее был осуществлен переход в конечную вершину. Отмечаем эту вершину на искомом пути. Далее определяем ребро, через которое мы попали в вершину 6. И так пока не дойдем до начала. Если в результате такого обхода у нас на каком-то шаге совпадут значения для нескольких вершин, то можно взять любую из них — несколько путей будут иметь одинаковую длину.

Слайд 14





Реализация алгоритма Дейкстры

Для хранения весов графа используется квадратная матрица. В заголовках строк и столбцов находятся вершины графа. А веса дуг графа размещаются во внутренних ячейках таблицы. Граф не содержит петель, поэтому на главной диагонали матрицы содержатся нулевые значения.
Описание слайда:
Реализация алгоритма Дейкстры Для хранения весов графа используется квадратная матрица. В заголовках строк и столбцов находятся вершины графа. А веса дуг графа размещаются во внутренних ячейках таблицы. Граф не содержит петель, поэтому на главной диагонали матрицы содержатся нулевые значения.



Похожие презентации
Mypresentation.ru
Загрузить презентацию