Consensus Filters by Yao Yujian.
From the post:
Suppose you have a huge number of robots/vehicles and you want all of them to track some global value, maybe the average of the weight of the fuel that each contains.
One way to do this is to have a master server that takes in everyone’s input and generates the output. So others can get it from the master. But this approach results in a single point of failure and a huge traffic to one server.
The other way is to let all robots talk to each other, so each robot will have information from others, which can then be used to compute the sum. Obviously this will incur a huge communication overhead. Especially if we need to generate the value frequently.
If we can tolerate approximate results, we have a third approach: consensus filters.
…
There are two advantages to consensus filters:
- Low communication overhead
- Approximate values can be used even without a consensus
Approximate results won’t be acceptable for all applications but where they are, consensus filters may be on your agenda.