Проблема сплетен в распределенных системах заключается в следующем. У нас есть граф с n вершинами. Каждая вершина v имеет сообщение m v, которое необходимо отправить всем узлам.
Теперь мой вопрос в контексте специальной сетевой модели (мы предполагаем, что узел не имеет каких-либо предварительных знаний о топологии сети, степенях входа и выхода и наборе соседей. только знание каждого узла - это его собственный идентификатор и общее количество узлов).
Я также предполагаю, что все узлы имеют доступ к глобальным часам и работают синхронно с дискретными временными шагами, называемыми циклами.
Сложность алгоритма в этом контексте заключается в количестве раундов, необходимых для завершения.
Я помню, что существует алгоритм, который решает проблему сплетен в раундах с высокой вероятностью. Но я больше не могу найти ссылку, и мне интересно, есть ли более свежие результаты по этому вопросу.
отредактируйте, следуя разумному комментарию: в каждом раунде узел может передавать сообщение всем своим соседям и может получать сообщения от них. Узел получит сообщение в данном раунде тогда и только тогда, когда точно один из его соседей будет передавать в этом раунде. В противном случае происходит коллизия, и узел не получает ни одно из сообщений.
источник
Ответы:
Я думаю, что вы ищете ссылку на статью «Алгоритмы вещания в радиосетях с неизвестной топологией» Чумая и Риттера. Кажется, эта статья вносит некоторые улучшения, но я думаю, что это зависит от специфики модели.
источник
Изменить: не важно, это не работает. На полном графике все узлы заканчиваются в основном повторной передачей одних и тех же популярных сообщений, и многие сообщения никогда не будут получены ни одним узлом, кроме источника. Может быть, было бы полезно, если бы узлы предпочитали передавать сообщения, которые они получали реже?
источник