Рефераты. Распределенные алгоритмы

Сайдон замечает, что хотя алгоритм может передать маркер в уже посещенную вершину, он обладает лучшей временной сложностью (и сложностью сообщений), чем Алгоритм 6.15, который предотвращает такие нежелательные передачи. Это означает, что на восстановление после ненужных действий может быть затрачено меньше времени и сообщений, чем на их предотвращение. Сайдон оставляет открытым вопрос о том, существует ли DFS-алгоритм, который достигает сложности сообщений классического алгоритма, т.е. 2|E|, и который затрачивает O(N) единиц времени.


6.4.3  Поиск в глубину со знанием соседей

Если процессам известны идентификаторы их соседей, проход листовых ребер можно предотвратить, включив в маркер список посещенных процессов. Процесс p, получая маркер с включенным в него списком L, не передает маркер процессам из L. Переменная usedp[q] не нужна, т.к. если p ранее передал маркер q, то q Î L; см. Алгоритм 6.18.

Теорема 6.36  DFS-алгоритм со знанием соседей является алгоритмом обхода и вычисляет дерево поиска в глубину, используя 2N-2 сообщений за 2N-2 единиц времени.

У этого алгоритма высокая битовая сложность; если w - количество бит, необходимых для представления одного идентификатора, список L может занять до Nw бит; см. Упражнение 6.14.


var  fatherp         : process      init udef ;

      

Для инициатора (выполняется один раз):

          begin   fatherp := p ;  выбор  q Î Neighp ;

                     send <tlist, {p}>  to q

          end


Для каждого процесса при получении <tlist, L> от q0:

          begin   if  fatherp = udef  then  fatherp := q0 ;

                     if  $q Î Neighp \ L

                          then  begin  выбор  q Î Neighp \ L ;

                                             send < tlist, LÈ{p} >  to q

                                    end

                          else  if  p - инициатор

                                      then  decide

                                      else  send < tlist, LÈ{p} > to fatherp

          end


Алгоритм 6.18 Алгоритм поиска в глубину со знанием соседей.



 6.5  Остальные вопросы

6.5.1  Обзор волновых алгоритмов

В Таблице 6.19 дан список волновых алгоритмов, рассмотренных в этой главе. В столбце «Номер» дана нумерация алгоритмов в главе; в столбце «C/D» отмечено, является ли алгоритм централизованным (C) или децентрализованным (D); столбец «T» определяет, является ли алгоритм алгоритмом обхода; в столбце «Сообщения» дана сложность сообщений; в столбце «Время» дана временная сложность. В этих столбцах N - количество процессов, |E| - количество каналов, D - диаметр сети (в переходах).

Алгоритм

Номер

Топология

C/D

T

Сообщения

Время

Раздел 6.2:  Общие алгоритмы

Кольцевой

6.2

кольцо

C

да

N

N

Древовидный

6.3

дерево

D

нет

N

O(D)

Эхо-алгоритм

6.5

произвольная

C

нет

2|E|

O(N)

Алгоритм опроса

6.6

клика

C

нет

2N-2

2

Фазовый

6.7

произвольная

D

нет

2D|E|

2D

Фазовый на кликах

6.8

клика

D

нет

N(N-1)

2

Финна

6.9

произвольная

D

нет

£4N|E|

O(D)

Раздел 6.3:  Алгоритмы обхода

Последовательный опрос

6.10

клика

C

да

2N-2

2N-2

Для торов

6.11

тор

C

да

N

N

Для гиперкубов

6.12

гиперкуб

C

да

N

N

Тарри

6.13

произвольная

C

да

2|E|

2|E|

Раздел 6.4:  Алгоритмы поиска в глубину

Классический

6.14

произвольная

C

да

2|E|

2|E|

Авербаха

6.15

произвольная

C

нет

4|E|

4N-2

Сайдона

6.16/6.17

произвольная

C

нет

4|E|

2N-2

Со знанием соседей

6.18

произвольная

C

да

2N-2

2N-2


Замечание: фазовый алгоритм (6.7) и алгоритм Финна (6.9) подходят для ориентированных сетей.


Таблица 6.19  Волновые алгоритмы этой главы.

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

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.