Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

FLOID

.doc
Скачиваний:
3
Добавлен:
02.04.2015
Размер:
154.62 Кб
Скачать

11

ЛАБОРАТОРНАЯ РАБОТА

ОПРЕЛЕЛЕНИЕ КРАТЧАЙШИХ ПУТЕЙ ПО МАТРИЧНОМУ МЕТОДУ И МЕТОДУ ФЛОЙДА

Цель работы – ознакомление с методами определения кратчайших путей в интегрированных вычислительных сетях.

Распределение каналов и потоков информации на линии связи производится с учетом длины пути. Для оценки длины пути используются различные критерии:

-число транзитных участков между взаимодействующими узлами коммутации (УК);

-протяженность пути;

-качество тракта передачи;

-надежность передачи и т. д.

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

В теории потоков все методы выбора кратчайших путей основаны на утверждении о том, что если кратчайший путь ij от произвольного УК i к УК j проходит через промежуточные УКi1,…,УК ik (рис. 1), то кратчайшие пути μ i1,j,…,μ ik,j от УК i1,…, УК ik к УК j соответственно являются частями кратчайшего пути μ i,j от УК i к УК j .

l ik,j

l i1,j

l i,j

Рис. 1

Если длина пути m i1,j равна L i1,j ,то

L i,j = L i,i1 + L i1,j .

Так как μ i,j является кратчайшим, то

Lε,j = min ( l ε,ν + L ν,j), (1)

ν=i1,iN

где N -число узлов сети.

Для нахождения кратчайшего пути от узла ε к узлу j необходимо просмотреть все возможные пути и выбрать тот, у которого длина наименьшая.

Имеется ряд методов определения длины кратчайшего пути. Их можно разделить на две группы:

-методы нумерации узлов;

-матричные методы.

Матричный метод определения кратчайших путей позволяет найти длины кратчайших путей между всеми узлами сети одновременно и основывается на применении операций над матрицами расстояний.

Структуру сети связи с указанием длин ветвей можно описать в виде матрицы расстояний (длин) непосредственных связей

L = || l 1 i,j ||,hh

Элемент l1i,j определяет длину ветви β i,j .

Пример. Пусть сеть связи имеет вид представленный на рис. 2.

30 15

20 15 15

20

20 20

15

25 10 25

40

Рис. 2

Цифры на ребрах и дугах соответствуют длинам ветвей. Тогда матрица расстояний будет

A B C D E F

A || 0 30 ∞ 20 ∞ ∞ ||

B || ∞ 0 15 15 ∞ ∞ ||

L1 = C || ∞ 15 0 20 25 ∞ || (2)

D || 20 15 20 0 ∞ 25 ||

E || ∞ ∞ 25 10 0 40 ||

F || 15 ∞ ∞ 25 40 0 ||

Элементы главной диагонали равны 0, так как принимается, что расстояние внутри узла равно нулю. Если между парой узлов отсутствует ребро, то соответствующий элемент матрицы равен бесконечности (∞). Если между узлами i и j имеется дуга β1i,j , то элемент l1j,i также принимается равным бесконечности, например, l1A,F = ∞, тогда же l1 F,A =15. .

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

Матрица расстояний непосредственных связей неориентированной сети всегда симметрична относительно своей главной диагонали. Для ориентированной сети (как в примере) она может быть нессиметричной.

Возведем матрицу L1 в квадрат L2 = L1*L1 . Тогда

N

l2 i,j = ∑ l1i,k * l1k,j = l1i,1*l11,j + l1i,2*l12,j +…+l1i,N*l1N,j (3)

k=1

Можно интерпретировать умножение как последовательное соединение ветвей, а сложение как параллельное соединение ветвей.

Произведение l1 i,k*l1 k,j соответствует двухтранзитному пути (то есть пути проходящему через две транзитных ветви сети) от узла ik к узлу j через узел k (рис. 3а), а сумма, например, трех произведений

l1i,i* l1i,j + l1i,j*l1j, j + l1i,k*l1 k,j

трем двухтранзитным путям (рис. 3б).

a

l1i,j l1k,j

б

l1i,i

l1i,j

l1i,j l1 j,j

l1 i,k l1k,j

Рис. 3

Произведения l1i,i*l1i,j и l1i,j *l1j,j фактически соответствуют однотранзитным путям, так как длина пути (задержка) внутри УК (то есть l1i,i и l1j,j ) не принимаются во внимание.

Для подсчета длины каждого из таких n транзитных путей необходимо операцию умножения заменить операцией сложения, то есть вместо l1i,k*l1k,j будем иметь l1i,k + l1 k,j .

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

l2i,j = min (l1i,k + l1k,j) = min |(l1i,j + l11,j);(l1i,2 +l12,j);…(l1i,N + l1N,j)|

k=1,…,N

Таким образом элемент l2 i,j матрицы L2 равен длине кратчайшего пути от УКi к УКj среди всех одно- двухтранзитных путей.

При возведении матрицы L1 в r -ю степень при использовании этих операций получим матрицу

Lr = Lr-1*L1 ,

элемент которой

lr i,j = min (lr-1i,k + l1k,j) = min |(lr-1i,1 + l11,j);(lr-1i,2 + l12,j);…(lr-1i,N + l1N,j)|

k = 1,…,N

будет равен длине кратчайшего пути от УКi к УКj среди всех одно- двух- и т. д. r -транзитных путей.

При наличии на сети N узлов коммутации число транзитных ветвей в пути без петель не может быть больше N-1 . Следовательно, может потребоваться вычисление матрицы Lr, у которой r ≤ N-1.

Для конкретной сети может оказаться, что при r < N-1

Lr = Lr-1 . (4)

Так как при равенстве (4) всегда выполняется равенство Lr+1 = Lr, вычисление матрицы более высокой степени прекращается, если в процессе вычисления матриц встретится равенство (4).

Матрица Lr-1 при выполнении условия (4) называется дистанционной матрицей и обозначается

D = Lr-1 = Lr = || d i,j || . (5)

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

Для рассматриваемого примера вычислим l2A,B

L2A,B = min |(l 1A,A + l1A,B); (l1A,B + l1B B); (l1A,C + l1C,B ); (l1A,D + l1D,B);

(l1A,E + l1E,B);( l1A,F + l1 F,B)| =

= min |(0 + 30); (30 + 0); (∞ + 15); (20 + 15); (∞ + ∞);(∞ + ∞)|=

= min | 30; 30; ∞; 35,∞,∞ |=30 .

Аналогично вычислим остальные элементы матрицы L2 , получим

A B C D E F

A || 0 30 40 20 ∞ 45 ||

B || 35 0 15 15 40 40 ||

L2 = C || 40 15 0 20 25 45 ||

D || 20 15 20 0 45 25 ||

E || 30 25 20 10 0 35 ||

F || 15 40 45 25 40 0 ||

Затем

A B C D E F

A || 0 30 40 20 65 45 ||

B || 35 0 15 15 40 40 ||

L 3 = C || 40 15 0 20 25 45 ||

D || 20 15 20 0 45 25 ||

E || 30 25 20 10 0 35 ||

F || 15 40 45 25 40 0 ||

А затем

A B C D E F

A || 0 30 40 20 65 45 ||

B || 35 0 15 15 40 40 ||

L4 = C || 40 15 0 20 25 45 ||

D || 20 15 20 0 45 25 ||

E || 30 25 20 10 0 35 ||

F || 15 40 45 25 40 0 ||

Здесь L4 = L3, следовательно D = L3 .

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

Определение самого кратчайшего пути связано с некоторой дополнительной процедурой.

Если для определения длины кратчайшего пути применяется способ нумерации узлов, то при выполнении дополнительной процедуры учитывается свойство веса УКi . Это свойство заключается в том, что существует УКj , для которого выполняется равенство

Wi =li,j+Wj (6)

Отсюда следует, что

Wi – Wj = Li,j (7)

Поэтому если выполняется условие (7), то кратчайший путь от УКi проходит по ветви βi,j . Переходя к УКj , находим следующую ветвь, для которой выполняется последнее условие и которая также входит в этот кратчайший путь. Так, шаг за шагом можно определить все ветви, образующие кратчайший путь.

Исключив затем кратчайший путь из рассмотрения подобным образом определяются и другие пути от исходящего УКi к входящему УКj. Данный метод выбора кратчайших путей от одного узла до всех остальных узлов называется методом Флойда.

При матричном методе определения кратчайшего пути дополнительно к дистанционной матрице на основе матрицы длин непосредственных связей составляется так называемая матрица длин непосредственных связей Г, элементы главной диагонали которой в отличие от элементов li,j =0 имеют значения li,j =∞,где значком ∞ обозначена бесконечность. Таким образом, матрица Г легко может быть получена по матрице L1 .

Пример

Для рассматриваемого случая

A B C D E F

A || ∞ 30 ∞ 20 ∞ ∞ ||

B || ∞ ∞ 15 15 ∞ ∞ ||

Г= C || ∞ 15 ∞ 20 25 ∞||

D || 20 15 20 ∞ ∞ 25||

E || ∞ ∞ 20 10 ∞ 40||

F || 15 ∞ ∞ 25 40 ∞ ||

Замена элемента l1i,i на l1 i,i = ∞ в матрице Г означает, что длина пути в УКi принимается бесконечно большой. Это дает возможность не рассматривать все пути проходящие через исходный узел , то есть позволяет исключить путь (βi,i , β i,j), изображенный на рис. 3б. Полученная таким способом модернизированная матрица длин Г= ||γ i.j || умножается на дистанционную матрицу D с использованием тех же операций, что и ранее. При умножении матрицы Г на матрицу D образуется матрица Δ = ГD, элементы которой используются для получения дисперсионных матриц (то есть матриц величин второго и т. д. кратчайших путей). Каждый элемент матрицы Δ= || δ i,j || имеет вид

δ i,j = min |(γi,1 + d1,j);(γi,2 + d 2,j);…(γ i,i + d i,j);…(γ i,N + d N,j)| (8)

k

В выражении (8) min означает, что минимум может браться для кратчайшего пути (к=1), второго по длине пути (к=2) и т. д. Каждый из членов (γ i,e + d e,j) = ∞ в выражении (8) определяет длину пути от узла i к узлу j ,если первым транзитным узлом после узла i на пути к узлу j будет узел ε, ε  (1,…,N). Если узел ε не является соседним узлом i, то

i,ε + d ε,j) = ∞.

Так как γ i,i = ∞, член (γ i,i + d i,j) будет всегда ∞. При этом элемент ( i,j +d j,j ) не обязательно равен ∞. Таким образом, число членов выражения (8), не равных бесконечности, равно числу n соседних УК, то есть числу исходящих из УК направлений (ветвей).

Член выражения (8), имеющий минимальное значение и определяющий длину кратчайшего пути от узла i к узлу j через узел ε

δ1i,j = min |( γ i,1 + d 1,j);…( γ i,N + d N,j)|

1

заносится в качестве элемента 1i,j в дисперсионную матрицу первого выбора Δ1 = || δ 1 i,j ||. Второй по значению член выражения (8), определяющий длину второго по протяженности пути после кратчайшего от узла i к узлу j

δ 2i,j = min |(γ i,1 + d 1,j );…(γ i,N + d N,j)|

2

заносится в качестве элемента δ2i,j в дисперсионную матрицу второго выбора Δ2 = ||δ 2i,j || ..

При наличии n соседних узлов можно получить n дисперсионных матриц ∆1 ,…, ∆n .

Рассмотрим пример расчета элементов матриц  (  1, 2,…).

Пусть сеть связи имеет вид, представленный на рис. 2.

Тогда матрицы L 1 и Г будут

A B C D E F A B C D E F

A|| 0 30  20   || A||  30  20   ||

B||  0 15 20   || B ||   15 20   ||

L1= C ||  15 0 20 25  || Г= C ||  15  20 25  ||

D||20 15 20 0 ∞ 40 || D || 20 15 20   40 ||

E||   20 15 0 40 || E ||   20 15  40||

F|| 15   25 40 0 || F || 15   25 40  ||

Тогда, например, элемент δ1,21 ,определяющий минимальный по протяженности путь от вершины A к вершине B матрицы Δ1 согласно (8) будет

δ1,2 1 = min [(γ1,1 + d1,2);(γ1,2 + d2,2);(γ1,3 + d3,2); (1,4 + d4,2); (γ1,5 + d5,2);

1 1,6 + d 6,2)] =

= min [(∞ +30); (30 + 0); (∞ + 15); (20 +15); (∞ +25); (∞ +40) = 30

1

Так как минимальное значение в выражении находится на втором месте, что соответствует вершине B, то в минимальном пути от вершины A к вершине B нет промежуточных вершин.

Элемент δ1,22 матрицы Δ 2 , соответствующий второму по протяженности пути от вершины A к вершине B, будет

δ 1,2 2 = min […. ] = 35.

2

Так как второе по минимуму выражение находится на четвертом месте, что соответствует вершине D, то второй по протяженности путь от вершины A к вершине B проходит через вершину D.

Выбрав кратчайшие пути от какого либо узла ко всем остальным, можно построить так называемое дерево кратчайших путей, в котором из всего множества путей от узла указаны только кратчайшие от него пути ко всем остальным узлам.

Например, для графа рис. 2, которому сопоставлена матрица L 1 непосредственных связей, дерево кратчайших путей изображено на рис. 4.

Дерево кратчайших путей является поддеревом дерева путей (рис.5).

B

C

E

A

D

D

F

Рис. 4.Дерево кратчайших путей от вершины А

ко всем остальным вершинам

Замечание. Дерево кратчайших путей и дерево путей от узла ко всем остальным узлам для неориентированных графов (сетей) совпадает с деревом кратчайших путей и деревом путей соответственно от всех узлов к рассматриваемому узлу i. Для ориентированных графов (сетей связи) такого совпадения может и не быть.

F

E

D

F

E

F

F

D

D

C

E

D

F

B

F

F

C

F

E

F

D

F

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