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

сиаод / 35-66 / 57.Алгоритм Воршалла

..pdf
Скачиваний:
64
Добавлен:
11.05.2015
Размер:
415.02 Кб
Скачать

57.Алгоритм Воршалла.

G=(V,E)Транзитивное замыкание ориентированного графа с n вершинами можно определить как булиеву матрицу Т размера n*n, в кот. Элемент на пересечении i-той строки и j-того столбца равен 1, если существует ориентированный путь положительной длины из вершины I в вершину j.В противном случае это

значение равно 0. А-матрица смежности.

 

0

1

0

0

 

1

1

1

1

А

0

0

0

1

Т

1

1

1

1

 

0

0

0

0

 

0

0

0

0

 

1

0

1

0

 

1

1

1

1

Воршалл предложил строить транзитивное замыкание как последовательность матриц размера n*n

–элемент матрицы содержит 1, если есть путь из I в j, причем все

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

.

Если существует путь от I до j и от k до j, то существует путь от k до i-появл.1.

 

 

 

0

1

0

0

 

 

 

0

1

0

1

 

 

0

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R

(1)

 

0

0

0

1

R

(2)

 

0

0

0

1

(3)

 

0

0

0

1

 

0

0

0

1

 

0

0

0

0 R

 

0

0

0

0

 

 

 

1

0

1

0

 

 

 

1

1

1

1

 

 

1

1

1

1

Алгоритм Wavshell(A[1..n]*A[1..n])

1.R(0)A;

2.for k=1 to n do 3.for i=1 to n do 4.for j=1 to n do

5.R(k)[I,j]R(k-1)[I,j] or (R(k-1)[I,k] and R(k-1)[k,j] 6.end for

7.end for; 8.end for; 9.retirn R(n)

Вычислит.сложность=О(n3)

 

1

1

1

1

 

R(4)

1

1

1

1

T

 

0

0

0

0

 

 

1

1

1

1

 

 

0

1

0

0

R(0)

0

0

0

1

 

0

0

0

0

 

1

0

1

0

Соседние файлы в папке 35-66