S
S
Sergey Sokolov2022-01-19 13:36:33
Algorithms
Sergey Sokolov, 2022-01-19 13:36:33

How to distribute a message in a network of independent agents?

A question about decentralization. There are independent autonomous agents == bots. They only have a watch in common and everyone knows the total number of bots in the box. There is no central state, manager-supervisor. They operate on their own.

The bots are moving.
Everyone can communicate within a certain radius with their neighbors: initiate or receive requests. Those. a graph of nearest neighbors is formed, which changes as the bots move. Visualization for inspiration.

Here, one bot has some Valuable Message that needs to be distributed to all the bots of the network, from one to another, within the reach of the next one.

What algorithm/protocol solves such a problem? With requirements:

  1. minimize redundant transactions: when sending a message does not add to the task: the recipient bot already has a Message from another, or "I" already sent it.
  2. stop transmission attempts when the message is received by everyone
  3. stop transmissions after the expiration of def. time


Point 3 is simple, keep TTL in the message itself. The bot has a message - it will stop trying to send it further after the time has elapsed.

Point 2, because there is no common State, it also requires service messages to be passed, probably updating the number of those who received the message.

Point 1, maybe? Remember who sent - ok. And with the rest, just send “But the Message” - in response: “Yes, I know.”

What is it called, what to read, how to solve a problem of this type?

Answer the question

In order to leave comments, you need to log in

1 answer(s)
W
Wataru, 2022-01-19
@sergiks

This is called Delay Tolerant Networking .
There are a lot of articles and conferences on the subject. This is an active area of ​​research and mankind has not yet come up with any definitive answers here, but there are a lot of very smart algorithms.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question