Simulating honey bee swarm decision making.

Tom Seeley and Bruce Land

Introduction

The process by which honey bee swarms decide upon a nest site is an example of concensus decision making without a leader. The survival of the swarm depends on finding a suitable nest site and making sure that all members of the swarm arrive at the same nest site.

THIS PAGE IS INCOMPLETE. Stay tuned.

Background

We modeled a subset of the swarm as individual bees. Each bee had an interal state (dancing, scouting, etc) as described below

    1. A bee becomes a scout randomly, with fixed low probability at each time step, and is assigned to a random nest-site.
    2. A bee is within range of a dancing scout and with fixed probability becomes a scout. The new scout is assigned to the nest-site being danced for, with no error.
    1. As soon as the bee becomes a scout, she leaves the swarm (to 'examine' the nest-site). She evaluates the quality of the site without error, and her 'dance duration' is set to a value proportional to the site quality. She then returns to the swarm after about 40 minutes.
    2. Upon return the bee goes to a random position on the swarm and 'dances' for the site. The bee's 'dance time' is decremented and checked to see if the time is zero.
      • If it is zero, the scout reverts to the non-scout state.
      • If it is non-zero, the bee dances for the alloted time, then rests for a fixed time.
    3. In the rest state the bee is completely inactive. When the rest time is done, the bee re-investigates the same nest-site then returns to state (2) described just above.

Programs

The current version is Version14. This code is from Run 1 (R1) as described below. The simulator is a mixed, continuous and discrete-event, simulator. The time resolution in all of the results below was 6 seconds. There is an initial busrt of scouts

Each bee has an internal state as listed:

Progam logic at each time step:

Results

All tables are shown for a case with 4 nests of relative qualities 1.0, 0.75, 0.75, 0.75. Each set of parameters was run for 100 complete trials, so for instance, R15 below represents the average of 100 simulations. The summary sumulation results for each parameter set are listed below the tables.

A win is defined as a quorum of 50 bees at the highest quality nest computed with this code:

Parameters which were varied were:


==========================================================
VARY number of bees
QualExponent=2; sponrate=3/60; initial=6;
recruiterate=0.1(200bees);

run
nBees
#wins
ratio
time
#fails
R15 95 86 10.97 20.58 14
R9 100 89 8.4 19.2 11
R16 110 96 5.01 16.28 4
R14 125 98 3.21 14.3 2
R12 150 93 1.85 10.9 1
R3 200 88 1.21 8.83 0
R13 300 72 1.28 5.05 0
R10 400 79 1.09 4.81 0
R11 800 80 1.16 4.22 0


Click on the highlighted run names to see a summary of all 100 runs. The 100 runs are presented as an animation which you can single-frame or slow down in your media player.

There seems to be a 'sweet spot' with good accuracy and few failures between about 150 and 200 bees. With few bees, the number of wins is limited by the low probability of getting 50 bees at any nest. The critical number is around 100 bees because for any nest, about 1/2 the bees are at the nest, and the other half are resting. With many bees, the number of wins is diluted by the lack of effective competition between sites, so that each site becomes effectively independent. The number of failures decreases monotonically as the number of bees increases because some nest will surely win.

==========================================================
VARY number of bees
QualExponent=1; sponrate=3/60; initial=6;
recruiterate=0.1(200bees);

run
nBees
#wins
ratio
time
#fails
R17 100 32 5.67 23.44 66
R19 150 72 1.85 15.21 14
R2 200 66 1.16 9.72 0
R18 400 47 0.93 4.57 0

==========================================================
VARY spontaneous rate
QualExponent=1; 200 bees; initial=6;
recruiterate=0.1(200bees);

run
spont
#wins
ratio
time
#fails
R1 1/60 50 1.31 8.03 0
R2 3/60 66 1.16 9.72 0
R23 7/60 72 1.01 11.43 0


==========================================================
VARY spontaneous rate
QualExponent=2; 200 bees; initial=6;
recruiterate=0.1(200bees);

run
spont
#wins
ratio
time
#fails
R4 1/60 83 1.52 7.65 0
R3 3/60 88 1.21 8.83 0
R5 5/60 93 1.13 7.97 0
R22 7/60 97 1.07 7.78 0


==========================================================
VARY number of initial scouts
QualExponent=2; 200 bees; spont=3/60;
recruiterate=0.1(200bees);

run
initial
#wins
ratio
time
#fails
R20 3 86 1.47 7.22 0
R3 6 88 1.21 8.83 0
R21 10 90 1.22 7.58 0


==========================================================

Details:

Quality max changed to 300 seconds.
nBees to 200
initial scouts return at 30 min intervals
Actual SpontP is then number below times 1/200
Stop sim after 30 hours or 100 bees at any nest.

Q1 = qualities 1, .75, .75, .75
Q2 = qualities 1, .8, .6, .4
Q3 - qualities 1, .37, .37, .37

Run SpontP DanceP Qual scout0 nBee qualexp
==========================================================
R1 1/60 0.1 Q1 6 200 1
Data Set:S0.016667D0.1N6
Number of wins: 50 14 15 21 sum:100
Avg Win Ratios: 1.31 1.07 1.21 1.24
Avg Win Times: 8.03 7.53 7.23 7.14
==========================================================
R2 3/60 0.1 Q1 6 200 1
Data Set:S0.05D0.1N6
Number of wins: 66 7 14 13 sum:100
Avg Win Ratios: 1.16 1.10 1.15 0.93
Avg Win Times: 9.72 8.68 6.27 8.16
==========================================================
R3 3/60 0.1 Q1 6 200 2
Data Set:S0.05D0.1N6
Number of wins: 88 4 3 5 sum:100
Avg Win Ratios: 1.21 0.96 1.35 1.00
Avg Win Times: 8.83 7.85 7.04 8.60
==========================================================
R4 1/60 0.1 Q1 6 200 2
ata Set:S0.016667D0.1N6
Number of wins: 83 6 5 6 sum:100
Avg Win Ratios: 1.52 1.52 1.23 1.79
Avg Win Times: 7.65 9.92 7.67 9.05
==========================================================
R5 5/60 0.1 Q1 6 200 2
Data Set:S0.083333D0.1N6
Number of wins: 93 0 4 3 sum:100
Avg Win Ratios: 1.13 NaN 0.96 1.12
Avg Win Times: 7.97 NaN 6.98 6.67
==========================================================
R6 1.5/60 0.2 Q1 6 100 2
Data Set:S0.025D0.2N6
Number of wins: 90 0 0 1 sum:91
Avg Win Ratios: 9.09 NaN NaN 16.67
Avg Win Times: 18.60 NaN NaN 7.11
==========================================================
R7 6/60 0.05 Q1 6 400 2
Data Set:S0.1D0.05N6
Number of wins: 83 5 4 8 sum:100
Avg Win Ratios: 0.98 0.97 0.73 0.66
Avg Win Times: 4.38 4.62 5.09 5.11
==========================================================
R8 12/60 0.025 Q1 6 800 2
Data Set:S0.2D0.025N6
Number of wins: 87 3 4 6 sum:100
Avg Win Ratios: 0.77 0.63 0.57 0.55
Avg Win Times: 3.38 4.19 3.94 3.93
==========================================================
R9 3/60 0.2 Q1 6 100 2 termination to 60 at nest
Data Set:S0.05D0.2N6
Number of wins: 89 0 0 0 sum:89
Avg Win Ratios: 8.40 NaN NaN NaN
Avg Win Times: 19.16 NaN NaN NaN
==========================================================
R10 3/60 0.05 Q1 6 400 2
Data Set:S0.05D0.05N6
Number of wins: 79 6 10 5 sum:100
Avg Win Ratios: 1.09 0.79 0.65 0.90
Avg Win Times: 4.81 6.16 6.16 5.43
==========================================================
R11 3/60 0.025 Q1 6 800 2
Data Set:S0.05D0.025N6
Number of wins: 80 5 8 7 sum:100
Avg Win Ratios: 1.16 0.85 0.76 0.78
Avg Win Times: 4.22 5.35 5.29 4.93
==========================================================
R12 3/60 0.133 Q1 6 150 2
Data Set:S0.05D0.133N6
Number of wins: 93 0 4 2 sum:99
Avg Win Ratios: 1.85 NaN 1.83 1.79
Avg Win Times: 10.90 NaN 7.88 7.38
==========================================================
R13 3/60 0.133 Q1 6 300 2
Data Set:S0.05D0.0667N6
Number of wins: 72 10 7 11 sum:100
Avg Win Ratios: 1.28 0.74 0.81 0.71
Avg Win Times: 5.05 6.80 6.50 6.90
==========================================================
R14 3/60 0.16 Q1 6 125 2
Data Set:S0.05D0.16N6
Number of wins: 98 0 0 0 sum:98
Avg Win Ratios: 3.21 NaN NaN
NAN
Avg Win Times: 14.29 NaN NaN NaN
==========================================================
R15 3/60 0.21 Q1 6 95 2
Data Set:S0.05D0.21N6
Number of wins: 86 0 0 0 sum:86
Avg Win Ratios:10.97 NaN NaN NaN
Avg Win Times: 20.58 NaN NaN NaN
==========================================================
R16 3/60 0.1818 Q1 6 110 2
Data Set:S0.05D0.1818N6
Number of wins: 96 0 0 0 sum:96
Avg Win Ratios: 5.01 NaN NaN NaN
Avg Win Times: 16.28 NaN NaN NaN
==========================================================
R17 3/60 0.2 Q1 6 100 1
Data Set:S0.05D0.2N6
Number of wins: 32 0 0 1 sum:33
Avg Win Ratios: 5.67 NaN NaN 3.33
Avg Win Times: 23.44 NaN NaN 9.11
==========================================================
R18 3/60 0.05 Q1 6 400 1
Data Set:S0.05D0.05N6
Number of wins: 47 14 17 22 sum:100
Avg Win Ratios: 0.93 0.72 0.77 0.96
Avg Win Times: 4.57 5.17 5.02 4.66
==========================================================
R19 3/60 0.133 Q1 6 150 1
Data Set:S0.05D0.133N6
Number of wins: 72 5 4 5 sum:86
Avg Win Ratios: 1.85 1.57 1.56 1.52
Avg Win Times: 15.21 7.67 12.72 7.85
==========================================================
R20 3/60 0.1 Q1 3 200 2
Data Set:S0.05D0.1N3
Number of wins: 86 4 5 5 sum:100
Avg Win Ratios: 1.47 1.05 1.24 1.17
Avg Win Times: 7.22 7.39 7.55 8.33
==========================================================
R21 3/60 0.1 Q1 10 200 2
Data Set:S0.05D0.1N10
Number of wins: 90 4 3 3 sum:100
Avg Win Ratios: 1.22 1.17 0.88 1.13
Avg Win Times: 7.58 6.71 7.82 7.20
==========================================================
R22 7/60 0.1 Q1 6 200 2
Data Set:S0.11667D0.1N6
Number of wins: 97 0 1 2 sum:100
Avg Win Ratios: 1.07 NaN 1.19 0.86
Avg Win Times: 7.78 NaN 6.06 7.08
==========================================================
R23 7/60 0.1 Q1 6 200 1
Data Set:S0.11667D0.1N6
Number of wins: 72 13 9 6 sum:100
Avg Win Ratios: 1.01 0.96 0.99 0.92
Avg Win Times: 11.43 6.55 6.62 6.88

========================================================================
For a swarm of 200 bees, located uniformly on a grid of 0.3x0.3 meters,
and with a dance viewing range of 0.02 meters, there are about
200 x (0.04x0.04)/(0.3x0.3) = 3.6 bees within dance range. For a dance to generate
more than one replacement scout from these bees, there must be a 1/3.6 or greater
chance of a bee becoming a scout.
-----------------------------------
With qualexp=1:
Now a high quality nest (quality=1) generates a dance sequence
5 + 4.5 + 4 + ... + .5 = 27.5 min
while a low quality nest (quality=0.37) generates
4.4 min of dancing.

For the high qulaity site to generate a growing population of scouts
we need (probability/min) = p to be p*27.5 = 1/3.6 or p=0.01

For the low qulaity site to generate a growing population of scouts
we need (probability/min) = p to be p*4.4 = 1/3.6 or p=0.06
-----------------------------------
With qualexp=2:
Now a high quality nest (quality=1) generates a dance sequence
5 + 4.5 + 4 + ... + .5 = 27.5 min
while a low quality nest (quality=0.4) generates
1.1 total mins of dancing.

For the high qulaity site to generate a growing population of scouts
we need (probability/min) = p to be p*27.5 = 1/3.6 or p=0.01.

For the low qulaity site (qual=0.4) to generate a growing population of scouts
we need (probability/min) = p to be p*1.1 = 1/3.6 or p=0.25.

Stop sim after 30 hours or 100 bees at any nest.
100 runs/parameter set

Next steps

Number of participating bees:

There are a huge number of bees available in a swarm, but around 100 to 200 participating bees seem to give the best nest selection results. There must be some feedback scheme to regulate the number of participating bees. A real decision by a bee to become a participant should depend on local knowledge. A bee could keep track of the total number of dances she observes (without regard to quality or site) and decide to participate if she does not see enough dances. This has not been implemented.


Copyright Cornell University, Jan 2006