4824
правки
Irina (обсуждение | вклад) |
Irina (обсуждение | вклад) м (→Литература) |
||
(не показано 7 промежуточных версий этого же участника) | |||
Строка 6: | Строка 6: | ||
Модель состоит из произвольной (неориентированной) сети, процессоры которой общаются в синхронных временных интервалах, подчиняясь следующим правилам. В каждом временном интервале каждый процессор выступает либо в роли ''передатчика'', либо в роли ''приемника''. Мы говорим, что процессор, выступающий в роли приемника, получает сообщение во временном интервале <math>t</math>, если ровно один из его соседей ведет передачу в этом временном интервале. Полученное сообщение соответствует переданному. Если в данном временном интервале несколько соседей | Модель состоит из произвольной (неориентированной) сети, процессоры которой общаются в синхронных временных интервалах, подчиняясь следующим правилам. В каждом временном интервале каждый процессор выступает либо в роли ''передатчика'', либо в роли ''приемника''. Мы говорим, что процессор, выступающий в роли приемника, получает сообщение во временном интервале <math>t</math>, если ровно один из его соседей ведет передачу в этом временном интервале. Полученное сообщение соответствует переданному. Если в данном временном интервале передачу ведут несколько соседей, возникает ''конфликт''. В этом случае приемник может либо получить сообщение от одного из передающих соседей, либо не получить никакого сообщения. Предполагается, что конфликты (или ''коллизии'') необнаружимы, поэтому процессор не может отличить случай, когда ни один сосед не ведет передачу, от случая, когда два или более его соседей передают в этом временном интервале. Процессоры не обязаны иметь идентификаторы и не знают своих соседей; в частности, процессорам неизвестна топология сети. | ||
Единственными входными данными, необходимыми протоколу, являются <math>n</math> – количество процессоров в сети, <math>\Delta</math> – априорно известная верхняя граница максимальной степени сети и | Единственными входными данными, необходимыми протоколу, являются <math>n</math> – количество процессоров в сети, <math>\Delta</math> – априорно известная верхняя граница максимальной степени сети и <math>\epsilon</math> – граница ошибки. (Все границы априорно известны алгоритму). | ||
Строка 15: | Строка 15: | ||
== Основные результаты == | == Основные результаты == | ||
Главным результатом является рандомизированный протокол, который обеспечивает широковещательную передачу за время, оптимальное с точностью до логарифмического множителя. В частности, с вероятностью <math>1 - \epsilon</math> протокол обеспечивает широковещательную передачу за <math>O((D + log \; n / \epsilon) \cdot log \; n)</math> временных интервалов. | |||
Строка 28: | Строка 28: | ||
Далее следует описание процедуры отправки сообщения m, которая выполняется каждым процессором после получения m: | Далее следует описание процедуры отправки сообщения <math>m</math>, которая выполняется каждым процессором после получения <math>m</math>: | ||
'''procedure''' Decay(k, m); | '''procedure''' Decay(k, m); | ||
Строка 40: | Строка 40: | ||
'''Теорема 1. Пусть <math>y</math> – вершина из <math>G</math>. Пусть <math>d \ge 2</math> соседей <math>y</math> выполняют процедуру ''Decay'' в течение интервала времени [0, k) (предполагается, что все они начинают выполнение в Time = 0). Тогда <math>P(k, d)</math> – вероятность того, что <math>y</math> получит сообщение к моменту Time = k – удовлетворяет следующим свойствам: | '''Теорема 1. Пусть <math>y</math> – вершина из <math>G</math>. Пусть <math>d \ge 2</math> соседей <math>y</math> выполняют процедуру ''Decay'' в течение интервала времени [0, k) (предполагается, что все они начинают выполнение в момент времени Time = 0). Тогда <math>P(k, d)</math> – вероятность того, что <math>y</math> получит сообщение к моменту Time = k – удовлетворяет следующим свойствам: | ||
1. <math>lim_{k \to \infty} P(k, d) \ge 2/3</math>; | 1. <math>lim_{k \to \infty} P(k, d) \ge 2/3</math>; | ||
Строка 54: | Строка 54: | ||
'''Протокол широковещательной передачи (Broadcast)''' | '''Протокол широковещательной передачи (Broadcast)''' | ||
Протокол широковещательной передачи выполняет несколько вызовов процедуры ''Decay''(k, m). Согласно теореме 1 (2), чтобы вероятность получения сообщения процессором <math>y</math> была не ниже 1/2, параметр <math>k</math> должен быть не меньше <math>2 \; log \; d</math> (где <math>d</math> – число соседей, посылающих сообщение процессору <math>y</math>). Поскольку <math>d</math> неизвестно, параметр был выбран равным <math>k = 2 \lceil log \; \Delta \rceil</math> (напомним, что | Протокол широковещательной передачи выполняет несколько вызовов процедуры ''Decay''(k, m). Согласно теореме 1 (2), чтобы вероятность получения сообщения процессором <math>y</math> была не ниже 1/2, параметр <math>k</math> должен быть не меньше <math>2 \; log \; d</math> (где <math>d</math> – число соседей, посылающих сообщение процессору <math>y</math>). Поскольку <math>d</math> неизвестно, параметр был выбран равным <math>k = 2 \lceil log \; \Delta \rceil</math> (напомним, что значение <math>\Delta</math> было определено как верхняя граница полустепени захода). Теорема 1 также требует, чтобы все участники начинали выполнять процедуру ''Decay'' в один и тот же временной интервал. Поэтому ''Decay'' запускается только при целочисленных кратных <math>2 \lceil log \; \Delta \rceil</math>. | ||
'''procedure''' Broadcast; | '''procedure''' Broadcast; | ||
Строка 62: | Строка 61: | ||
дождаться получения сообщения, скажем m; | дождаться получения сообщения, скажем m; | ||
'''выполнить''' t раз { | '''выполнить''' t раз { | ||
дождаться (Time mod k) = 0; | дождаться (Time '''mod''' k) = 0; | ||
Decay(k, m); } | Decay(k, m); | ||
} | |||
Считается, что сеть выполняет схему широковещательной передачи Broadcast_scheme, если некоторый процессор, обозначаемый s, передает начальное сообщение, и каждый процессор выполняет описанную выше процедуру ''Broadcast''. | Считается, что сеть выполняет схему широковещательной передачи Broadcast_scheme, если некоторый процессор, обозначаемый как <math>s</math>, передает начальное сообщение, и каждый процессор выполняет описанную выше процедуру ''Broadcast''. | ||
'''Теорема 2. Пусть <math>T = 2D + 5 max \{ \sqrt{D}, \sqrt{log(n / \epsilon}) \} \cdot \sqrt{log(n / \epsilon})</math>. Предположим, что Broadcast_scheme запускается в момент времени Time = 0. Тогда с вероятностью | '''Теорема 2. Пусть <math>T = 2D + 5 max \{ \sqrt{D}, \sqrt{log(n / \epsilon}) \} \cdot \sqrt{log(n / \epsilon})</math>. Предположим, что Broadcast_scheme запускается в момент времени Time = 0. Тогда с вероятностью не менее <math>1 - 2 \epsilon</math> к моменту времени <math>2 \lceil log \; \Delta \rceil \cdot T</math> все узлы получат сообщение. Более того, с вероятностью не менее <math>1 - 2 \epsilon</math> все узлы завершат работу к моменту времени <math>2 \lceil log \; \Delta \rceil \cdot (T + \lceil log(N / \epsilon) \rceil )</math>.''' | ||
Строка 79: | Строка 79: | ||
• '''Идентификаторы процессоров''': протокол не использует идентификаторы процессоров и, следовательно, не требует, чтобы процессоры имели различные идентификаторы (или чтобы они знали идентификаторы своих соседей). Более того, процессор даже не обязан знать количество своих соседей. Это свойство делает протокол адаптивным к изменениям топологии, происходящим на протяжении выполнения, и устойчивым к незлонамеренным сбоям. | • '''Идентификаторы процессоров''': протокол не использует идентификаторы процессоров и, следовательно, не требует, чтобы процессоры имели различные идентификаторы (или чтобы они знали идентификаторы своих соседей). Более того, процессор даже не обязан знать количество своих соседей. Это свойство делает протокол адаптивным к изменениям топологии, происходящим на протяжении выполнения, и устойчивым к незлонамеренным сбоям. | ||
• '''Знание размера сети''': протокол работает почти так же хорошо, если вместо фактического числа процессоров (т. е. n) дать «хорошую» верхнюю границу этого числа (обозначается N). Верхняя граница, полиномиальная от n, дает ту же самую временную сложность с поправкой на константный коэффициент (поскольку сложность логарифмически зависит от N). | • '''Знание размера сети''': протокол работает почти так же хорошо, если вместо фактического числа процессоров (т. е. <math>n</math>) дать ему «хорошую» верхнюю границу этого числа (обозначается <math>N</math>). Верхняя граница, полиномиальная от <math>n</math>, дает ту же самую временную сложность с поправкой на константный коэффициент (поскольку сложность логарифмически зависит от <math>N</math>). | ||
• Обнаружение конфликтов: алгоритм и его сложность остаются действительными, даже если при возникновении конфликта не может быть получено ни одного сообщения. | • '''Обнаружение конфликтов''': алгоритм и его сложность остаются действительными, даже если при возникновении конфликта не может быть получено ни одного сообщения. | ||
• Простота и быстрота локальных вычислений: в каждый временной интервал каждый процессор выполняет постоянный объем локальных вычислений. | • '''Простота и быстрота локальных вычислений''': в каждый временной интервал каждый процессор выполняет постоянный объем локальных вычислений. | ||
• Сложность по числу сообщений: каждый процессор активен в течение | • '''Сложность по числу сообщений''': каждый процессор активен в течение <math>\lceil log(N / \epsilon) \rceil</math> последовательных фаз, а среднее число передач за фазу составляет не более 2. Таким образом, ожидаемое число передач всей сети ограничено <math>2n \cdot \lceil log(N / \epsilon) \rceil</math>. | ||
• Адаптивность к изменению топологии и отказоустойчивость: протокол устойчив к некоторым изменениям в топологии сети. Например, ребра могут быть добавляться или удаляться в любое время, при условии, что сеть неизменных ребер остается связной. Это соответствует отказам или остановке работы ребер, так что система демонстрирует устойчивость к некоторым незлонамеренным сбоям. | • '''Адаптивность к изменению топологии и отказоустойчивость''': протокол устойчив к некоторым изменениям в топологии сети. Например, ребра могут быть добавляться или удаляться в любое время, при условии, что сеть неизменных ребер остается связной. Это соответствует отказам или остановке работы ребер, так что система демонстрирует устойчивость к некоторым незлонамеренным сбоям. | ||
• Ориентированные сети: протокол не использует подтверждения. Таким образом, он может применяться даже тогда, когда каналы связи не симметричны; иначе говоря, тот факт, что процессор v может передать сообщение процессору u, не означает, что | • '''Ориентированные сети''': протокол не использует подтверждения. Таким образом, он может применяться даже тогда, когда каналы связи не симметричны; иначе говоря, тот факт, что процессор <math>v</math> может передать сообщение процессору <math>u</math>, не означает, что <math>u</math> может передать сообщение <math>v</math>. (Соответствующей моделью сети, таким образом, является ориентированный граф). В реальной жизни такая ситуация возникает, например, когда <math>v</math> имеет более мощный передатчик, чем <math>u</math>. | ||
'''Нижняя граница для детерминированных алгоритмов''' | '''Нижняя граница для детерминированных алгоритмов''' | ||
Для детерминированных алгоритмов можно продемонстрировать нижнюю границу: для любого n существует семейство n-узловых сетей, такое, что каждая детерминированная широковещательная схема требует | Для детерминированных алгоритмов можно продемонстрировать нижнюю границу: для любого <math>n</math> существует семейство <math>n</math>-узловых сетей, такое, что каждая детерминированная широковещательная схема требует <math>\Omega(n)</math> времени. Для любого '''непустого''' подмножества <math>S \subseteq \{1, 2, ...n \}</math> рассмотрим следующую сеть <math>G_s</math> (рис. 1). | ||
[[Файл:Randomized_1.png]] | |||
Рисунок 1. Сеть, используемая для получения нижней границы | Рисунок 1. Сеть, используемая для получения нижней границы | ||
Узел 0 является источником, а узел n + 1 – стоком. Источник инициирует сообщение, и задача широковещательной передачи в | Узел 0 является ''источником'', а узел n + 1 – ''стоком''. Источник инициирует сообщение, и задача широковещательной передачи в <math>G_S</math> заключается в том, чтобы достичь стока. Сложность проистекает из того факта, что разбиение среднего уровня (т. е. <math>S</math>) не известно заранее. Следующая теорема может быть доказана путем ряда сокращений до определенной «игры на попадание»: | ||
'''Теорема 3. Каждый детерминированный протокол широковещательной передачи, корректный для всех n-узловых сетей, требует | '''Теорема 3. Каждый детерминированный протокол широковещательной передачи, корректный для всех <math>n</math>-узловых сетей, требует <math>\Omega(n)</math> времени.''' | ||
В работе [2] была допущена некоторая путаница в отношении модели широковещательной передачи. В ней ошибочно утверждалось, что нижняя граница справедлива и тогда, когда коллизия неотличима от отсутствия передачи. Ковальски и Пелц [5] опровергли это утверждение, показав, как можно вести широковещательную передачу за логарифмическое время во всех сетях типа | В работе [2] была допущена некоторая путаница в отношении модели широковещательной передачи. В ней ошибочно утверждалось, что нижняя граница справедлива и тогда, когда коллизия неотличима от отсутствия передачи. Ковальски и Пелц [5] опровергли это утверждение, показав, как можно вести широковещательную передачу за логарифмическое время во всех сетях типа <math>G_S</math>. | ||
== Применение == | == Применение == | ||
Процедура Decay использовалась для разрешения соперничества устройств в радиосетях и сетях сотовой связи. | Процедура ''Decay'' использовалась для разрешения соперничества устройств в радиосетях и сетях сотовой связи. | ||
== См. также == | == См. также == | ||
Строка 121: | Строка 122: | ||
Последующие работы продемонстрировали оптимальность рандомизированного алгоритма: | Последующие работы продемонстрировали оптимальность рандомизированного алгоритма: | ||
• Алон и др. [ ] доказали существование семейства сетей радиуса 2 с n вершинами, для которых любое расписание широковещательной передачи требует не менее | • Алон и др. [1] доказали существование семейства сетей радиуса 2 с <math>n</math> вершинами, для которых любое расписание широковещательной передачи требует не менее <math>\Omega(log^2 \; n)</math> временных интервалов. | ||
• Кушилевиц и Мансур [ ] показали, что для любого рандомизированного широковещательного протокола существует сеть, в которой ожидаемое время передачи сообщения равно | • Кушилевиц и Мансур [7] показали, что для любого рандомизированного широковещательного протокола существует сеть, в которой ожидаемое время передачи сообщения равно <math>\Omega(D \; log(N/D))</math>. | ||
• Бруски и Дель Пинто [ ] показали, что для любого детерминированного алгоритма | • Бруски и Дель Пинто [3] показали, что для любого детерминированного распределенного алгоритма шировокещательной передачи, любых <math>n</math> и <math>D \le n/2</math> существует сеть с <math>n</math> узлами диаметром <math>D</math>, такая, что время, необходимое для широковещательной передачи, равно <math>\Omega(D \; log \; n)</math>. | ||
• Ковальски и Пелц [ ] обсудили сети, в которых коллизии неотличимы от отсутствия передачи. Они представили нижнюю границу | • Ковальски и Пелц [6] обсудили сети, в которых коллизии неотличимы от отсутствия передачи. Они представили нижнюю границу <math>\Omega(n \; log \; n/log(n/D))</math> и верхнюю границу <math>O(n \; log \; n)</math>. Для этой модели они также предложили рандомизированный алгоритм <math>O(D \; log \; n + log^2 \; n)</math>, подтвердив нижнюю границу из [1] и улучшив границу из работы [2] для графов, для которых <math>D = \theta(n/log \;n)</math>. | ||
правки