MONASH UNIVERSITY
SCHOOL OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING
HONOURS YEAR

FIT4012 : Procedural modelling, animation
& artificial life in computer graphics

Assignment Notes


Title :

An agent-based model of bumblebee foraging behaviour
Simulation design by A.G Dyer and A. Dorin

Date Due: Refer to main page
Weight: 100% of your final mark for this unit
Submission: CD/DVD-ROM or emailed tar file.

Specifications
Updates:

Overview:  This project examines how bees interact with flowers to collect nutrition. Specifically, the model attempts to explain how different bee foraging strategies affect the success of a hive. It will be used to explain why real bee hives sometimes contain bees with different foraging strategies [e.g. (Burns & Dyer 2008; Chittka et al. 2003)].

Aim: This is an exciting project! It gives you an opportunity to test your coding skills on a real biological phenomenon that has not yet been fully understood. The best presented and prepared results will be used to assist in understanding how bees forage. It is hoped that they may contribute to the publication of a journal or conference paper on the subject.

Below you will find a description of the real bees’ behaviour, their environment, and some suggestions as to what you need to code into your software simulation. During the unit (probably about 3 weeks in), Adrian Dyer will visit to discuss your questions about bees. He is Monash’s resident bee expert. Please prepare questions for him as you begin to work on this project.

1. BEE AGENTS

Bees are central place feeders that leave their hive to search for nutrition provided by flowers.

Model bumblebee colonies containing 60 foraging agents in a hive.

Each bee agent can collect 100 units of food before having to return to the hive (this is called a bout).

A Bumblebee can travel at around 2m/s when foraging and 4m/s when returning to its hive (Spaethe et al. 2001).

Food stores of a colony could be considered to be at saturation level when 200,000 units of food are collected. (If 1 unit represent 1 μL, a typical reward from a flower, then 200,000 units of food are 0.2 litres – a well-stocked bumblebee hive).

Bees can use multiple cues (vision and olfaction) to help find flowers. E.g. (Streinzer et al. 2009). This current model only considers visual search.

In this model, bees can distinguish between two flower types, T1 and T2, which occur in their environment. These flower types offer different rewards of nectar. Details of the flowers are given in a section below.

2. BEE STRATEGY & LEARNING

At the start of a simulation, all bees have a 50% preference for each flower type T1 and T2.

When each bee begins exploring its environment it will choose the first flower it encounters since it doesn't prefer one type over another. Initial flower selection in therefore flower density dependent.

An individual bee knows which flowers it has visited and will not visit a flower twice on a single foraging bout. However, once a bee has returned to a hive it may then revisit previous flowers. (I.e., it forgets the locations of all visited flowers.)

Each time a bee visits a flower that offers a reward its preference for that type (T1 or T2) increases by 1% and its preference for the other type drops by 1%. Each time the bee visits a flower that does not offer a reward, preference for its type also decreases by 1% and its preference for the other type of flowers increases by 1%. This learning model fits how bees have been shown to learn in experiments (Dyer & Chittka 2004; Dyer et al. 2006).

Each time a bee visits a flower, it takes 5 seconds for the bee to handle the flower and, if it is present, collect the reward. It also takes 5 seconds for a bee to handle a flower that does not offer a reward (it tests for a reward by actually trying to extract nectar) before it is able to move on.

All bees undergo an initial phase described entirely by the strategy just outlined. At some point in time (described below in section 6), a switch in flower rewards occurs. From this point on, each bee adopts exactly one of the following foraging strategies:

Stay Stay on a flower type (that is initially rewarding) even if that flower type changes from rewarding to non-rewarding. Once this bee gets to a >70% preference for a flower type, this preference becomes hard-wired and can never fall below 70%, even if the reward/un-rewarding situation with the flowers changes.
Switch Switch preferences if a flower type becomes non-rewarding and another type is rewarding. When a switch occurs in the rewards offered by a flower type (e.g. T1 flowers were rewarding and suddenly become unrewarding), a bee that encounters 4 non-rewarding T1 and 4 rewarding T2 flowers, can then invert its preference accuracy. If a switch bee had learnt through experience to have 75% preference for T1 and 25% for T2, then after encountering 4 non-rewarding T1 and 4 rewarding T2 this decision making can become a 75% preference for T2 and 25% for T1. This bee has learnt discrimination and has sufficient neural flexibility to quickly adjust to a new reward situation.
Learn A bee may learn to make accurate decisions about flower types based on experience as outlined in the text above that describes the initial behaviour of all bees. This bee type continues to learn, as it did initially (slowly) based upon experience (1% change per visit as defined above). Thus when the reward situation changes a bee can adapt, but only slowly.

3. PLANTS (You do not need to model plants)

In the real world, a plant relies on the bees to visit its flowers and then transfer genetic information (pollen) to a conspecific plant to facilitate sexual reproduction. Thus a plant can have a role of transferring pollen to a bee (it may or may not reward the bee), or receiving pollen from a conspecific plant via a bee. A plant that receives pollen from another conspecific plant has successfully been pollinated. This aspect of plant reproduction does not need to be modelled in your simulation.

4. FLOWER DISTRIBUTION

Model the grid world as a torus of dimension 571 x 571 square cells. Each cell corresponds to 0.35m. Hence, the foraging site is 200m across.

Flowers are distributed uniformly randomly across the grid world with one flower at most in a cell.

Parameterise flower density at runtime from 1/50 down to 1/100 cells.

Each flower may contain a reward (1 unit) or no reward.

The model considers two flower types:
T1 initially has flowers with a 100% chance of containing a reward of 1 unit.
T2 initially has flowers with a 0% chance of containing a reward.

When a bee visits a flower it takes the entire reward of 1 unit.

This reward unit is always available on a flower that offers a reward. I.e. assume the reward is immediately replenished. (Recall that a bee does not return to the same flower within a single bout so a flower is always available for other bees only to forage once).

Bees have to search to find flower, but will not go further than the foraging boundary (200m square). Once a bee is full (100 units) it knows where its hive is and can fly directly home (end of a bout).

5. FLOWER DETECTION

Bee spatial acuity is poor, and in real life bumblebees can only detect a plant’s cluster of 3-5 flowers (each flower of 2.5 cm diameter) at a distance of approximately 0.7m (Dyer et al. 2008), (Wertlen et al. 2008).  Detection appears to be a step function so can be modelled as distances > 0.7m — not detected, distance < 0.7m — 95% chance of detecting plant flowers when flying at 2m/s.

For our model, we will assume that a bumblebee can detect the presence of a flower in a neighbouring grid cell (recall that each grid cell is 0.35m across) with 95% accuracy when it is foraging at 2m/s.

Once detected, an individual bee then has a probability of accurately discriminating a rewarding from a non-rewarding flower and this probability is dependent upon the learnt preference level of an individual agent (see point 2 above). Thus it is possible that a bee detects a flower, but chooses not to land if it perceives the flower as the incorrect type.

6. MODEL PARAMETERS and TESTS

Flowers typically offer rewards for only a period of time, and a flower that is rewarding in the morning may not do this later in the day (and vice versa). Thus we will consider a scenario where T1 is rewarding (T2 not rewarding) for a period sufficient for learning bee agents to have about 75% accuracy for T1 (remembering this is a learning function). Let’s call this Period 1; then T2 suddenly becomes rewarding and T1 not rewarding and the model runs for another duration equivalent to Period 1.

Note: Period 1 is defined by the rate of learning of the agents, and may thus also depend upon the density of flowers.

Test 1. A hive contains bees with strategy stay.
Test 2. A hive contains bees with strategy switch.
Test 3. A hive contains bees with strategy learn.
Test 4. A hive contains bees 1/3 having strategies stay, switch, learn (bet hedging).

You must run multiple repetitions of the model per test (1-4) to get a measure of variability in the data generated.

7. DEPENDENT VARIABLES

For bee agents, the dependent variable of interest is the amount of nutrition collected and returned to the hive. It would be worthwhile collecting/storing the data per individual agent (the statistical analysis between strategies for agent groups will then be of interest), and also the total nutrition collected for a hive.

8. SUBMISSION DETAILS

All your code should be well-structured and written in C, C++ or Java and should run under a UNIX (or derivative) operating system. Please do not use any non-standard libraries.

The models should be visualised in OpenGL (or Swing).

Bees can be drawn as circles on a grid using 2D graphics if you wish. Flowers can be depicted by colouring in grid squares. Some sample OpenGL code to achieve this is given here: GL_routines.cpp, GL_routines.h, main.cpp Within the LINUX environment, build these files into a single executable called circle.out by linking to the GLUT toolkit: g++ -o circle.out GL_routines.cpp GL_routines.h main.cpp -lglut

Marking breakdown:

Grid world
Displayed and properly coded.

 

[10%]

Flower agents
Displayed, properly coded, correctly distributed
Correct rewards offered and reversed

 

[10%]

Bee agents
Displayed and properly coded [10%]
Correct foraging strategies 1 & 2 [10%] and 3 [15%]
Correct return to hive [5%]

 

[40%]

Report on your simulation results
In addition to your coding, you will need to provide a brief report (3-5 pages only).

Detail:

  1. The testing you conducted to ensure you code is running correctly.
  2. The simulations you ran.
  3. The results you obtained.
  4. An analysis of your results. What did you discover?
[40%]

References.

Submission Details (fine print):

The assignment is due at the time specified on the main page.

Submit all of the files specified below on a CD/DVD-ROM clearly labelled with your name and ID number or email a tar file of the source and report in PDF format before the submission deadline. Submissions will be accepted at the General Office in building 63 or by email only.

You will need to include the following in your submission:

Documentation is important. Marks are allocated within each section for the research you have done. Documentation submitted should include:

Each file of your source code must contain the follwing at the top:

 /* 
  * This software is the original work of <Your Full Name>. ID: <Your ID> 
  * This software is submitted in partial fulfillment of the 
  * requirements for the degree of <Your Degree>, 
  * Monash University
  */ 

You are encouraged to consult reference material as widely as possible, but remember the code you write MUST be your own work. Make sure you think about, and understand, the processes involved rather than blindly copying the work of others.

Please be realistic about what you can achieve given the time constraints. Students invariably spend far too much time on this assignment. As much fun as it is, any time above 50 hours would be better spent on other activities. (e.g. fishing in the Monash pond)

Late assignments will incur mark penalties according to the Fibonacci sequence multiplied by a lecturer-determined scaling factor (e.g. 0.5, 1 or 100). An assignment that is one day late will receive a one mark penalty multiplied by the scaling factor. Assignments two days late will receive a 2 mark penalty, three days late, 3 marks, each multiplied by the factor. The sequence is [1],1,2,3,5,8,13,21... (times the factor). This applies for all days including public holidays and weekends so please submit your assignments punctually!


[ FIT4012 Home Page ]