Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Централизованные алгоритмы нахождения кратчайшего пути

МАРШРУТИЗАЦИЯ (СЕТЕВОЙ УРОВЕНЬ. 3-ий УРОВЕНЬ OSI) | КОММУТАЦИЯ ИНФОРМАЦИОННЫХ ПОТОКОВ В СЕТЯХ | НА КРАТЧАЙШИХ ПУТЯХ | ВОЛНОВЫЕ МЕТОДЫ МАРШРУТИЗАЦИИ | В СЕТЯХ | МЕЖКОНЦЕВОЕ ОКОННОЕ УПРАВЛЕНИЕ ПОТОКАМИ | ДЛЯ ВИРТУАЛЬНЫХ КАНАЛОВ | АЛГОРИТМ МАРШРУТИЗАЦИИ СЕТИ ARPANET | МАРШРУТИЗАЦИИ СЕТИ TYMNET | МАРШРУТИЗАЦИИ В АРХИТЕКТУРЕ SNA |


Читайте также:
  1. III. Комплексные умения и алгоритмы к
  2. Алгоритм Форда-Беллмана нахождения минимального пути
  3. Алгоритмы взаимоисключения Деккера и Петерсона.
  4. Алгоритмы наиболее распространенных дел.
  5. Алгоритмы с применением прерываний процессов и без них.
  6. Алгоритмы УНЛиП. Алгоритм Робертса. Нахождение нелицевых плоскостей и ребер.
  7. Взвешенные графы и алгоритмы поиска кратчайшего пути.

 

Наиболее распространенными стандартными алгоритмами решения задачи нахождения кратчайшего пути на графе являются: алгоритм Беллмана-Форда, алгоритм Дийкстра и алгоритм Флойда-Уоршела [1],[10].

Первые два алгоритма находят кратчайшие пути от узла источ­ника ко всем другим узлам, а третий алгоритм находит кратчайшие пути от всех узлов ко всем другим узлам.

Рассмотрим в качестве примера алгоритм Дийкстра. Этот алго­ритм требует, чтобы длины (веса) всех ребер были положительны. Объем вычислений для этого алгоритма значительно меньше, чем у алгоритма Беллмана-Форда.

Основная идея алгоритма - отыскание кратчайших путей в по­рядке возрастания длины пути.

Чтобы формально описать процедуру нахождения кратчайшего пути, будем считать, что каждый узел i имеет метку Di, означаю­щую текущую оценку длины кратчайшего пути от узла 1. Когда оцен­ка становится неизменной, будем считать, что узел окончательно помечен, и множество окончательно помеченных узлов обозначим че­рез Р. Узел, который будет добавлен на очередном шаге к Р, яв­ляется ближайшим к узлу 1 среди всех узлов, еще не вошедших в Р.

Алгоритм работает следующим образом.

Полагаем Р = {1}, Di = 0 Di = d1j " j¹1 при наличии cвязи узла c1.

Шаг I. Поиск следующего ближайшего узла.

Находим узел iÏ P такой, что Di minjÏP Dj

Полагаем Р: PÈ{1}. Еcли Р содержит вcе узлы, то на этом работа алгоритма заканчивается.

Шаг 2. Обновление меток.

Для всех jÏP положить Di min {Dj, Di + dij}

Перейти к шагу I.

Пример использования алгоритма Дийкстра приведен на рис. 2.2.

Число операций, выполняемых алгоритмом Дийкстра на каждом шаге, пропорционально N, а шаги итерируются N-1 раз. Таким обра­зом, объем вычислений в худшем случае пропорционален N2, а не N3, как у алгоритма Беллмана-Форда.

 

 


Дата добавления: 2015-07-25; просмотров: 36 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
МАРШРУТИЗАЦИЯ В ИНФОРМАЦИОННЫХ СЕТЯХ| РАСПРЕДЕЛЕННЫЙ АЛГОРИТМ БЕЛЛМАНА-ФОРДА

mybiblioteka.su - 2015-2024 год. (0.005 сек.)