МЕТОДЫ ОПРЕДЕЛЕНИЯ КРАТЧАЙШЕГО ПУТИ МЕЖДУ ВЕРШИНАМИ ГРАФА > Полезные советы
Тысяча полезных мелочей    

МЕТОДЫ ОПРЕДЕЛЕНИЯ КРАТЧАЙШЕГО ПУТИ МЕЖДУ ВЕРШИНАМИ ГРАФА

МЕТОДЫ ОПРЕДЕЛЕНИЯ КРАТЧАЙШЕГО ПУТИ МЕЖДУ ВЕРШИНАМИ ГРАФА

Зябиров Э.В. Токарев С.П. Федосеева Л.И. Статья в формате PDF 310 KB

Анализ алгоритмов, применяемых в настоящее время для поиска кратчайших путей между вершинами графа, позволил выявить алгоритмы Уоршолла, Дейкстры, Форда [1]. Все алгоритмы хаpaктеризуются разными вычислительными затратами и позволяют решать поставленную задачу, но наиболее эффективным считается алгоритм Дейкстры, предложенный в 1959 году.

Перед началом выполнения алгоритма все вершины и дуги не отмечены. Каждой вершине в ходе выполнения алгоритма присваивается число d(xi), равное длине кратчайшего пути из xi в xj, включающего только отмеченные вершины.

Выполняется присвоение начальных значений, для чего необходимо обозначить d(xi) пометку исходной вершины и считать, что d(xi) = 0. Отметить постоянной пометкой исходную вершину xi и положить y = xi, где y - последняя из отмеченных вершин. Остальные вершины имеют временные пометки и считать, что для xj ≠ y d(xj) = ∞. Алгоритм итерационный. Каждая итерация состоит из ряда шагов. Алгоритм Дейкстры рассмотрен на примере взвешенного графа (рис. 1,a). Матрица весов дуг приведена на рис. 1,b. Требуется найти кратчайший путь от вершины x1 до вершины x6.

 

Рис. 1. Пример поиска кратчайшего пути: a - граф; б - матрица весов дуг

Выполняется присвоение начальных значений: d(x1) = 0; xi ≠ x1 d(xi) = ∞.

Для каждой итерации, в соответствующую строку таблицы заносится отмеченная вершина и текущие значения d(xi). Для 1-й итерации будем иметь:

y = x1. Г(x1) = {x2, x3, x4}.

Для всех вершин, входящих в Г(x1), пометки которых временные, необходимо пересчитать d(xi) в виде:

d(x2) = min [d(x2), d(x1) + t(x1, x2)] = min [∞, 0 + 4] = 4.

Аналогично для d(x3), d(x4). Массив временных пометок будет иметь вид: {d(x2), d(x3), d(x4)} = 4, 3, 7}.

Поскольку величина d(x3) = 3 является минимальной, то вершина x3 отмечается x3*. Также отмечается и дуга (x1, x3)*. Наименьшее из значений d(xi) среди неотмеченных вершин в таблице выделено полужирным шрифтом.

Текущее дерево кратчайших путей состоит из дуги (x1, x3)* (рис. 2,а).

Таким образом, выполнив еще 4 итерации, получим окончательно построенное дерево кратчайших путей, которое состоит из дуг (x1, x3)*, (x1, x2)*, (x3, x5)*, (x2, x4)* и (x5, x6)* (рис. 2,д).

    

а                        б                         в                              г                          д
Рис. 2. Текущие деревья кратчайшего пути ─ a, б, в, г и окончательно построенное дерево кратчайших путей ─ д

Вычисления по алгоритму Дейкстры

Итерация

Отмеченная вершина

Расстояние до вершины

d(x1)

d(x2)

d(x3)

d(x4)

d(x5)

d(x6)

Начало

x1

0

1
итерация

x1*

0

4

3

7

2
итерация

x3*

0

4

3*

7

6

3
итерация

x2*

0

4*

3*

7

6

4
итерация

x5*

0

4*

3*

7

6*

8

5
итерация

x4*

0

4*

3*

7*

6*

8

Кратчайший путь, соединяющий вершину x1 с вершиной x6, состоит из дуг (x1, x2), (x2, x5) и (x5, x6) имеет длину 4 + 2 + 2 = 8. Это не единственный кратчайший путь между вершинами x1 и x6. Путь, состоящий из дуг (x1, x3), (x3, x5) и (x5, x6) имеет длину 3 + 3 + 2 = 8 и также является кратчайшим путем между вершинами x1 и x6.

Существуют алгоритмы более эффективные, чем процеДypa многократного повторения алгоритма Дейкстры. Эти алгоритмы принадлежат Флойду и Данцигу. В обоих алгоритмах для длин дуг допускаются отрицательные значения, однако не допускается наличие контуров отрицательной длины.

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

Список литературы

1. Майника Э. Алгоритмы оптимизации на сетях и графах. - М.: Мир, 1981. - 324 с.

2. Новиков Ф.А. Дискретная математика для программистов. - СПб: Питер, 2000. - 304 с.

3. Хаггарти Р. Дискретная математика для программистов. - М.: Техносфера, 2005. - 400 с.



НОВЫЙ ПОДХОД К ИССЛЕДОВАНИЮ ПРИРОДЫ ТЕРРОРИЗМА

НОВЫЙ ПОДХОД К ИССЛЕДОВАНИЮ ПРИРОДЫ ТЕРРОРИЗМА Статья в формате PDF 136 KB...

02 07 2026 6:13:30

К ВОПРОСУ О ПРОБЛЕМЕ ОТБОРА В ФУТБОЛЕ

К ВОПРОСУ О ПРОБЛЕМЕ ОТБОРА В ФУТБОЛЕ Статья в формате PDF 262 KB...

29 06 2026 10:19:33

ПРОБЛЕМЫ ИДЕНТИФИКАЦИИ МОДЕЛЕЙ РАСПРЕДЕЛЕНИЯ СЛУЧАЙНЫХ ВЕЛИЧИН С ПРИМЕНЕНИЕМ СОВРЕМЕННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

ПРОБЛЕМЫ ИДЕНТИФИКАЦИИ МОДЕЛЕЙ РАСПРЕДЕЛЕНИЯ СЛУЧАЙНЫХ ВЕЛИЧИН С ПРИМЕНЕНИЕМ СОВРЕМЕННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Рассмотрены некоторые проблемы идентификации моделей распределения данных, при использовании современного математического аппарата для решения этой задачи. Показано, что использование методов нелинейной оптимизации для идентификации моделей приводит к улучшению результатов идентификации, но одновременно, изменяет формальную постановку задачи. Выделено три группы проблем, связанных с выбором критериев согласия, их критических значений и проверкой адекватности получаемых моделей. Проанализированы возможные подходы к решению этих проблем. ...

28 06 2026 21:13:35

ПРЕДЕЛЬНЫЕ ЦИКЛЫ В СЛОЖНЫХ ЭКОЛОГИЧЕСКИХ СИСТЕМАХ «ХИЩНИКЖЕРТВА»

ПРЕДЕЛЬНЫЕ ЦИКЛЫ В СЛОЖНЫХ ЭКОЛОГИЧЕСКИХ СИСТЕМАХ «ХИЩНИКЖЕРТВА» В настоящей работе рассматриваются сложные иерархические системы «хищник -жертва - продуцент». В основу исследования таких систем положены достаточно хорошо известные экспериментальные данные, собранные компанией «Гудзонов залив» за более чем столетний период. На нижнем уровне сложной иерархической системы исследуется влияние солнечного потока на скорость роста продуцентов (деревьев, кустарников и т.д.). Показана возможность стохастических колебаний в многоуровневой системе. Подтверждена ранее высказанная гипотеза о возможности колебаний в системе «жертва -продуцент». Математическая модель описывает широкий спектр процессов и явлений, которые хаpaктерны для сложных экологических систем. ...

25 06 2026 3:46:43

Операционный стресс плода при кесаревом сечении

Операционный стресс плода при кесаревом сечении Статья в формате PDF 116 KB...

23 06 2026 6:43:37

СИСТЕМНЫЙ АНАЛИЗ (учебник для вузов)

СИСТЕМНЫЙ АНАЛИЗ (учебник для вузов) Статья в формате PDF 135 KB...

17 06 2026 12:32:15

Результаты обследования КД при заболеваниях глотки

Статья в формате PDF 122 KB...

14 06 2026 10:55:51

МОЛЕКУЛЯРНЫЙ СОСТАВ ВОДЫ

МОЛЕКУЛЯРНЫЙ СОСТАВ ВОДЫ     Статья в формате PDF 343 KB...

12 06 2026 21:24:52

НЕКОТОРЫЕ ЗАКОНОМЕРНОСТИ ТЕОРИИ РАДИОАКТИВНОСТИ

НЕКОТОРЫЕ ЗАКОНОМЕРНОСТИ ТЕОРИИ РАДИОАКТИВНОСТИ Статья в формате PDF 83 KB...

08 06 2026 11:15:10

Локация на основе теории всплесов

Локация на основе теории всплесов Статья в формате PDF 122 KB...

05 06 2026 21:40:53

НЕСТАЦИОНАРНАЯ МАТЕМАТИЧЕСКАЯ МОДЕЛЬ РАССЕЯНИЯ ПРИМЕСИ В МНОГОСЛОЙНОЙ АТМОСФЕРЕ

НЕСТАЦИОНАРНАЯ МАТЕМАТИЧЕСКАЯ МОДЕЛЬ РАССЕЯНИЯ ПРИМЕСИ В МНОГОСЛОЙНОЙ АТМОСФЕРЕ Предложена нестационарная математическая модель рассеяния примеси в трехслойной атмосфере (приземный, пограничный слои, слой свободной атмосферы). Приведены результаты исследования этой модели аналитическими методами в случае рассеяния легкой, сохраняющейся примеси при постоянной скорости ветра. ...

27 05 2026 17:44:28

К ПРОБЛЕМЕ ОТБОРА В ХОККЕЕ

К ПРОБЛЕМЕ ОТБОРА В ХОККЕЕ Статья в формате PDF 262 KB...

25 05 2026 6:46:52

Еще:
Поддержать себя -1 :: Поддержать себя -2 :: Поддержать себя -3 :: Поддержать себя -4 :: Поддержать себя -5 :: Поддержать себя -6 :: Поддержать себя -7 :: Поддержать себя -8 :: Поддержать себя -9 :: Поддержать себя -10 :: Поддержать себя -11 :: Поддержать себя -12 :: Поддержать себя -13 :: Поддержать себя -14 :: Поддержать себя -15 :: Поддержать себя -16 :: Поддержать себя -17 :: Поддержать себя -18 :: Поддержать себя -19 :: Поддержать себя -20 :: Поддержать себя -21 :: Поддержать себя -22 :: Поддержать себя -23 :: Поддержать себя -24 :: Поддержать себя -25 :: Поддержать себя -26 :: Поддержать себя -27 :: Поддержать себя -28 :: Поддержать себя -29 :: Поддержать себя -30 :: Поддержать себя -31 :: Поддержать себя -32 :: Поддержать себя -33 :: Поддержать себя -34 :: Поддержать себя -35 :: Поддержать себя -36 :: Поддержать себя -37 :: Поддержать себя -38 ::