Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Monografia-2004.doc
Скачиваний:
22
Добавлен:
05.11.2018
Размер:
2.11 Mб
Скачать

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

Алгоритм Дейкстры используется для построения деревьев кратчайших маршрутов от узла-источника ко всем остальным узлам ТКС [3,17]. Он выполняется итеративно.

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

Рассмотрим описание работы алгоритма. Введём следующие обозначения:

G(s,f,w) – ориентированный граф ТКС;

–узел-источник;

– множество узлов, обработанных алгоритмом;

()– множество узлов, обрабатываемых алгоритмом;

–остальные узлы;

– стоимость ребра , причём

w(i,j)=0; , если эти два узла не соединены непосредственно;

, если эти два узла непосредственно соединены;

L(j), где , – оценка алгоритмом стоимости маршрута от узла-источника s0 до узла v;

L(j), где , – стоимость кратчайшего маршрута от узла-источника s0 до узла v. (Для остальных j значение L(j) не определено).

Требуется построить дерево кратчайших маршрутов от узла-источника s0 до остальных узлов ТКС и вычислить их стоимости.

Работа алгоритма:

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

T1 - пусто, T1={s0}, т.е. вначале множество обработанных узлов состоит только из узла-источника. Узлу-источнику сопоставляется пустой маршрут.

L(v)=w(s0vv) для , т.е. начальные стоимости маршрутов к соседним узлам – это веса соответствующих ребер графа G, причём L(s0)=0.

  1. Шаг алгоритма.

Берем из T1 узел с минимальной оценкой стоимости маршрута, помещаем его в T0 ии обозначаем соответствующий ему маршрут как кратчайший. Иными словами,

находим такой, что

. (3.2.2)

При этом рассматриваем все ребра с начальным узлом x. Для каждого ребра (x, j) выполняется одно из трех действий:

А) если , то никаких действий не производится;

Б) если , то j переводится из множества T2 в T1, причем ей сопоставляются значение

, (3.2.3)

а также маршрут, состоящий из кратчайшего маршрута до x и ребра (x,j).

В) если , то производится новая оценка

, (3.2.4)

и узлу j сопоставляется соответствующий оценке маршрут (либо прежний, либо как в Б)).

Итерации повторяются до тех пор, пока T0 не станет равно s. По окончании работы алгоритма для каждого узла x будет определен кратчайший маршрут к нему от узла-источника, а значение L(x) будет соответствовать стоимости этого маршрута.

Алгоритм Дейкстры имеет вычислительную сложность O(N2), где N – число узлов ТКС.

3.3. Критерии существования оптимальных маршрутов передачи данных в динамических ткс на основе простых карт и таблиц маршрутизации

3.3.1. Критерий маршрутизируемости

Пусть ТКС задана своей графовой моделью, т.е. орграфом G(A,R,W). Назовем простой таблицей маршрутизации τi узла ai A отображение множества узлов A ТКС на множество узлов-соседей Ai A узла ai, т.е.

(3.3.1)

С каждым узлом ТКС ai A свяжем локальную БД и локальную БЗ маршрутизации. БД определяется как результат отображения τi, т.е. набором пар узлов из Ai×τi(Ai)), а БЗ - как само отображение τi . Это позволяет учитывать в БЗ дополнительные характеристики ТКС, такие как топология сети, стоимости каналов связи и т.п.

Таблицы маршрутизации, реализованные в локальных БД узлов ТКС, могут строиться с помощью БЗ в соответствии с некоторым критерием оптимальности (например, минимизация суммарной стоимости маршрута) на основе экспертных или иных решающих правил (тогда множество параметров, учитываемых при выборе маршрута, может быть расширено) или задаваться напрямую администратором сети. Примером таких таблиц могут служить простые таблицы маршрутизации стандартного вида.

Пусть для каждого узла ТКС задана связанная с ним БД – простая таблица маршрутизации. Назовем множество таких таблиц простой картой маршрутизации ТКС. Формально карту маршрутизации глобальной ТКС можно представить в виде

. (3.3.2)

Карта маршрутизации T может быть реализована как распределенная по узлам ТКС БД, представляющая собой совокупность таблиц маршрутизации. При этом не производится предварительная (априорная) прокладка маршрутов от одного узла ТКС к другому, а осуществляется только определение соседей для каждого узла ТКС.

Управление потоками данных будет производиться на основе таблиц маршрутизации на передающих узлах, каждая их которых будет определять выбор следующего узла маршрута. В этом случае сам маршрут передачи данных от одного узла ТКС к другому будет являться результатом только распределённого сетевого управления.

Настройка таблиц маршрутизации должна будет осуществляться так, чтобы конечный маршрут передачи данных был корректным и соответствовал накладываемым на него ограничениям на пропускную способность каналов связи и пропускную способность узлов ТКС и заданным требованиям (например, минимизация стоимости маршрутов). Заметим, что пропускная способность узла ТКС определяется, исходя из пропускной способности его каналов связи и размера (объёма памяти) буфера узла для пересылаемых пакетов данных.

Если карта маршрутизации T будет реализована как глобальная БД маршрутизации ТКС, которая может храниться в памяти маршрутизатора-координатора, то этап прокладки маршрутов будет осуществляться агентом-координатором. Агент-координатор на основе карты маршрутизации и глобальной БЗ сам проложит по таблицам маршрутизации необходимый (например, оптимальный) маршрут от узла-источника к узлу-получателю и вернет его запрашивающему агенту-узлу.

В обоих случаях сетевое управление прокладкой маршрута ведётся следующим образом: фиксируется узел-получатель данных f и для него от узла-источника s последовательными отображениями строится последовательность узлов ТКС вида

s=a0, a1, a2, …, ak=f, (3.3.3)

таких, что для любого i=1, 2, …, k справедливо соотношение τi-1(f)=ai.

Карту маршрутизации ТКС и соответствующую ей БД будем называть корректной, если по ней можно проложить маршрут передачи данных между любыми двумя узлами графа G(A,R,W).

Критерий, позволяющий прокладывать с помощью карты маршрутизации маршруты передачи пакетов данных между любыми двумя узлами ТКС, будем называть критерием коммуникабельности (маршрутизируемости) ТКС.

Основываясь на глобальной БД, реализующей карту маршрутизации ТКС, этот критерий можно сформулировать в виде следующей теоремы.

Теорема 3.3.1. Карта маршрутизации ТКС корректна, т.е. для любого узла-источника данных s и любого узла-получателя данных f из множества A узлов ТКС существует последовательность узлов вида (3.1.3) такая, что

для всех i=1,2,…,k, (3.3.4)

тогда и только тогда, когда для любого узла и для любого разбиения множества A на непустые подмножества A1 и A2, такие, что , найдутся узлы и , для которых справедливо соотношение

τ1(f)=a2. (3.3.5)

Для доказательства теоремы 3.3.1 сначала покажем, что из второго утверждения следует первое. Зафиксируем узел-получатель . Рассмотрим любое разбиение множества узлов на подмножества A1 и A2, где . Возьмем любой узел из подмножества A1 и обозначим его через s. Тогда существует последовательность узлов вида (3.3) такая, что для любого i=1, 2, ..., k верно, что τi-1(f)=ai. Так как узел-источник , а узел-получатель , то существует такой индекс j, что

, и τj-1(f)=aj. (3.3.6)

Таким образом, требуемая импликация доказана.

Покажем теперь справедливость обратной импликации, т.е. докажем, что из первого утверждения теоремы следует второе. Зафиксируем узлы . Разобьем множество узлов A на подмножества A1(0) и A2(0), причем A2(0)={f}. Тогда существует такой узел , что τ1(f)=f. Если , то разобьем множество A на подмножества A1(1) и A2(1), где A2(1)={f, a1}. Тогда существует такой узел , что . Если , то продолжим построение последовательности узлов до тех пор, пока не получим ak=s. Заметим, что для всех подмножеств A2(i) верно, что из любого узла этих подмножеств существует маршрут до узла-получателя f, определяемый таблицами маршрутизации ТКС. Поскольку , то между узлом-источником s и узлом-получателем f существует маршрут, определяемый таблицами маршрутизации. Следовательно, обратная импликация также справедлива.

Таким образом, теорема 3.3.1 доказана. Она определяет необходимое и достаточное условие коммуникабельности (маршрутизируемости) ТКС в терминах корректности карты маршрутизации.

Важно отметить, что таблицы маршрутизации определяют только один маршрут между узлом-источником s и узлом-получателем f. В противном случае существовали бы такие таблицы iT и узлы aA, для которых справедливы соотношения

, (3.3.7)

что противоречит определению простых таблиц маршрутизации для узлов ТКС.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]