A Протокол популяции является модель распределенных вычислений, сформированная мобильными агентами с ограниченными ресурсами, которые встречаются случайным образом в соответствии с. Функции вычисляются путем обновления состояния агентов всякий раз, когда они встречаются, на основе их предыдущего состояния, и результат вычисления может быть прочитан в состояниях агентов после того, как вычисления сойдутся.
Имеется набор узлов. Каждый узел представляет собой конечный автомат с состояниями . Важным классом протоколов популяции являются алгоритмы большинства, целью которых является вычисление бита большинства: каждый узел начинается с бита доверия в , и цель состоит в том, чтобы разработать протокол, в конце которого бит доверия каждого узла является правильным начальным битом большинства.
Версия модели с дискретным временем выглядит следующим образом: в каждой точке во времени, некоторый узел выбирается равномерно случайным образом. Затем узел сопоставляется с другим узлом , который выбирается равномерно случайным образом из набора соседей узла . После этого узлы и обмениваются содержимым памяти и обновляют свои состояния. В качестве альтернативы можно рассмотреть модель непрерывного времени, в которой каждый узел имеет часы Пуассона, которые звонят с единичной скоростью. Когда часы узла звонят, этот узел связывается со случайным соседом.
Протоколы часто разрабатываются так, чтобы минимизировать время сходимости или объем памяти, требуемый на узел, или и то, и другое.
Для проблемы вычисления большинства (консенсус) существует хорошо известный протокол, который требует только три состояния памяти на узел и был проанализирован на предмет полных графов взаимодействия. Этот протокол работает следующим образом. Пусть каждый узел инициализирует свое состояние памяти своим начальным битом доверия В каждый момент времени, когда два узла обмениваются данными, они обновляют свое состояние в соответствии со следующей таблицей. Метки строк показывают состояние инициатора, а столбец - состояние респондента.
0 | ? | 1 | |
---|---|---|---|
0 | (0,0) | (0,0) | (0,?) |
? | (?, 0) | (?,?) | (?, 1) |
1 | (1,?) | (1,1) | (1,1) |
Например, если узел с убеждением соответствует узлу с убеждением , тогда оба узла сохраняют свою веру; обновление аналогично, если оба убеждения равны или оба равны . Однако, если мнение инициатора равно , а мнение респондента , тогда респондент изменяет свое мнение на . Если, с другой стороны, у инициатора есть убеждение , а у респондента есть убеждение , то отвечающий изменяет свое вера в . Обратите внимание, что этот протокол односторонний: каждое взаимодействие изменяет самое большее состояние респондента; таким образом, это может быть реализовано с односторонней связью.
Angluin, Aspnes и Eisenstat показали, что из любой начальной конфигурации, которая не состоит из всех "", приблизительное большинство из трех состояний протокол сходится либо ко всем узлам, имеющим убеждение , либо ко всем узлам, имеющим убеждение в пределах взаимодействий с высокой вероятностью. Кроме того, выбранное значение будет не- "" начальным значением большинства, при условии, что оно превышает меньшинство с достаточным запасом.
На следующем рисунке показано развитие протокола с тремя состояниями в наборе из узлов, где одна треть узлов имеет начальные бит доверия , в то время как оставшиеся две трети имеют начальный бит доверия . Доля узлов «» (отмечена оранжевым) начинается с нуля, некоторое время увеличивается, а затем снова возвращается к нулю.
.
Протоколы популяции были представлены Dana Angluin et al. как одна из первых моделей вычислений, которая должна быть полностью децентрализована и задействовать агентов с сильно ограниченными ресурсами, например, тех, которые встречаются в сенсорных сетях. С тех пор эта абстрактная модель вычислений нашла применение в робототехнике и химии.
| journal =
()