Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
42
Добавлен:
11.04.2015
Размер:
122 Кб
Скачать
☆

Децентрализованный алгоритм Форда-Фолкирсона

Впервые был использован в сети ARPANet. В настоящее время являтся технологической основой сетиInternet. В каждом узле связихраняться две таблицы. Расширенныя таблица маршрутизации и матрица стоимостей.

Получатель

Смежный

Стоимость доставки до получ

…

…

…

Получатель

w1

w2

… (смежные с тек.)

Минимальная стоимость доставки, если пакет пойдет через узел w1

Кроме того в текущем узле храняться стоимости каналов со смежными узлами. Обозначим Cd(v,w) – минимальная стоимость доставки из текущего узлаvдо получателяdчерез смежный узелw(смежный с текущим, сv).Dd(v) – минимальная стоимость доставки из текущего узлаvдо получателяd, т.е. . Величиныc,v,wявляются содержанием матрицы стоимостей.Dd(v) – третий столбец маршрутной таблицы,l(v,w) – стоимость канала. Все управление алгоритмом и узлами строиться на событиях.

Событие1. В сеть дополнен канал (v,m) между текущим узломvи смежным с ним узломm. Его стоимостьl(v,m). Возможно, что узелmявляется новым. Появление узла = появление канала. Такое событие инициируется администратором.

Шаг1. В текущем узлеvв матрице стоимостей в строке для получателя с номеромmи в столбце для смежного узла с номеромmфиксируется значениеCm(v,m) =l(v,m).

Шаг2. Для получателя с номеромmпересчитывается минимальная стоимость доставки из узлаv, ,w– смежный узел. Сравниваем его с имеющимся значением маршрутной таблицы. Если значения различны, то новое значениеDm(v) заносится в таблицу (m,p,Dm(v)), гдеp– номер узла, на котором достигнут минимум (в матрице стоимостей это номер столбца). Как правилоp=m, иначе нет смысла во введении нового канала. Всем смежным узлам посылается сообщение [m,Dm(v)], в котором текущий узелvинформирует соседей, что стоимость доставки из узлаmдо текущего узлаvизменилась.

Шаг3. Из текущего узлаvв смежный узелmполылается сообщение [p,Dp(v)] для всех получателейp(узелvпересылает в узелmсвою маршрутную таблицу без второго столбца в виде сообщений).

Событие2. Изменилась стоимость канала (v,m) на величину(v,m). Если< 0, то произошло улучшение связи, иначе снижение, вплоть до выхода канала из строя.

Шаг1.Cd(v,m) =Cd(v,m) +(v,m) для всех получателейd. Весь столбецmматрицы стоимостей изменится на величину(v,m).

Шаг2. Для всех получателей расчитываются новые значенияDd(v). Если для какого-либо получателяpизменилась стоимость доставкиDp(v), то в маршрутной таблице формируется новая строка (p,w,Dp(v)) – стоимость доставки до получателяpчерез узелw. Всем смежным узлам посылаются сообщения [p,Dp(v)].

Событие3. В текущий узелvиз смежного узлаwпришло сообщение [p,Dp(w)], которое говорит, что стоимость доставки до узлаpчерезwизменилась. Еслиp=v, то сообщение игнорируется.

Шаг1. pv, тогда в матрице стоимостей в строке с номеромpв столбцеwзаписывается новое значениеCp(v,w) =Dp(w) +l(v,w).

Шаг2. Для получателя pрассчитываются новая минимальная стоимость доставкиDp(v). Если это значение изменилось, то в маршрутной таблице формируется новая строка (p,m,Dp(v)),m– номер узла, через который достигнуто минимальное расстояние. Всем смежным узлам посылается сообщение [p,Dp(v)].

Формат сообщения [v,w,p,Dp(v),t,flag].

v = 1

2

4

смж

ст

v = 2

1

3

4

см

ст

2

1

5

2

1

1

1

7

5

1

1

3

4

4

4

4

3

5

3

5

3

3

4

4

2

4

2

4

3

5

3

4

3

v = 3

2

4

смж

ст

v = 4

1

2

3

см

ст

1

4

4

2

4

1

2

4

6

1

2

2

3

5

2

3

2

3

3

5

2

3

4

6

2

4

2

3

6

6

2

3

2

Соседние файлы в папке Lectures 1semestr