Опубликован: 27.09.2006 | Уровень: специалист | Доступ: свободно | ВУЗ: Нижегородский государственный университет им. Н.И.Лобачевского
Лекция 15:

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

< Лекция 14 || Лекция 15: 12 || Лекция 16 >
Аннотация: В этой лекции рассматриваются связные графы с неотрицательными весами ребер. А также кратчайшие пути, геодезическое дерево и алгоритм Дейкстры.

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

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

Геодезическое дерево

Пусть \[ a \] - вершина связного графа \[ G \] с заданной на множестве ребер весовой функцией \[ w \] с неотрицательными значениями. Каркас \[ T \] графа \[ G \] с корнем \[ a \] называется геодезическим деревом, если для любой вершины \[ x \] путь между вершинами \[ x \] и \[ a \] в дереве \[ T \] является кратчайшим путем между этими вершинами в графе \[ G \] . Это обобщает понятие геодезического дерева, введенное в "лекции 4" и соответствующее случаю, когда все веса равны 1. Докажем сначала, что геодезическое дерево всегда существует.

Обозначим через \[ \delta (x) \] вес кратчайшего пути между вершинами \[ x \] и \[ a \] в графе \[ G \] . Дерево \[ F \] с корнем \[ a \] назовем частичным геодезическим деревом, (ЧГД), если существует такое геодезическое дерево \[ T_{0} \] с корнем \[ a \] , что \[ F \] является подграфом дерева \[ T_{0} \] . Иначе говоря, ЧГД - это корневое дерево, которое можно достроить до геодезического дерева с тем же корнем.

Пусть \[ V \] - множество всех вершин графа \[ G \] . Для множества \[ A\subseteq V \] через \[ \overline{A} \] обозначаем дополнение \[ A \] до \[ V \] .

Теорема 1. Пусть \[ T \] - ЧГД с корнем \[ a \] и множеством вершин \[ A \] в графе \[ G \] , \[ (x_{0},y_{0}) \] - ребро c наименьшим значением величины \[ \delta (x)+w(x,y) \] среди всех ребер \[ (x,y) \] , где \[ x\in A \] , \[ y\in \bar{A} \] . Тогда \[ T'={T\cup \{ (x_{0},y_{0} )\}} \] - ЧГД с корнем \[ a \] .

Доказательство.

Рассмотрим в дереве \[ T' \] путь \[ P' \] , соединяющий вершину \[ y_{0} \] с корнем \[ a \] . Он состоит из пути между вершинами \[ a \] и \[ x_{0} \] в дереве \[ T \] и ребра \[ (x_{0},y_{0}) \] , следовательно, .

\[ w(P')=\delta (x_{0} )+w(x_{0},y_{0}). \]

Мы должны доказать, что он является кратчайшим путем между вершинами \[ a \] и \[ y_{0} \] в графе \[ G \] . Допустим, имеется путь \[ P \] между этими вершинами, такой, что.

\[ w(P) < w(P'). \]

Пусть \[ (u,v) \] - первое ребро пути \[ P \] , у которого \[ u\in A \] , \[ v\in \overline{A} \] (считаем, что путь начинается в вершине \[ a \] ). Так как веса ребер неотрицательны, то

\[ w(P)\ge \delta (u)+w(u,v). \]

Из (1), (2) и (3) следует неравенство \[ \delta (u)+w(u,v) < \delta (x_{0}) +w(x_{0},y_{0}) \] , противоречащее выбору ребра \[ (x_{0},y_{0}) \] .

Эта теорема показывает, что геодезическое дерево можно построить с помощью следующего алгоритма.

Алгоритм 1. Построение геодезического дерева для вершины \[ a \] .

  1. cоздать дерево \[ T \] из одной вершины \[ a \]
  2. \[ \delta (a):=0 \]
  3. \[ A:=\{ a\} \]
  4. while \[ A\ne V \] do
  5. cреди ребер \[ (x,y) \] , где \[ x\in A \] , \[ y\in \overline{A} \] , найти ребро \[ (x_{0},y_{0}) \] c наименьшим значением величины \[ \delta (x)+w(x,y) \] ;
  6. добавить к дереву \[ T \] вершину \[ y_{0} \] и ребро \[ (x_{0},y_{0}) \] ;
  7. \[ \delta (y_{0} ):=\delta (x_{0} )+w(x_{0},y_{0}) \]

Этот алгоритм очень похож на алгоритм Прима для построения оптимального каркаса. Единственное отличие между ними состоит в правиле выбора ребра, присоединяемого к строящемуся дереву на очередном шаге. В алгоритме Прима выбирается ребро наименьшего веса, а в алгоритме для построения геодезического дерева - ребро с минимальным значением величины \[ \delta (x)+w(x,y) \] . Ясно, что и оценка трудоемкости нового алгоритма будет такая же, как и для алгоритма Прима, то есть \[ O(n^{3}) \] . Подобно алгоритму Прима, этот алгоритм можно рационализировать, понизив тем самым оценку трудоемкости до \[ O(n^{2}) \] . Усовершенствованный алгоритм поиска кратчайших путей известен как алгоритм Дейкстры.

< Лекция 14 || Лекция 15: 12 || Лекция 16 >
Татьяна Наумович
Татьяна Наумович

Скажите, пожалуйста, можно ли еще получить документ о прохождении курса ("Графы и алгоритмы", декабрь 2020) после предоставления всех дополнительных необходимых документов?
Или нужно проходить заново?

Петр Петров
Петр Петров

произведение графов К(2)*О(4) фактически 4 отдельных графа К(2)?