19/09/2017 5:31pm
Next week's @IROS2017 in #Vancouver looks fantastic. Yet again, I find that I'd need to split my consciousness three ways to see all I want
19/09/2017 5:24pm
RT @SwarmDynamics: Generic, scalable and decentralized fault detection for robot swarms [LINK] #PLOSONE #robotics #swar
15/09/2017 1:05pm
Essays by Rodney Brooks on the future of #robotics and #AI @sabinehauert via @Robohub [LINK]
11/09/2017 10:10pm
RT @alan_winfield: More powerful #AI costs more #energy. See: Estimating the energy cost of evolution [LINK] (2/2)
11/09/2017 10:03pm
RT @ilpincy: Bacteria Use Brainlike Bursts of Electricity to Communicate [LINK] via @QuantaMagazine

[Are Robot Swarms Like Brains?]

Added on 19/02/2016
Tags: swarm :: robotics :: neural networks :: mind :: A-Life

In my latest paper, I have explored a way of measuring how information moves into and through a robot swarm. Looking at information flow of robot swarms can help us explain why a swarm as a whole behaves in a particular way, given its current environment. I think that there is something more intriguing behind the idea of looking at collective intelligence from the perspective of information though - a swarm's resemblance to the human brain.

What is information flow?

In order to measure information flow in a robot swarm, we can do the following:

1. Attach a value to a piece of information.
For example, if robots collect resources, we can say that the value of information is the value of the resource that the robot can collect using that information, versus the value of resource it would have collected if it used some old information. For example, if a robot previously collected from a gold deposit that gave it 2 grams of gold per visit, and it now learned about a richer deposit that gives 5g per visit, the value of that information is 3.

2. Measure information value of the whole swarm
To get information value of the swarm, we add up information values of all robots in a particular time interval. For example, if we have 4 robots:

  • Robot A previously collected from a gold deposit that gave 2g of gold per visit but now found a deposit that gives 5g. IA = 5 - 2 = 3
  • Robot B found the same deposit as Robot A but was previously resting (that is, it had no information at all), IB=5-0 = 5
  • Robot C also found the same deposit and was persuaded by Robot B to collect gold from it, even though Robot C previously collected from a deposit that gave 7g per visit. IC = 5 - 7= -2
  • Robot D did not find any new deposits and continues collecting from the same one: ID = 0

The information value of the swarm is I = 3 + 5 - 2 + 0 = 6.

3. Get information flow
Information flow is simply the swarm's information value, measured over time. It can look something like this:

A simple information flow example

We can see that there are large positive peaks at the beginning of the task, when robots keep discovering new deposits.

Information flow in a changing environment

In the paper, we used the information flow measure to see if a swarm responds to a changing environment properly. Imagine that there are two gold deposits, one of which gives more gold per visit than another. Also imagine that every 2 hours, it is a different deposit that returns more gold (for example, because the gold deposits have irregular structures). We would like our swarm to somehow know which deposit is currently the best and to concentrate most of its work on the richer deposit, until the change occurs again.

A "healthy", swarm information flow, that is, flow of a swarm that is always able to choose a better deposit, looks something like this:

Information flow of a responsive swarm

Every two hours, that is, every time the gains from the deposits are swapped, some robots find out about the richer deposit and persuade their team mates to collect from it. This creates regular positive peaks in the information value of the swarm.

However, there are some robot behaviours that prevent the swarm from doing this. For example, information can spread so quickly that all the robots concentrate on the best deposit at the same time, meaning that the swarm stops monitoring the rest of the environment. When looking at the information flow, we can see a small amount of positive peaks at the beginning of an experiment, after which the information value is always 0, as the swarm does not discover any new information:

Information flow of an unresponsive swarm


I think it is interesting to compare the information flow graphs with plots produced by EEG. EEG measures electrical signals of neurons, which are cells in the brain. When a neuron fires a signal, it essentially transfers a piece of information to another neuron, similarly how a robot might transfer a piece of information to its team mate. Scientists often use EEG to measure how a brain reacts to and processes a particular stimulus, for example music or language.

An EEG plot looks like this:

A normal EEG

EEG during brain deathIt reminds me of the information flow graphs of swarms that properly respond to a changing environment.

An EEG plot of brain death looks like the image on the right. When neurons stop firing, the brain and the body no longer function. A similar thing happened to our swarm that stopped responding to the environment (see the information flow plot above).

Another interesting example is comparing the information flow graph to an EEG of an epileptic patient:

EEG during epilepsy

During epilepsy, neurons fire more rapidly than is normal and send each other signals that they normally wouldn't. This negatively affects the way in which the brain and the whole body function.

Sometimes, information in a swarm can also travel too quickly, for example because robots are too sensitive to new information, or because they spontaneously abandon good deposits. This can, for example, prevent a swarm from making a decision about which deposit to forage from, causing it to perform poorly. The information flow of such a swarm looks similarly to that of an epileptic brain and shows no regular pattern of activity:

Information flow of an indecisive swarm

Swarm intelligence

So can we say that in some way, robot swarms behave like brains? Can a swarm be understood as a form of a disembodied, fluid "brain" that moves around and dissolves into the world while performing a given function (like collecting gold)?

I think on some level, swarms (of robots or animals) and brains are similar. More precisely, that brains are simply swarms of neurons bound together physically and electrically. What we perceive as "intelligence" is in fact a "swarm intelligence". It is certainly true that intelligent behaviour seen in animals has no single "module" that is responsible for the "intelligent" decisions. Instead, decisions are made as a result of the interplay between the nervous system and the rest of the body. They are always decisions of a collective, rather than an individual unit.

For me, in a way, studying insect and robot swarms helps us understand what makes our minds come to be.

{Please enable JavaScript in order to post comments}


Robot swarms in action

Watch e-puck robots collect resources and bring them back to base. While the previous simulation work helped us to learn a lot about the...

[read full]

How to compile code for e-puck robots on your computer

Compiling code natively on e-puck robots or cross-compiling on your computer can be very tedious. Luckily, there is a third option:...

[read full]

Coding for tomorrow: Why is good code important?

"Why should I care about how my code is written, as long as it works?" I will argue here that well-structured and well-written code not...

[read full]

How Coding in Python Might Be Bad For You

7 reasons why coding in Python is like writing a really bad essay and getting away with it

[read full]