Кратчайшие пути

Содержание

Слайд 2

Определения Пусть дан ориентированный взвешенный граф G= с весовой функцией Весом

Определения

Пусть дан ориентированный взвешенный граф G=
с весовой функцией
Весом пути


называется сумма весов ребер, входящих в этот путь:
Слайд 3

Определения если существует путь из u в v

Определения

если существует путь из u в v

Слайд 4

Определения Кратчайший путь из u в v – это любой путь

Определения

Кратчайший путь из u в v – это
любой путь p

из u и v, для
которого
Слайд 5

Варианты задач о кратчайшем пути Кратчайший путь из одной вершины: Дан

Варианты задач о кратчайшем пути

Кратчайший путь из одной вершины: Дан взвешенный граф

G= и начальная вершина s. Требуется найти кратчайшие пути из s во все вершины v∈V
Кратчайшие пути в одну вершину: Дана конечная вершина t. Требуется найти кратчайшие пути в t из всех вершин v∈V
Слайд 6

Варианты задач о кратчайшем пути Кратчайший путь между парой вершин: Даны

Варианты задач о кратчайшем пути

Кратчайший путь между парой вершин: Даны вершины u

и v. Требуется найти кратчайший путь из u в v
Кратчайшие пути для всех пар вершин: Для каждой пары вершин u и v найти кратчайший путь из u в v
Слайд 7

Варианты задач о кратчайшем пути Часто в задачах бывает необходимо найти

Варианты задач о кратчайшем пути

Часто в задачах бывает необходимо найти не

только кратчайший путь, но и сам путь.
Для каждой вершины v будем помнить ее предшественников π(v)
Слайд 8

Свойства кратчайших путей Лемма 1. (отрезки кратчайших путей являются кратчайшими) Пусть

Свойства кратчайших путей

Лемма 1. (отрезки кратчайших путей являются кратчайшими) Пусть дан ориентированный

взвешенный граф G=
с весовой функцией
Если p(v1 , v2 ,…, vk) –
кратчайший путь из v1 в vk и 1≤i≤j≤k, то
pij=(vi , vi+1 , … , vj) –
кратчайший путь из vi в vj
Слайд 9

Свойства кратчайших путей Следствие 1 Пусть дан ориентированный взвешенный граф G=

Свойства кратчайших путей

Следствие 1 Пусть дан ориентированный взвешенный граф G=
с весовой

функцией
Рассмотрим кратчайший путь p из s в v.
Пусть u→v – последнее ребро этого пути. Тогда
Слайд 10

Свойства кратчайших путей Лемма 2 Пусть дан ориентированный взвешенный граф G=

Свойства кратчайших путей

Лемма 2 Пусть дан ориентированный взвешенный граф G=
с весовой

функцией
Пусть s∈V
Тогда для всякого ребра (u,v)∈E
Слайд 11

Релаксация Для каждого ребра v∈V будем хранить некоторое число d[v], являющееся

Релаксация

Для каждого ребра v∈V будем хранить некоторое число d[v], являющееся верхней

оценкой веса кратчайшего пути из вершины s в v (оценка кратчайшего пути)
Слайд 12

Релаксация Начальное значение оценки кратчайшего пути и массива π определяется следующим образом: Initialize(G,s)

Релаксация

Начальное значение оценки кратчайшего пути и массива π определяется следующим образом:
Initialize(G,s)

Слайд 13

Релаксация Релаксация ребра (u, v) состоит в следующем: Значение d[v] уменьшается

Релаксация

Релаксация ребра (u, v) состоит в следующем:
Значение d[v] уменьшается до

d[u]+w(u,v), если
второе значение меньше первого
При этом π(v)=u
Слайд 14

Relax(u,v,w) If ( d[v]> d[u]+w(u,v)) d[v]=d[u]+w(u,v) π[v]=u В вершинах указаны оценки кратчайшего пути

Relax(u,v,w)

If ( d[v]> d[u]+w(u,v)) d[v]=d[u]+w(u,v)
π[v]=u

В вершинах указаны оценки кратчайшего пути

Слайд 15

Алгоритм Дейкстры Решает задачу о кратчайших путях из одной вершины s

Алгоритм Дейкстры

Решает задачу о кратчайших путях из одной вершины s графа

G= c весовой функцией w до всех остальных вершин графа.
Веса всех ребер неотрицательны
Слайд 16

Алгоритм Дейкстры Алгоритм строит множество S вершин v, для которых кратчайшие

Алгоритм Дейкстры

Алгоритм строит множество S вершин v, для которых кратчайшие пути

до вершины s уже известны, т.е. d[v]=δ(s,v)
На каждом шаге к множеству S добавляется та из оставшихся вершин u, для которой d[u] имеет наименьшее значение
После этого проводится релаксация всех ребер, выходящих из u
Слайд 17

Алгоритм Дейкстры Вершины, не лежащие в множестве S, хранятся в очереди

Алгоритм Дейкстры

Вершины, не лежащие в множестве S, хранятся в очереди с

приоритетами, определяемыми значениями функции d.
Пусть граф представлен списками смежности Adj[u] –список смежных вершин u
Q – очередь с приоритетами