[Information Flow Regulation in Preferentially Foraging Swarms]

Multi-agent systems Project: Designing Robot Swarms
Date: Jul 2018

Pitonakova, L., Crowder, R. & Bullock, S. (2018) The importance of information flow regulation in preferentially foraging robot swarms. Proceedings of the Eleventh International Conference on Swarm Intelligence (ANTS 2018), Springer, 277-289.

Instead of committing to the first source of reward that it discovers, an agent engaged in "preferential foraging" continues to choose between different reward sources in order to maximise its foraging efficiency. In this paper, we study the effect of preferential source selection on the performance of robot swarms with different recruitment strategies:

Robots foraging Figure 1: BDRML representations of the (a) Broadcaster and (b) Bee robot controllers.
  • Broadcaster (Figure 1a): Robots located near worksites also broadcast the worksite locations to other robots nearby in order to recruit them.
  • Bee (Figure 1b): Robots recruit each other in a centrally located base.

The swarms are tasked with foraging from multiple worksites in dynamic environments where worksite locations change periodically and thus need to be re-discovered. There are two types of task:

  • Consumption: Worksites represent ``jobs'' that could be completed at the worksite locations.
  • Collection: Worksites represent resource deposits. A robot collects one unit of resource at a time, after which the resource had to be deposited in the base.

Analysis indicates that preferential foraging leads to a more even exploitation of resources and a more efficient exploration of the environment provided that information flow among robots, that results from recruitment, is regulated. On the other hand, preferential selection acts as a strong positive feedback mechanism for favouring the most popular reward source when robots exchange information rapidly in a small designated area, preventing the swarm from foraging efficiently and from responding to changes.

Robots foraging Figure 2: The amount of reward collected by 50-robot Preferential swarms in various tasks and environments. The number of worksites is appended to each environment name. D means the distance of worksites from the base. The up and down arrows above the data points for each environment indicate statistically significant (ANOVA, p=0.01) increase and decrease in performance of the Broadcaster (orange) and Bee (green) Preferential swarms, when compared to the corresponding non-preferential swarms in the same environment.

{Please enable JavaScript in order to post comments}

Task Allocation in Foraging Robot Swarms

Bee-inspired self-regulation algorithms for robot swarms that deliver items into a single drop-off location and need to prevent congestion.

Are Robot Swarms Like Brains?

I have recently explored a way of measuring how information flows within a robot swarm. I think that there is something intriguing behind this idea - a swarm's resemblance to the human brain.

Information Flow Principles for Plasticity in Robot Swarms

An important characteristic of a robot swarm that must operate in the real world is the ability to cope with changeable environments by exhibiting behavioural plasticity at the collective level. In this paper, we report on simulation experiments with homogeneous foraging robot teams and show that analysing swarm behaviour in terms of information flow can help us to identify whether a particular behavioural strategy is likely to exhibit useful swarm plasticity in response to dynamic environments.


The main purpose of pyCreeper is to wrap tens of lines of python code, required to produce graphs that look good for a publication, into functions. It takes away your need to understand various quirks of matplotlib and gives you back ready-to-use and well-documented code.

Novelty detection with robots using the Grow-When-Required Neural Network

The Grow-When-Required Neural Network implementation in simulated robot experiments using the ARGoS robot simulator.

Fast Data Analysis Using C++ and Python

C++ code that processes data and makes it available to Python, significantly improving the execution speed.